Index: tmp/org.txm.rcp/splash.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/splash.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/installtreetagger_fr.html
===================================================================
--- tmp/org.txm.rcp/installtreetagger_fr.html	(revision 0)
+++ tmp/org.txm.rcp/installtreetagger_fr.html	(revision 122)
@@ -0,0 +1,86 @@
+<? version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>
+Installation de  TreeTagger
+</title>
+</head>
+<body>
+<h1>
+Tutoriel d'installation de TreeTagger pour TXM
+</h1>
+<p>
+Pour être en mesure d'automatiser l'étiquetage morphosyntaxique et la lemmatisation de votre corpus au cours du processus d'importation, 
+vous devez installer le logiciel TreeTagger(*) et indiquer à la plate-forme TXM où il est installé. Pour cela, il vous suffit de suivre les étapes suivantes
+(il s'agit d'une installation simplifiée - suffisante pour TXM - et non d'une installation complète du logiciel TreeTagger) : 
+</p>
+<ol>
+<li>
+Télécharger l'archive du programme TreeTagger située à : http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger
+<ul>
+<li>
+Windows : <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-windows-3.2.zip">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-windows-3.2.zip</a>
+</li>
+<li>
+Linux : <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-linux-3.2.tar.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-linux-3.2.tar.gz</a>
+</li>
+<li>
+Mac : <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-MacOSX-3.2-intel.tar.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-MacOSX-3.2-intel.tar.gz</a>
+</li>
+</ul>  
+</li>
+<li>
+Dézipper l'archive dans un répertoire, par exemple : 
+<p>
+Windows : "C:\Program Files\TreeTagger"
+<br/>
+Linux : "/home/&lt;nom utilisateur&gt;/TreeTagger"
+</p>
+</li>
+<li>
+Télécharger un fichier de modèle de langue TreeTagger pour chaque langue que vous avez besoin d'étiqueter (au format UTF8, non ISO-Latin-1) 
+<ul>
+<li>
+Modèle français UTF-8: <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/french-par-linux-3.2-utf8.bin.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/french-par-linux-3.2-utf8.bin.gz</a>
+</li>
+<li>
+Modèle ancien français BFM (sans lemme) UTF-8: <a href="http://bfm.ens-lyon.fr/IMG/zip/rgaqcj.zip">http://bfm.ens-lyon.fr/IMG/zip/rgaqcj.zip</a>
+</li>
+<li>
+Modèle italien UTF-8 : <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/italian-par-linux-3.2-utf8.bin.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/italian-par-linux-3.2-utf8.bin.gz</a>
+</li>
+</ul>
+</li>
+<li>
+Décompresser et renommer chaque fichier de modèle, en «fr.par» pour le français, «it.par» pour l'italien et «afr.par» pour l'ancien français dans le répertoire de votre choix.
+Par exemple dans un répertoire "Models" que vous créez dans le répertoire TreeTagger ci-dessus (où vous avez décompressé l'archive de TreeTagger).
+</li>
+<li>
+Enfin, depuis le logiciel TXM, aller dans les préférences (menu Outils/Préférences) et modifier les champs de la page TXM / Avancé / TAL / TreeTagger
+<ol>
+<li>
+Pour le champ 'TreeTagger install dir' mettre le chemin vers le répertoire où vous avez décompressé l'archive de TreeTagger
+</li>
+<li>
+Pour le champ 'TreeTagger models directory' mettre le chemin vers le répertoire où vous avez mis vos fichiers de modèles (fr.par, it.par...)
+</li>
+</ol>
+</li>
+</ol>
+<p>
+Vous pouvez alors relancez un nouveau processus d'importation pour tester le nouvel étiqueteur.
+</p>
+<p>
+Si vous ne parvenez pas aller jusqu'au bout du processus d'installation, veuillez nous contacter via 
+la liste de diffusion des utilisateurs de TXM (txm-users@cru.fr) après vous être inscrit à l'adresse
+<a href="https://listes.cru.fr/sympa/subscribe/txm-users">https://listes.cru.fr/sympa/subscribe/txm-users</a>.
+</p>
+<p>
+(*) La licence de diffusion de TreeTagger interdit de livrer TreeTagger embarqué dans un logiciel commercial. 
+Comme la licence de TXM n'interdit à personne d'avoir une activité commerciale avec TXM, il nous est interdit 
+d'inclure TreeTagger dans la distribution de TXM.
+</p>
+</body>
+</html>
+

Property changes on: tmp/org.txm.rcp/installtreetagger_fr.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/icons/control_play_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_play_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/svg/corpus.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/corpus.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/corpus.svg	(revision 122)
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="corpus.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.197802"
+     inkscape:cx="6.7500002"
+     inkscape:cy="12.485821"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="-5"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="g3401"
+       inkscape:perspectiveID="#perspective2391"
+       inkscape:corner0="-0.13033744 : 0.01154167 : 0 : 1"
+       inkscape:corner7="-0.42190293 : 0.0069672292 : 0.29174743 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3411"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="13"
+         d="M 1.0282235,10.245284 L 6.6356405,15.718895 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 1.0282235,10.245284 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3403"
+         style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="6"
+         d="M 1.0282235,2.0981103 L 1.0282235,10.245284 L 8.6753878,7.1896285 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3413"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="11"
+         d="M 8.6753878,1.0890335 L 14.96534,1.6576773 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 8.6753878,1.0890335 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3405"
+         style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="5"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 14.96534,1.6576773 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3409"
+         style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="14"
+         d="M 6.6356405,3.4626626 L 6.6356405,15.718895 L 14.96534,9.8031469 L 14.96534,1.6576773 L 6.6356405,3.4626626 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3407"
+         style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="3"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 6.6356405,15.718895 L 1.0282235,10.245284 L 1.0282235,2.0981103 z" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="6.2072921"
+       y="13.760482"
+       id="text2395"
+       sodipodi:linespacing="125%"
+       transform="matrix(1.069419,-0.1839373,5.186799e-3,0.9341951,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan2397"
+         x="6.2072921"
+         y="13.760482"
+         style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.67000002;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">C</tspan></text>
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/frequencyList.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/frequencyList.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/frequencyList.svg	(revision 122)
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="frequencyList.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/frequencyList.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path3494"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3488"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="48.75"
+     inkscape:cx="8"
+     inkscape:cy="7.8795585"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="opacity:0.67000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       d="M 0.18461538,0.14358974 L 0.16410256,15.835897 L 15.589744,15.794872"
+       id="path5825" />
+    <path
+       style="opacity:0.67000002;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       d="M 0.49230769,15.528205 L 1.1692308,15.035897 L 1.4769231,14.235897 C 1.4769231,14.235897 1.9692308,13.251282 2.0717949,13.210256 C 2.174359,13.169231 2.625641,12.164103 2.625641,12.164103 L 3.2,10.687179 C 3.2,10.687179 3.8974359,9.3538462 4,9.2717949 C 4.1025641,9.1897436 4.5128205,8.4307692 4.6564103,8.3076923 C 4.8,8.1846154 5.3538462,8.0820513 5.7435897,7.9179487 C 6.1333333,7.7538462 6.5435897,7.3846154 6.8102564,7.1179487 C 7.0769231,6.8512821 8.0205128,5.6205128 8.0205128,5.6205128 C 8.0205128,5.6205128 8.3282051,4.1230769 8.4102564,4.0615385 C 8.4923077,4 8.7179487,2.4410256 8.7179487,2.4410256 L 9.5589744,2.0512821 L 10.830769,1.2307692 L 12.471795,1.0051282 L 13.538462,0.53333333 L 14.974359,0.41025641"
+       id="path5827" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/concordances.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/concordances.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/concordances.svg	(revision 122)
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="concordances.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/concordances.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="48.75"
+     inkscape:cx="8"
+     inkscape:cy="8"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <text
+       xml:space="preserve"
+       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="-0.045049477"
+       y="3.2509899"
+       id="text3593"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3595"
+         x="-0.045049477"
+         y="3.2509899"
+         style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></text>
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 0.36039604,9.1524752 C 15.767327,9.1524752 15.767327,9.1524752 15.767327,9.1524752"
+       id="path3597" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 19.866832,8.6118811 L 3.7391089,8.5668316"
+       id="path3599" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 1.9821782,9.5128712 L 0.36039604,9.5128712"
+       id="path3601" />
+    <g
+       id="g3319"
+       transform="translate(1.5184524e-2,-1.1282051)">
+      <path
+         id="path2412"
+         d="M 1.3972217,3.2053574 L 5.4265598,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path2414"
+         d="M 7.180397,3.2173914 L 8.6559006,3.2173914"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3299"
+         d="M 10.409738,3.2053574 L 14.439076,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       id="g3324"
+       transform="translate(1.5184524e-2,1.857191)">
+      <path
+         id="path3326"
+         d="M 1.3972217,3.2053574 L 5.4265598,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3328"
+         d="M 7.180397,3.2173914 L 8.6559006,3.2173914"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3330"
+         d="M 10.409738,3.2053574 L 14.439076,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       id="g3332"
+       transform="translate(1.5184524e-2,4.8425864)">
+      <path
+         id="path3334"
+         d="M 1.3972217,3.2053574 L 5.4265598,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3336"
+         d="M 7.180397,3.2173914 L 8.6559006,3.2173914"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3338"
+         d="M 10.409738,3.2053574 L 14.439076,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       id="g3340"
+       transform="translate(1.5184524e-2,7.8279823)">
+      <path
+         id="path3342"
+         d="M 1.3972217,3.2053574 L 5.4265598,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3344"
+         d="M 7.180397,3.2173914 L 8.6559006,3.2173914"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3346"
+         d="M 10.409738,3.2053574 L 14.439076,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <g
+       id="g3368"
+       transform="translate(1.5184524e-2,10.813378)">
+      <path
+         id="path3370"
+         d="M 1.3972217,3.2053574 L 5.4265598,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3372"
+         d="M 7.180397,3.2173914 L 8.6559006,3.2173914"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         id="path3374"
+         d="M 10.409738,3.2053574 L 14.439076,3.2294253"
+         style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/ca.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/ca.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/ca.svg	(revision 122)
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="ca.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/concordances.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="48.75"
+     inkscape:cx="8"
+     inkscape:cy="7.8795585"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <text
+       xml:space="preserve"
+       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="-0.045049477"
+       y="3.2509899"
+       id="text3593"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3595"
+         x="-0.045049477"
+         y="3.2509899"
+         style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></text>
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 19.866832,8.6118811 L 3.7391089,8.5668316"
+       id="path3599" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 1.9821782,9.5128712 L 0.36039604,9.5128712"
+       id="path3601" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 8.0102564,0.12307692 L 7.9897436,15.897436"
+       id="path3398" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 15.907693,8.0102564 L 0.13333305,7.9897436"
+       id="path3400" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 0.77630377,1.9282051 L 1.5621577,1.9282051"
+       id="path3402" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 1.9660474,1.8871795 L 2.7519013,1.8871795"
+       id="path3404" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 3.73015,4.225641 L 4.5160039,4.225641"
+       id="path3406" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 2.1916884,3.8974359 L 2.9775423,3.8974359"
+       id="path3408" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 8.5301499,2.974359 L 9.3160038,2.974359"
+       id="path3410" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 9.7198932,2.9333334 L 10.505747,2.9333334"
+       id="path3412" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 11.483996,5.2717949 L 12.26985,5.2717949"
+       id="path3414" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 9.9455342,4.9435898 L 10.731388,4.9435898"
+       id="path3416" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 10.560919,1.0871795 L 11.346773,1.0871795"
+       id="path3418" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 13.514765,3.3846154 L 14.300619,3.3846154"
+       id="path3420" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 10.355791,10.830769 L 11.141645,10.830769"
+       id="path3422" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 13.309637,13.128205 L 14.095491,13.128205"
+       id="path3424" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 13.207073,11.220513 L 13.992927,11.220513"
+       id="path3426" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 3.2583551,9.210256 L 4.0442091,9.210256"
+       id="path3428" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 6.2122011,11.507692 L 6.9980548,11.507692"
+       id="path3430" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 6.1096371,9.6 L 6.8954908,9.6"
+       id="path3432" />
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.7752443;stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 0.53015007,15.158974 L 1.3160038,15.158974"
+       id="path3434" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/specificities.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/specificities.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/specificities.svg	(revision 122)
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="specificities.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/specificities.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.197802"
+     inkscape:cx="12.411695"
+     inkscape:cy="12.485821"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="-5"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 0.36039604,9.1524752 C 15.767327,9.1524752 15.767327,9.1524752 15.767327,9.1524752"
+       id="path3597" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 19.866832,8.6118811 L 3.7391089,8.5668316"
+       id="path3599" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 1.9821782,9.5128712 L 0.36039604,9.5128712"
+       id="path3601" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke:#000000;stroke-width:0.05790222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 0.30568391,7.6254856 L 15.867089,7.6255043"
+       id="path3609" />
+    <rect
+       style="opacity:0.67000002;fill:#800000;stroke:#000000;stroke-width:2.57185364;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3611"
+       width="0.073195793"
+       height="5.2088394"
+       x="2.1032536"
+       y="8.8230553"
+       inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/specificities.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+    <rect
+       style="opacity:0.67000002;fill:#800000;stroke:#000000;stroke-width:2.54720545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3615"
+       width="0.18794304"
+       height="1.9899231"
+       x="5.8750877"
+       y="4.3330088" />
+    <rect
+       style="opacity:0.67000002;fill:#800000;stroke:#000000;stroke-width:2.43102527;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3617"
+       width="0.16897482"
+       height="2.0160043"
+       x="9.4660072"
+       y="8.8427401" />
+    <rect
+       style="opacity:0.67000002;fill:#800000;stroke:#000000;stroke-width:2.6814754;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3619"
+       width="0.098722532"
+       height="4.1982274"
+       x="13.780837"
+       y="2.007817" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/partAction.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/partAction.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/partAction.svg	(revision 122)
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="partAction.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/partAction.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="47.4375"
+     inkscape:cx="8.8497377"
+     inkscape:cy="8"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:0.67000002;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.31033072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3701"
+       width="15.585636"
+       height="15.552378"
+       x="0.19148466"
+       y="0.21452501" />
+    <text
+       xml:space="preserve"
+       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="-0.045049477"
+       y="3.2509899"
+       id="text3593"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3595"
+         x="-0.045049477"
+         y="3.2509899"
+         style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></text>
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 0.36039604,9.1524752 C 15.767327,9.1524752 15.767327,9.1524752 15.767327,9.1524752"
+       id="path3597" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 19.866832,8.6118811 L 3.7391089,8.5668316"
+       id="path3599" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 1.9821782,9.5128712 L 0.36039604,9.5128712"
+       id="path3601" />
+    <rect
+       style="opacity:0.67000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.41430652;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       id="rect5924"
+       width="2.4256146"
+       height="12.396627"
+       x="2.0651903"
+       y="1.8016863" />
+    <rect
+       style="opacity:0.67000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.41430652;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       id="rect6445"
+       width="2.4256146"
+       height="12.396627"
+       x="11.22461"
+       y="1.8016863" />
+    <rect
+       style="opacity:0.67000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.41430652;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       id="rect6447"
+       width="2.4256146"
+       height="12.396627"
+       x="6.6449003"
+       y="1.8016863" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/script.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/script.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/script.svg	(revision 122)
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="import.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/ca.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;">
+      <path
+         id="path3494"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3488"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="48.75"
+     inkscape:cx="8"
+     inkscape:cy="7.8795585"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="opacity:0.67000002;fill:#b3522b;fill-opacity:1;stroke:#000000;stroke-width:0.97628939;marker-end:url(#Arrow2Send);stroke-miterlimit:1;stroke-dasharray:none;stroke-opacity:1"
+       d="M 0.295837,7.5466738 C 0.42856929,7.5466738 10.825931,7.5104152 10.825931,7.5104152"
+       id="path3456" />
+    <path
+       style="opacity:0.67000002000000003;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.50000000000000000;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.48300000000000010;stroke-opacity:1;stroke-linejoin:round"
+       d="M 7.3025641,5.9076923 L 7.3025641,0.84102564 L 15.097436,0.84102564 L 15.138462,15.220513 L 7.3230769,15.241026 L 7.3025641,8.9641026"
+       id="path5803"
+       sodipodi:nodetypes="cccccc" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/subcorpus.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/subcorpus.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/subcorpus.svg	(revision 122)
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="subcorpus.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/partition.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.197802"
+     inkscape:cx="6.7500002"
+     inkscape:cy="12.485821"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="-5"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="g3401"
+       inkscape:perspectiveID="#perspective2391"
+       inkscape:corner0="-0.13033744 : 0.01154167 : 0 : 1"
+       inkscape:corner7="-0.42190293 : 0.0069672292 : 0.29174743 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3411"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="13"
+         d="M 1.0282235,10.245284 L 6.6356405,15.718895 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 1.0282235,10.245284 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3403"
+         style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="6"
+         d="M 1.0282235,2.0981103 L 1.0282235,10.245284 L 8.6753878,7.1896285 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3413"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="11"
+         d="M 8.6753878,1.0890335 L 14.96534,1.6576773 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 8.6753878,1.0890335 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3405"
+         style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="5"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 14.96534,1.6576773 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3409"
+         style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="14"
+         d="M 6.6356405,3.4626626 L 6.6356405,15.718895 L 14.96534,9.8031469 L 14.96534,1.6576773 L 6.6356405,3.4626626 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3407"
+         style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="3"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 6.6356405,15.718895 L 1.0282235,10.245284 L 1.0282235,2.0981103 z" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="6.2072921"
+       y="13.760482"
+       id="text2395"
+       sodipodi:linespacing="125%"
+       transform="matrix(1.069419,-0.1839373,5.186799e-3,0.9341951,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan2397"
+         x="6.2072921"
+         y="13.760482"
+         style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.67000002;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">S</tspan></text>
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/subAction.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/subAction.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/subAction.svg	(revision 122)
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="subAction.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/subAction.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="47.4375"
+     inkscape:cx="8.8497377"
+     inkscape:cy="8"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="1275"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:0.67000002;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.31033072;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3701"
+       width="15.585636"
+       height="15.552378"
+       x="0.19148466"
+       y="0.21452501" />
+    <text
+       xml:space="preserve"
+       style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="-0.045049477"
+       y="3.2509899"
+       id="text3593"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan3595"
+         x="-0.045049477"
+         y="3.2509899"
+         style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans" /></text>
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 0.36039604,9.1524752 C 15.767327,9.1524752 15.767327,9.1524752 15.767327,9.1524752"
+       id="path3597" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 19.866832,8.6118811 L 3.7391089,8.5668316"
+       id="path3599" />
+    <path
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 1.9821782,9.5128712 L 0.36039604,9.5128712"
+       id="path3601" />
+    <rect
+       style="opacity:0.67000002;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.41430652;stroke-linejoin:round;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:3.483;stroke-opacity:1"
+       id="rect5924"
+       width="2.4256146"
+       height="12.396627"
+       x="2.0651903"
+       y="1.8016863" />
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/svg/TXM logo.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/TXM logo.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/TXM logo.svg	(revision 122)
@@ -0,0 +1,514 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="Calque_1"
+   x="0px"
+   y="0px"
+   width="300"
+   height="300"
+   viewBox="0 0 300 300"
+   enable-background="new 0 0 841.891 595.279"
+   xml:space="preserve"
+   inkscape:version="0.47pre4 r22446"
+   sodipodi:docname="TXM logo carré Full.svg"><metadata
+   id="metadata190"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+   id="defs188"><inkscape:perspective
+     sodipodi:type="inkscape:persp3d"
+     inkscape:vp_x="0 : 297.6395 : 1"
+     inkscape:vp_y="0 : 1000 : 0"
+     inkscape:vp_z="841.89099 : 297.6395 : 1"
+     inkscape:persp3d-origin="420.9455 : 198.42633 : 1"
+     id="perspective192" /></defs><sodipodi:namedview
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   borderopacity="1"
+   objecttolerance="10"
+   gridtolerance="10"
+   guidetolerance="10"
+   inkscape:pageopacity="0"
+   inkscape:pageshadow="2"
+   inkscape:window-width="1280"
+   inkscape:window-height="950"
+   id="namedview186"
+   showgrid="false"
+   inkscape:zoom="2.2426755"
+   inkscape:cx="245.79343"
+   inkscape:cy="186.50121"
+   inkscape:window-x="0"
+   inkscape:window-y="25"
+   inkscape:window-maximized="1"
+   inkscape:current-layer="g3" />
+<g
+   id="g3"
+   transform="translate(-0.99276107,-295.01739)">
+	<g
+   id="g5"
+   transform="matrix(2.6034141,0,0,2.6465205,-4.8724788,291.71974)">
+		<g
+   id="g7">
+			<g
+   id="g9">
+				<g
+   id="g11">
+					<g
+   id="g13">
+						<defs
+   id="defs15">
+							<path
+   id="SVGID_1_"
+   d="m 66.957,106.951 -27.76,7.6 c -0.498,0.136 -1.025,-0.002 -1.392,-0.364 L 17.343,93.948 c -0.363,-0.363 -0.51,-0.891 -0.381,-1.389 l 7.299,-27.843 c 0.131,-0.494 0.516,-0.885 1.012,-1.02 l 27.763,-7.601 c 0.375,-0.104 0.774,-0.047 1.104,0.146 0.101,0.061 0.199,0.135 0.283,0.219 l 20.463,20.242 c 0.363,0.359 0.51,0.887 0.377,1.387 l -7.295,27.84 c -0.132,0.496 -0.517,0.886 -1.011,1.022 z" />
+						</defs>
+						<clipPath
+   id="SVGID_2_">
+							<use
+   xlink:href="#SVGID_1_"
+   overflow="visible"
+   id="use19"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_2_)"
+   id="g21">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="63"
+   height="65"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAABBCAYAAABmd3xuAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACBVJREFUeNrUWz2y5DQQljSPC0DC GSguQEIVNyDYnISIKkIiSNhNKKAI9gSEJAQUnIATUBznje0Py5bkltTdkux5Vexseccej+ep/7/+ JFnDvN789BcMEK7IqdlP/DWwbCcIx+vvXlnzjr3YAb/58U8cV7nw+zkOwc2hAK+Q7X1ZzOLPmfd5 nszbn7+y/1/hM8ubTaBSeKBWwLLMQS+M8Muyf75+x58v8xzO92PePptW5fjr8O6v13u///bLiyjr qf0VqHeo5dnHuMcB5e8QBQcP+/zV1/AeM033zXO2Yz2f4ns45unZ/PvP3/aBwo++IMgbQgJEaUmB IZKoxkpdUoVBNshHH3+CiShkuj+v78/m7t/X4z49p8/cVUHZT5hcoD2zhQQjcPKuTFiw/scrnVNz UvdV4U+qLCpl2fMBlSkKWisDySOO4YcQAXm+eARGuPeiwqMOg+j2WgapvGKN6xQu4H0tWbb4caTP ssp9UXhI7lfGIxQhc5OBeMSyxAoxM79zPDdPE/EUmg+OsYCW52I87kx8S/GZ2xraVxjdoYjT/FbM HXuZ3EslDSE6pLxayH7vWjX+ZBUUQ0DPBY2QQI9H7a/Je8UCxiPxcjGPlnCQvKYtIOtL0SOwe0TE Acn20WuqQOsRviqvaBgTKsBhazwxDIQan8pdEeN5ONdAK4WKR5EbKNqBkUe37gxgYb9XoDxcihMV RdSWFypFNnrmUXfFwdM/tCpBV8YTazyQhwSy/yGrNRmE87UzwqP3HjJo611PU0wrxwISEkjlgFOn WOMvWB7q56DxRqAtjCqBghMYbEAQIVvjDcU9/B9148KCT3IFqoIa9Uf9XUIrqzdFDSAIVDWeWv5h MY8LOSJPjgTXH56b5Q0PZPayhcqoWSWQ4gZlqcuV606Lge48Vgeuxg7Emk0UY8ANvXaF8v7t6b31 eBLN5i6ZGWP30CJHBPAApnxFcuNIARCJk9vtZpxbj7WyW0JeuUfU+FI4NZ8xSAsGQjk7yhxtgefQ 8HhhnBdsPSjq8tDWK8cDG9pJqi3tCK7HYBKAxm3BqE1TgsVcjQ+hZJ1LCbROzDBV4z8S83QAhgEM JZMzHka829rVurdgXSg8osQLZh3f9TrfG+gw4MIIsvVhIBOa6+FW6zprs7jN8D5bkRGanvnIE4G1 voTwMoZmWRKd3Xy4cBq7CuRCUtKgNN9HUfaAa2wgeqobszT4GFUbniUlHrVCBr/0bm4562oVBFwr TEqgACzdeKnqbHmyLs/uAvnsbJ1MRkCrFlydL5sWpqpAxNOy8DiT5cvEAl4x0bqxz15CyEB4sMbv BZSPlq0IX+3mFYRXDtLu1t0SknMqLNxIyozLr398DlNVKWQAFiaB1XreJ2HU8m3xIacDILi5Fep3 yTYe1DMotC3pb0h5ReMHIFXRsemqLQlZbGdo0NTibByghhRYwfIebQ5zdptXbIpSfhM8kaFYvjO1 bZa1Q90Puphb1AqI/MA882WOTWydNFYOba2x9kwwdNZ5HUayfAGYuEYRQv7xOFu7e4aOPTpKnW1C UCPRR51kCNCKax1zIJIioeGBAII663w+cDq4mhXCcJ6s4w/6b6VFEMI4wZXHI96xhIUOBNo+oNSR GVdKIkImNFsxL8FXTZEQ+b9yVveBpQ4AW+bkpk1E4UZqvcDyXIXjkUUPNeMrTu8OCA/NgnyWPWZL epoe02xeuKhnW56qjzePADn98Q1AhcWRtY21OvcibkICIr6rBUTWSOEadT2mGzTsigLagi/29fSy 5NvCX4W8ouGxwrfmxZrMLylJkXg4mp6F7+hAFzVIqP9EV9fi2nTSAULKh9jHo3BXCffuU9D3sF5v Dl6ktLOPyfYYygFyeZIgKPj7pJwdy1TyGg/IhtKmyM7RWBoU65rMQHeuYKcqUHvaBm03ju55AzM0 kaoJT15orMg0MqGRZV6pJ+BJDK7zQUEg7xziLPQDF0pdzpkf/8YDRFsseChAprCMuMiQK6W0ch5z fnkLejHmearYAN0ezyuIAThFy5qlVm79HVkc/SCQU+aug7KGsEDgJEbiOXx1/ppft3uh1J2v8Tm0 PRJPRWcl7F0AkgLwSSuxegAOHm35HhKq1Yuj4NTVhcPsoloyyQmpUpxCeP2rMRiReBopDHLx7K1H cPPhFa0SA4YDkBdXFpBYkP5p2LhdTU1vjUchCNJ6uWMXxsLmE5oEs4mJODnibuZ2e0rQeE5LXy6D nBGAAz0wJEaIm6hAh6Jrp7/W2OBK5i6noCAAHAisH8EYySvmMJFh95lbP4Vt43rKaqmtjEueejjC 8ciAkguUlZLFzG10Xy/obT1mM/GwOLG299D0TFXIsJavoG3T+lAAjtHZmibAkVwXjFeAQGCIjBKM vNjEjbg7mgUNsvMwYWvT/N5uYefc0GBgIKcEoJntXV/qrsXG4OwIR3CiB/dWXSQM3+EUyJNC4P0P 2RMJTwYJadMgCMQtBhOta91hYYndgUj7CEtc1LKKZhiqk1Lf//CHB+/yttGE7ZcNuOzLxKa0sjLt ntwmDY66PcdJhJCYYgZPGwbLjYNhnXzs1af5nhJc3D93D3vl9j1z93R+D3vr1jHaIeFHX998+yso OImEQrrGnPB+JBw2oen2UXKkHZTTTl1lAhfXufB+E+E9u14N9bLCj7y++PI1KssHj0hCEQG9lx3b RsmOyeANd2rtShHPrKzvxLbvTz97hTl4SS78s5kKRVCB4xZSf/3OCj/6ev+DD5H2zirC/yfAAO+W Y+WBeEi3AAAAAElFTkSuQmCC"
+   transform="translate(14.4451,53.1399)"
+   id="image23"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+			<g
+   id="g25">
+				<g
+   id="g27">
+					<g
+   id="g29">
+						<defs
+   id="defs31">
+							<path
+   id="SVGID_3_"
+   d="m 18.072,93.662 19.889,19.758 c 0.354,0.354 0.869,0.49 1.354,0.359 l 27.058,-7.344 c 0.481,-0.134 0.856,-0.513 0.987,-0.996 l 7.166,-27.104 c 0.128,-0.481 -0.012,-0.996 -0.364,-1.35 L 54.27,57.225 c -0.271,-0.271 -0.637,-0.412 -1.008,-0.406 -0.117,0.002 -0.233,0.018 -0.348,0.047 L 25.859,64.212 C 25.375,64.343 25,64.722 24.873,65.206 L 17.705,92.31 c -0.129,0.485 0.013,0.999 0.367,1.352 z" />
+						</defs>
+						<clipPath
+   id="SVGID_4_">
+							<use
+   xlink:href="#SVGID_3_"
+   overflow="visible"
+   id="use35"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_4_)"
+   id="g37">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="67"
+   height="63"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAAA/CAYAAAC7KnXJAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACKxJREFUeNrcWzvKJUUUrq/ujUx0 Ay5hcAFGgsGgrsDEwMhEBBkQ0UgYkEEEAyMTE1fgCwyMjAXdgSuYxMT/dpVdXa9zTj277x1nxh56 uv/76NtVdc73OFUN9T/bHn7xg7XWnW3/KX/ut08evIXed8/PY4M///KntY2isemV4xue1QY/+urn rXWhySqfxz/lyFvSMfl7NDLc6aed6HiqkfH1N79aY9wNW2XcyJp8tGykoVRj3PM75DP0FDxVnmqa fPvdb65tuaGu4SYf483G+9+OCC2aaEUODFt5cb4jbtYZP/7yp10uRi3Loi6LO8bd+nBez4fJaumI tiNheI12kNyuM37/4y8bG7k1+JIb7o5uhLH+F3d3G4DPWb3+bbRVeu0TE0LXvx9uOHREPK4hc6AP Gs3e0RtFZzx+/Le9Wxt6d2eUPy7b8bIefWjnX0HAXxAojugElPFMGE95/ovYEI4BO8pI2R8c++Ni 7Yz1Bqxr8OUSGr2Gu9ny26QbpIkHiFYr5I7x4RGiI3zW2vmojtGxnlg53uG9nEUzDd2XaprfIIrz 1CiSBrRFEA1kV0CFxMUxptTWibFDJzgfB8SB++hnj75v9tB5vRlYotlouJ6M9rnu9jTa5S+k1yH+ FnfK85uPXsEm9kDyF8AZ/p+kV93qcigoMlAMHM8n3bwXpKhC2XEi/iS+FBm4WzniKjl5rl00pUUK d98ws3g8cdvJdYgNwLhF08oY6w63B/3gvnfSWi2OQ5YKItYGGxIgjjPsXuhgQxyxchNFxosiYyh9 opO4SP+UxBbl6RXaHdV2BFRJx4DkqKnNkjN7henQ1RQBxQOIvYMZMl1qGMOSpYIpAbNAIvRQmhzI lCL5JUYoRUex/0MlkIoGE60RtYXUGoAqGAXkB8CYDH2oICBO8ajFKLqJGWx0Q/gCgn5bY16mySh6 cQ3yNS5qd3qUc2h8pleCG253tOpkNbQDxvJeITsNVkSXSClLqHPjvOws/Z+Wf6aDhLb2sh3alR3U KsOeHT07OGo9UXqtaAov3Y2X143o2Y912Ce8sA9Aqjojpa1AfCIk/JddtGieEltUbQDoX9ehA93n qg1CxcvgCq2B42mme1dONMmwYyygKAvQjqIqNu2iQyQuXVu+w1VsUhNekl4ZioNRrATeVuRx+QnO PLFTtI+sfovQtWf26shg1pyPZkUeMM2Q0ms4vqW8SnQr7L7EhxFWoN4SFsU1etU1asgNB1eKtQZC Meme7XxdkOWGkjqGykJr1rV2QRTHcuZM6hSeXgO1bnJcu92Fqk6UqTc2iYJJbVK95l6h5nKfUx5I JaPFhzMkeaBs2KXWintNuoEkvWOKk+uwkN+RQeTn6pgBhhnAdboLg+LwqH9076KgaaKymWJloAaI RhDcOmnrMEqvgol20aodv9PyDTgYGbLqtQT36mx8zPM6iILhi8RbzcqCnVoG1G5ZdpRSu9Vx10wT ql1OkruOYHXNFojKxonq13CmYP1QlOUpi5zt36rqx+obN8EMmvJQvCNGI5CZqAGi4NcmANOtds24 15oSxaR7bWMGc6uK2XkJjJA7oPjH0Otubv+vMa52PMPWiy5e9gv06vAgpkjyH4aC4fqJU75yptfY IiskeV8hIfiZNCthR5a74V5bNnXSvupORYLJ74JaSdv06mC3XVTEekrDKl7YgcIO+4onUhcZ6wyU Jg29UXaFY8c8JgszL9a4ewWT5ChKjrdYK4GbdUZRAsygWNBeqFvGIjLQ0CEVeqXXqk1L6GnDdp1J G7IJd69gtltYT669QF3rRLkGdDJ6sryD20TDfGTk6SA2u95ToRksUTBN18rXFCn2pEGlOFyc9+m1 MzWWKy/VgkwFuTLwVix/M0iIpcPBUcZtQPRc4gR1r5lejUHyGq7+GVffMPdamSLoC7TAc7mgkedF h8bzmDM9nCaqV5ITLYvOlYszMrveGM48caTYfo36tgchVI/6nukN6kEaIErBU8c90Cp3rzYVeFgH Ttd07QSW4EadUSwxoJNDIxBFFS9YmVN4l8K9DukVU1yCW3QGKeBt+HBZls29+pl4Q5YnWiG60HAf jZuDnEZE1RC26HVPbfRwZ8T5jyWKKIAZuNaqHSjFZtVVGzEKJlKt8sABjXnEvY4xg2FEbdRQleT0 +2pk5WtyHNcA5zEQPdcZJLjXEBmbxI51zkCtaVUv+cGtCESAtORVNHSGbS7uw1yhr2NO5ylYD8UM rYGq+iK4dDHHFFS+K3RrmmxKQcj5udy/7dL3CWoVlS6xeA0NnxF3DRpRPqrcxDV1r6BpMgLK4aTS cUbRaiI0eI0iIn79VzbnupD14duuSlGl0oqEJLqqgU/XhtTcq5VLE+wORbJXgSq+lJHOb0jhZePq XmJeWlXyeJOo0qsa0uuTyJTx+gyUCrSH9qAL3fbcu5iIPlTEaS1tmnSvbdG1bufzKfgNamR7KhT1 xbEN95romkm8injq1i5m5lHmOnf4VEHSCaEY7JY1OVNmTm6OQytrssdw2z/GNFf/tWqWtljelM3s rIEdLRu9ehmTUhQnyiUHdc1FRpoWhAbOVR2ofdoaiO62dTsiQ8kVNkBJhSIPPaWuch65BuJWEJ8s XVWs/MphI4QSJusaxxcRq9rUint27TzHJij9CQMmqGI2iK786+BGig6b04VKche6hk4zxqO1O3LA v/nxh29e9yjnZtYu+VGruCTSpGfNVK7GNCp8Pfcaq2WW1DcUqaDRJxL71VqbnkX56IM3DhHuBIDS og5Eab+UhmwdOCZmxmvhHtVYZ9H9g/fv3/wx1POgI3B3t1iaIpwOO2VCoWBr8eGvaUN6ILNKeEbk vXdf+0+fu52iVlZtCnOtjlodILIFaevmHusqquloPEWwfuudt199Zh403p0m7JzkvYhzhtj3X7/3 zD5ZfSgyipku0f5X7r38XDT4Op1BtpdefOG5b3Bv+1eAAQASuKci+Szn5AAAAABJRU5ErkJggg=="
+   transform="translate(12.4451,54.1399)"
+   id="image39"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+			<g
+   id="g41">
+				<g
+   id="g43">
+					<g
+   id="g45">
+						<defs
+   id="defs47">
+							<path
+   id="SVGID_5_"
+   d="M 73.186,78.604 66.41,104.46 c -0.121,0.463 -0.479,0.822 -0.939,0.949 l -25.781,7.059 c -0.461,0.125 -0.953,-0.004 -1.291,-0.338 L 19.392,93.331 C 19.054,92.995 18.919,92.505 19.04,92.044 l 6.776,-25.856 c 0.095,-0.354 0.324,-0.646 0.632,-0.82 0.098,-0.057 0.2,-0.101 0.309,-0.129 l 25.781,-7.06 c 0.461,-0.127 0.953,0.004 1.291,0.339 l 19.006,18.799 c 0.339,0.334 0.472,0.826 0.351,1.287 z" />
+						</defs>
+						<clipPath
+   id="SVGID_6_">
+							<use
+   xlink:href="#SVGID_5_"
+   overflow="visible"
+   id="use51"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_6_)"
+   id="g53">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="75"
+   height="75"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABlBJREFUeNrsmm1z3DQQx1f3/Rhe MDDDCwYGWpqQ5zZN0pQkJKRJ0/Qhob08tcMLygAvgGEYPp+W2D7Zq5UsS7J9p0uqm8SOz0nr3/33 r92VBpDI+PH4P9w7+hch4TFIBRRICYAIu4f/4AdYLlAoAclr5+Bv/ACrDtS1ouhXprDt/T+TAyYm C0oHlL/UOfl5f+szcWuVFQIq+/nx7h94K2GFglL3bf7wG94qWLGgYHRtY/tXvBWw2oJSX+tbv0wM mBgfKKmDqoGTvYDPjsAhAxw/+UrcOGVVisqfE3IWxaE80aTCf1aXsfyt/A+tbv6MN0pZXYRecV0W XMnfUAp7cfiNmHplGaCAgYHqoUsAUIEqjjL/ghpQ2fH+xlucamVZQTWoS/cpqflTHSgcxWx2fHX0 rZg6WL6hZ4Mps2Ia0AJKEkAmKHX95Nk9MTVhGAMKqeqAeLgVFNqPo7+/tHqOUwGLggLiUYYnGf4k y7Az4BmgiJIQKlBktlx8cIZJh2GMR6GU7F5gv2cBVd4PZCKwX3/9cl4kp6xgUBmEnkFlY37lNSal rBBQ1LyNe0cPrWDSVEEH4gCkmT2Wye3wZFFMXFlWM3ecj4RCMnKakFeK4m9ieQT9iOxYvo9aOTC3 dIoTVRY3cyPZVGpCScBBrfK8zLxBWeVsqv1uBe/sdFmMHZYTFDVvay4FvYDSakcLKCW/s59WxNjC kIceByWJeWNNLmWmB8gSTtA8Rw8sPcRCQGXfZxde4lhgucxcDwNL96D0avsk0JSZgyPsmkBVHY7i 2szCC+w1DBtDz6eksSrKD1SVPpCZ0hMU/dSwPEe4eLMqOodVB0ordjU44EwjrGmAAQYdeVZ7UErk l8MwYINgUFKaXYGaUCvPeTtPm/dpUoDWe/oAlX27N3eMnSiLgyrTACPczAdyJZ2+M1/srOcLiobz 1dmaiFaWTVHs3yHmXRXGqJ1TcTSUMdGgMBAUluc0L7v73RFGwdJnPWksqzuN3OlbUlchq/do98Ff USxktQ8zIMKub7072wxM2EHVdCpr4aCzMG6q9/yK5uY8qjqn8kf9PeS5mg7k7fm6aFSWHRS2BmUU cbTe455nmHkkKDRBIWAjqDwkZ5+iU1kZKORdAfZJx4Gyt4NRenQRvM3cAgpc79WD0hW2YShsoBRl DX0EbRXGCg2AmLmr3lO9rG5A8Ye0elQkqGzcmTEVNtBWP6GpLUzzKdBmMxeoDFAR3t0Vxcg7DNSj qDdGgFL3cGCDrbWPBELcakxjB4HmWezzp6qkDxHkUQwU96U2oJR47swcombw2+sfi25A6YbdXOt1 YOY8AQTbpRhQNCQLYJqJ7Rz8hW5Q0FgYG5MDmBDDQ4/1TLWks72Zu0DVJqW7m5+IaEWppXbHul68 R1lAaUruH5Q1g9/7/lMR1ryTTAGWRrmlcaffE2bmSAEic0QnKGvy3r6Qfrz7O1pbwjwzr/WkDjNz 4CvWsaDcvlZPFOHd5aaobdE82flcuDoJtSHXA6j650BPM28Pyqv5t7H9Hq1rez4dzoZ1PysolvE3 1npauPcHyqsH/3TvC+Zh0vxPIstWbU09H4+qA4W0mggBhZ2B8l6weLb/pVBqshfFZlLZvFpsgqKz sFnroSU9wHAz93F0C6jgdcN8H6fNyJkPBYPyadwF5VHQqaKi1g2fH3wt3KAgSlHmY7qK4jZmjtGg opfv832cztViNyiXSfdn5hgVep3sollZu8JgULRTOVZQ0EpRnWw5Wn54gSGK8upwQkeg0DNP9wTV astRNk6OZ4SRQ9Uoyvqps+1EKYNqrSw1Fh8MUS9u3S1gZ+MuUVCdwcrGwv036B16fYHq2KM6DUM6 sg2v2pYhV+ih+YSpg+pUWWrMLZ8icGjeq8XpguoFVg5s6RT7AYUNJUx/oDoNQzqGp0vipoHqTVlq zC6+wmkPvd6VpcZ5tuE1FBSkCap3ZamR7+P0BYVpghobrBzY/HOcNo+aGKxsqG2J0wiqd8/i43L4 UPh5VHqgxg4rG1fXwEI8ChIBNfYwpCPfx9nVavEYQE0UVg5M28eZNqiJhCEd1f7N9EFNHJYOrEKT IqgkYBXAiv2bqcx6SXoWH9W2xPRAJaMsNd5dZApLE1RysApgj0SKoJKEZQWWAKipGHS38KTH/wIM AOPiwM3yhKDYAAAAAElFTkSuQmCC"
+   transform="translate(8.4451,48.1399)"
+   id="image55"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+		</g>
+		<g
+   id="g57">
+			<g
+   id="g59">
+				<path
+   d="m 68.596,23.879 28.367,-5.346 c 0.508,-0.096 1.025,0.086 1.361,0.477 l 18.813,21.894 c 0.336,0.391 0.438,0.93 0.269,1.416 l -9.554,27.239 c -0.172,0.484 -0.586,0.843 -1.092,0.938 L 78.393,75.843 C 78.006,75.917 77.613,75.829 77.299,75.61 77.201,75.542 77.11,75.46 77.031,75.368 L 58.219,53.476 c -0.336,-0.393 -0.436,-0.932 -0.268,-1.418 l 9.553,-27.237 c 0.173,-0.489 0.589,-0.847 1.092,-0.942 z"
+   id="path61" />
+			</g>
+			<g
+   id="g63">
+				<g
+   id="g65">
+					<g
+   id="g67">
+						<defs
+   id="defs69">
+							<path
+   id="SVGID_7_"
+   d="M 116.389,41.127 98.108,19.764 c -0.325,-0.381 -0.829,-0.561 -1.323,-0.469 l -27.642,5.146 c -0.494,0.094 -0.899,0.44 -1.067,0.914 l -9.363,26.514 c -0.166,0.475 -0.066,0.996 0.258,1.379 l 18.281,21.365 c 0.248,0.293 0.602,0.465 0.973,0.488 0.115,0.008 0.236,0.002 0.353,-0.021 l 27.641,-5.148 c 0.494,-0.09 0.902,-0.438 1.066,-0.911 l 9.364,-26.513 c 0.162,-0.473 0.066,-1.001 -0.26,-1.381 z" />
+						</defs>
+						<clipPath
+   id="SVGID_8_">
+							<use
+   xlink:href="#SVGID_7_"
+   overflow="visible"
+   id="use73"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_8_)"
+   id="g75">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="63"
+   height="60"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD8AAAA8CAYAAADRy2JxAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABK5JREFUeNrkW2lu8kAMTdJ0o4fo sXqJXrMn6o8uQPlqxEPGmhkv8QRVX6RRIGQbL8/P9jAM/8l2+N3ksfmvvPzr6+vh/v5+kGOz2QxP T0/HPT4/Pj4eP/P9fr8frjb55+fnwzRNA415nqvj7u6uOE7auxhMqxfPGsfxvKdBz8Sx0ORvbm6O T8CN+E3l599zj99pj89Lt5+fn6FguRcCwO9SMFJYfPIHKTEpvYW+VtSO9Vp5XWsyrXNP4zCyCU3W l+8pgNokpSmTFZFr3N7enl1BE1Lt91Sfp5tLK7EIrqXBkm/X/B3Ht9vtAPckYUFQpedMGRqV3wlZ 4aPYa9ptWYVHaC2/7472JQuQGtrtdmdwJOHQkKCouUjNIjwYMWX5c8SktWtaIc3qUq3nTVna9gIe D5EIiVaBejR/NcCz4kTrhWl8f39fID5na5qldDN7aI+P0u8gQGB4NaGQ7xNa0x6ITWjNrcIS00tR APesTt7iXxK9vYhdC1M199BiuIbyLevq7vNWkLKidAvAFqF9id5mUNxIHNeAMyPUzVkgF2V4VtAr ncuBkGgvAWFJQC3Nj9E46tWudv8WHmgCq52/OM57iYxHAJ4szWopnNsTr6eix8PDQx/Ay84KLSzP A5BXQ/uoBVkyOEt4w6B84vPzk0L1YRWS46GrEb7OqkxHMkTmTfuroH0rNNZewJKiWmI6P/fr6+tC KLX7zL38nPNvzSK82Z/mDqX6X2nrmtJyPg9+D55NPohc3oP2GuC1/H5VtPeGMo3b1wDPSm/lb6ui vSYgnvHx4zKF9VZ0a+83eymrJgBPHsArsrSv+Sansmh6WPj9atXbLP4OLYOhWc3bWrtvmr0lm6tV ZC1x3pP+aiktihwWdte9khPFAw8H4P08y0Rb956WgJrmU1azj3xHuIymxqmAl13d1cpfsrhJLkD0 NmL2YxaoRSxHi/my02sRSqrZr5Wy8mQFPXsrEHq6PKvk80tClDfhqWm91tvvyvCkz/EFDFGf155F IAgckMcp2/v4+Djn9KkdG8n0eNOi1aywUF9vWZsmCfdBi1pek2b2UqPg5NE4H+kFtARFAiD84EqY sifdmhzv2UciQITN0UosrvlUbu9NaDhJAYeHNpYWJS2tMBXwetTsvddHVmp4Q+Aqoc4Sg6F9ntbC RQg7sNbGaxGFFVlts49SWo0Ol0wQuTw/hrRWEhwIgFdotfwiLauLVmyWlq6txQk6hn4+z09q9w+v w6sVHqO+7ylBFU3410oosVncsfFqONJmtsR4T8pcc6vWYoppTbDLiiIgUJzKXg3tLaUvuTi5Blie ZS7Yn3pwrlqBnPwYmbQWGUq83oMTlnW1ljJWekrrLV95evDe4qa3hdXF57OWlnuAzsP5VZKTTW6s IdC7tk5ei6ImgSC5Gv3FRIIjMjvK6adeqN5aOZURWi3h8FS4qLpeus9bi4da9oWOLugvjxQ8Pweb SwW8jH9YyPvxfL7Vl8MGDi9fvFSZsZTC5DZbYndWQlMSBrRmQXRLhkj3fHl5Mb18GPDk37dqcd+q GV7tIYB6e3sbh87bvMSMS+QFk39/f+/+8ouZqZzTEsb317Z/AgwA2yChyARGcrUAAAAASUVORK5C YII="
+   transform="translate(56.4451,17.1399)"
+   id="image77"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+			<g
+   id="g79">
+				<g
+   id="g81">
+					<g
+   id="g83">
+						<defs
+   id="defs85">
+							<path
+   id="SVGID_9_"
+   d="m 60.072,51.711 8.87,-25.297 c 0.16,-0.453 0.546,-0.785 1.019,-0.873 l 26.344,-4.967 c 0.469,-0.088 0.951,0.082 1.264,0.443 l 17.472,20.331 c 0.313,0.363 0.406,0.863 0.25,1.316 l -8.873,25.297 c -0.121,0.347 -0.377,0.621 -0.699,0.771 -0.1,0.049 -0.207,0.084 -0.317,0.104 l -26.345,4.967 c -0.471,0.089 -0.951,-0.082 -1.262,-0.444 L 60.322,53.029 c -0.314,-0.365 -0.408,-0.869 -0.25,-1.318 z" />
+						</defs>
+						<clipPath
+   id="SVGID_10_">
+							<use
+   xlink:href="#SVGID_9_"
+   overflow="visible"
+   id="use89"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_10_)"
+   id="g91">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="75"
+   height="76"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABMCAYAAAAlS0pSAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4FJREFUeNrsnF1rKjEQhs+sRVFs sVRRKlpaWmpREBUFsf9f76S96kX/QC+8E6Gl7ZwzHAKyaDe7m49J0oElWRKJeXaSzCavRn8Y2uPj I3L8XhFXUIvFgh0w4AYJ8T8jSulaLpfwC+sIqDgsstVqBb/DUAIUpbPZDIOHJQNK5KfTqXVgJ1xA xQEduw/Osw55lMz9eDy2Sgy4DrtjHka2Xq/Ba89SBYrS4XCI3nqWLKi0EJ+fn8Erz9IFitLBYIDe wNIJSuT7/b4xYCc2QKWBxSmkABe96VDZy8sLODUMbYGi6/7+Hp2BZROUyN/d3SH7YagClEqIr6+v wNKzuIGi9ObmBtnB4ghK5K+vr5UDO/ENks5wIvIRlLi63S5ag+UKqP37TqeDxmG5CErk2+02GoOl G1T80vEgLi8vUTssE6BMPYhWq5ULGJjYrMtaT9dn3t7eQFno4IM36QgpotBAUVqv1zH3MPQZ1KGy zWYDmTwrNFCUnp+fY2pYIYIS+VqtJg0sChmUyJ+dnaG0Z8VPgffzOst+OoHWXRYHenp6ilITPAnH ZA4IdB06cKm73W5BajWcz+eYtXEOnVXVzm63g8TVUCjsZNw4fv/9/X30HS/NfJKnrqp2yuUySkXw 1GkOXgIAmUDkeQD796VSCd/f3yHx3ZBEY7bnFRMPSKbs4+MDEl+kJ5MJqmjUB4ifn5+QuOtAwjFT oFS0kSWWk6379fUFieeGo9EIdXbQBMQ0q/axOv/mckjc/COFneoOmojSZXdkD23ZHAmoUWqn9Onp CfLsG6Vd+k2X/RTuxDlKnRvGQwqdu6Nc69GUJb2fQ6KxkEGlFoY8PDxgCHAOgcqkoun1ehgiqMyS IxKOcd+vUjHslOmzSDgWEqjcYrbb21sMBVRmyZGNkML0/KTcs4RoLARQSmCRXV1dOXvUn4aBMqEq Ccd8mp+0wiIj4ZgLR2BZ+61cAk3CMR9BaYElhGO+gcodOmQJKWzotFQ5hrYfBzWbTVTVUQ6gtMIi azQaVnUUqvun/WdnJBzzAZQRWGQXFxfoOihjsMiEcMxVUEZhkZFwzFVQ2kKHvCGFzRWPjWeRkWjM JW+yCousWq2ia6CswSKrVCroEiirsMhIOOYKKOuwyEg45gIoFrDIisUicgdlPHTIGlJweahs/tay UCggZ1DsLIoiBACiJK5fSzC2oP4KMACHaTw+cGJ3RQAAAABJRU5ErkJggg=="
+   transform="translate(50.4451,9.1399)"
+   id="image93"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+		</g>
+		<g
+   id="g95">
+			<g
+   id="g97">
+				<g
+   id="g99">
+					<g
+   id="g101">
+						<defs
+   id="defs103">
+							<path
+   id="SVGID_11_"
+   d="m 51.733,53.552 -28.555,5.67 c -0.51,0.104 -1.033,-0.073 -1.377,-0.467 L 2.61,36.863 C 2.27,36.473 2.164,35.928 2.33,35.439 L 11.692,7.872 C 11.86,7.38 12.276,7.017 12.787,6.915 L 41.342,1.243 c 0.391,-0.078 0.789,0.008 1.104,0.227 0.103,0.068 0.193,0.148 0.273,0.242 l 19.189,21.893 c 0.344,0.391 0.448,0.936 0.28,1.426 l -9.362,27.563 c -0.168,0.492 -0.584,0.855 -1.093,0.958 z" />
+						</defs>
+						<clipPath
+   id="SVGID_12_">
+							<use
+   xlink:href="#SVGID_11_"
+   overflow="visible"
+   id="use107"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_12_)"
+   id="g109">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="67"
+   height="70"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAABGCAYAAACXBynAAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABz9JREFUeNrkXDHLJEUQ7Z3bRA4M BcHA0EwwFSNjExEMjVQMzAwu0VPQVBDBSFADwb9g6g/wBxj6AwzMvJ3p587u9kx1TVV1dc+M33fn wLB7d7uzPa+rXr163XMhOI/Pfwx4/ENAeIaPg+dDX/wUgBGG8wlyjkd6/9UHvmvd5+O45ssJkBGk R98FxBhCHM7n+RXk/bePng6gqsCAAoj19+PrR1+eselDGM7gDP3tPL//+ev7BVJ1ZDSRBksv3P7u 3Y8DEjh9AukUwq+/3A1IR286JM6gNxZgIzSmCVAGlV57PN585wpSfwMnvf7+274gHTe7Eq48gfQa hVTi4GEJFjhAhOpfff0G0ukK9Jhq6fXPP9YDddwiRWCljxI9l6hp+U1WxRJpv/jyzEuJuMfz77/8 IBXBmMqqd8RYYsAHPp4ZisgBHWc/sNTMPqcADEbc4/nweVLlhjlCz9F1aIsMI+/pLExpAh/jpkHH 8TtpRnsfUZsTBCMqb+N78OA6yXS8XVWOQC+lAY5UcaaQlntIUUO/hjVlLj+6sCJvrZtNlQQsfLUZ liZzSq04cwEXe6gBuDA/q6sJz9E0+ARIugnQNFKACLB5qJQmiROwZ2Rsob7ABj2RqHXD1uxjLuOL 60EBeA0YtJKghWBB9EecI0UUc5oQM+gEsMeCylLerWadhnC2jpEgYyzgjLLGmaIG+fV2UaDgOWrM kvTvU09Cm7d+2ctQjTEqz0nZFrSG1SMt2oqbxu32oIlM4BgFCAX5Os1uZOlVU/GwNYHCisccZR6S gHP0MKJKI1Vyw0n8rdEbx9pwsDgATv1B00E6epI2k7oVxhFZKd9NdKVK4mlLpM+BCadUTSR90kTK 0FWq1BR60r1rZs/Kz0GxC+mfUzTAI+EN8MD4xjvkJjl+qSSxYPBI3oVgGCUNMkiiCU5+UX4Tm3NG iVRbO8vSvTHwEn+MfDLJ/FjueZzDP1SlidlYQiirUc/hLJwVi1GS2oBtI8DqqnftTZQcXYBHBpcq yWXgzuhaYImcDxY9TvAJLum3O7OSeFtATROwGVZTDHrUIPi5RDKZ3GDVii5suLjI04fqilI1MTkC S1Mae6XJpBvYOgjgJ1iQQYuh7pDSgJeJ/R/p1k+vrd45oaHkVwipMPQ5SRYJuaGSuMCAtmgk3CGt JHzQ4ClXSoVWqW0td8Lus7pWHQGhuwzSDXvae2+GCH7pNAGoVK17lFat9ktRMxFkNLDGMooyAEjU YPD5Lc2cQRu0UmWFI2Qlp4lrjIGshPF1V5FvjKii5XwfP0PoSYB8L4bUYhctO6YD4LBPVIer1Cdh CzAgkxuiM3SgX0NclsQyajJibohQ6HrpUE2gJdMGRP1pkSJNEkp6ZjBkdUO5b+tanfDTHOW5LLlU kqexWJetULq8lK8VyM3VBDAiZGCVJM7hnu3dMCoRFIeLumdejdEEBq8kq40uadDGOik8XoTHRwn+ /R/btvBenlGKQVZW2Y4fy9dU3XTI1/BM4rHmPkUTBfW23LgYlEBQhdpt0Wgyk1E2bzzuvNSTuCLD szWJ8kRGmHwdFYYZw6IpXVM0ZazmrsX43NrpqknrRVQ5iFlKFwl8k+gdktrVtbrdLUFApEpCDVwr 56nJY6lgcQwra2snWX1SWGpyWh2HRWRC85XWU+GIilKRKa3zbq8zCgOGFarcICY9Tql9L5Ez9uYM qZKYLhcMkyV1s1H3RrTc9vRb2FyOe43cyg1UKKlEahAPrN/Bdct0lLRI/aa2w2ZpAkF+LzaxocLG YlbgtD7KtkCBkHJM2kNbPMJOaeKx66QQpT3JtBWy4H+qhg255pobLqbJYtHI0zm2sL4ABBT3q0gY bFIS2DSCPCawGRlVJQm6KgUUjwczJ1yipmerYDU+E9sthK10hjqTgr23doEX1pYlp30HR9r+N3Ic hYyBcoNG+lHCzR6TGGznrGyaLo5DExgobBFKxMj7BCiNE6zrWqZOCKvWeuH8biehi9YfhtF7eIIM ZSMoixa+F52b1pU6qKu+WaVi8N/Myio3ig2dgRYOSN+JdYtGCzC8Vl+xssJpsoA80klTDIW0hHPb JRxjbSmtU/0WlKVk0phiqlSBrO3PRmO4hSueg1EQJnzZTjV5g2Mxq7BjZxgEeS8sWBWjRP4d8+G9 4+P38g98+r38gN7hcD25/hgYJ1SzPvSeD96OtbCV23tUPQv6yTfn+x2IemTPlqbX0z8345c8xUyf bO5P+ZMEdHv06cl8Hfob9HnWGJe+a7aYpPwnBqX73eQJ4vc/I08o9/nz7vx9ZJ/j3+FgDLcnGsdX FQxBId8ZGNrx9ofzs+4LcAQgLlHzZHbAOCB9vwQgvafbrLl9eS/A0I433iIgkYhJs0+jgYO4AGOY Nc1TCYZ1vPLaGahBTrc4FMBgj4YzMA6bEuhdHi+8NJO3BooEBimzzw4Y2vHcw/lZdyj/Dc7/Bgz1 xrozBBV8MR7/CjAA+v4BfMl9k/sAAAAASUVORK5CYII="
+   transform="translate(-1.5549,-4.8601)"
+   id="image111"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+			<g
+   id="g113">
+				<g
+   id="g115">
+					<g
+   id="g117">
+						<defs
+   id="defs119">
+							<path
+   id="SVGID_13_"
+   d="m 3.367,36.629 18.646,21.367 c 0.332,0.379 0.844,0.555 1.34,0.457 L 51.177,52.99 c 0.5,-0.101 0.902,-0.457 1.068,-0.933 l 9.18,-26.831 c 0.164,-0.479 0.059,-1.009 -0.273,-1.39 L 42.506,2.471 C 42.252,2.178 41.893,2.01 41.52,1.99 41.406,1.984 41.285,1.99 41.166,2.012 L 13.34,7.48 C 12.844,7.576 12.438,7.93 12.276,8.412 L 3.094,35.24 c -0.164,0.478 -0.057,1.008 0.273,1.389 z" />
+						</defs>
+						<clipPath
+   id="SVGID_14_">
+							<use
+   xlink:href="#SVGID_13_"
+   overflow="visible"
+   id="use123"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_14_)"
+   id="g125">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="64"
+   height="60"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA8CAYAAADWibxkAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAB5JJREFUeNrcW0uS5DQQ1ZPd3cOK U3AAttyAK7CZiDkFKwhYcQGWLGbDEbgBGy7AOdgMPVO2E0mWbH0yJbna7pjAHfVpl6tKmcrPe08q qP/Z8fN7TfaRFEVn9+c/vlWIrx8/V0N++f1LcmYQeWMW9zycWx+X0lA69j2v4oDf/viGluWmFpqU fZyXyT0nmv1tMf+vj+F/2gxOJ5G2+aVTxnbIAX/9/SvNyyc1zf+6221+VtO0Prfnt9scnlujzc0Y vBq0zxhUPlnIHvkDCE7oPeoXj8bLdJs+qO0274/WuJsz9tkb/WwMygYKP6p8lOYFFAaCMRSClUje SYnHoNRJEaDZSYiGj8qAg5npNaljNMbyPZzN4R69Q8cp12nuDbAjhE6cYT/GhjbvDKhBPxaOCa9r DP6m/eeC9QIOGIJDTuhxQAhb7PNq89UWp5luLp/tNTaPCyd4Y7Qe3YzDGIsiBdKBr5Ggi3Qqogkn BEFvBKRhj2z+FWNSnuu5UyAF+n5vnLBHHJdUyN12juW1FLCDB7AHRhQhccBgm/zIJOTFULFOOz6Z qH/syxzgfQ5sXuaioHBKcq0qiiaUWDIEk6H2Ls80SeTxejw/fnqffrDmvmR3hmKcocQakA6tFqrp 0GmDrisA6jOKUqB0sP8LKZBGwjh8kdYolFPJVmNwA87yF6jW99Ic2hAQEV1RA3ijRv1kKvuDa2Ps UCEEIvgKXi9hKFro1YfmhmdhrIWwCXIpqnp0DmBNzEEUkjt09PlGKkA16kD700YT1iB3TMZwG15T McCt1IFteOwg5FnERoKODXaHvysfQHSGoklZGWHAMQdTIAVDXB4Pw6NBfU9VfF84JKKxq+GtNii8 jstToEJkgASiaAN9bV3ABmAESM3iDCV3lFPw/wtqwPqnmTnh8HuIGKnBQbAPFfNQFtAX2019KbDl bTaADQDlTsmQYPxCeM/gImVkAbeq4kQ0EMQRr6CHDMW2S7w9Gh5SJDgMT8bYB5ZSB0ZororIllzZ eww6Cw5rJYgWRVnzsyr2/M3Qca8NeXtM/tWeOWrmc3wiMtijDwW+kAxBZHJIBplCF7RJTFJQY7t1 9J2oAueztMDCAUgID5RMk7nuoASaLKPB460QL6yIYAlRRRGSugCEuUWHGbUCiA3nE8sH71GCcDAF wAR0RPxFQYTB/YuXvhdaOoqdN9gYHz7q/hoXj4WarVDz3oUjQOPwxpChNzIHRzkjq/w9l9W+0AJw ZwfImSnT8+muIohUDYpmNfTyNAMgiiJ1FAMxieRnlZB+YTscvTc9IZqd+DmLuVrO3OIE009OPOVp NRf+cJzlaO5y6wMemLNCSkqI+LUEzdZvBqzk3WFdxpp48AuODaI5v6qT2jalMByMgBLbMiDGO8Gi vYdhrQvz8lGUxKRopQrYDWdJUpmoeuJEIJRpesjDP6wDuLoAuW8D9QYA1Vk3rjtGVswERLeI1Fdg lXaxxOWhSdE5qRN1wVSc2225/DIonC9NZMUrpYlMRkKcSOuQlSNICkcFBITuhnOjgxdE0lWPTRfc cxsZURrMTD94teiBWWMo9YDVGUNJiLo63mUrQ2n+15e3Sya4F8tBxAX7pgiTDhFKzAlRiJaNEeKa CqFVQ3bI22NuGDjpS1B+VgoLxnE9kigukccadJhflEQTIFUE0srZNvO7x2hUGaHO8TVYrV8GN7tc VmJ1NNf0ywhZo2RR8YJZj0ESGMK9EZAP1rK7aXl20DfV9EuHofLtgLQbhFj9GxV5/IyGMEr5Zqvz ODytxk723Ifim4MuCHF2pFUjyNFKvWF9CQ6A28Y2zR/XHV52d1eo1ACfAgJwquYujuVrT8RLlJga moCOchZ2xpHggLaWrxJ1OE8jiNcq1pmNrA0oMBFE47UMrgbUnTpyQQFmMPD93ULbgR4VDYuvDbfq ng/0LXr1weDNKjorAxg6jFwaj2AwIGybAw+BwbAf9Cx+o+Gui/cIcRI1uxcwLevJrPdw9tbaz9nq T18EZOt9qIKdCBuA7SUubQY8eFltaMjb/ZQYJ3lj5Bo1GIO3lSFmHUD7VR5LhJw0ZTrngrkDDOFg c8uvqL2jr1WOrGdRrvrmggiYmtEHhrwTyZMdbaJisW6zG6pnr+MFx2lnhL23miMOrQvRnTUA/ObH ovihvUek2stxrPhdVQi0KIagLHYQdo2gcEhNGkMDEeIVBbHKTlFpgwQaGycgkqHaiiAOtsJOQtTB CFkcABaVCbAXvCGz/4VI+AVIvJFJWmZfpfYl0vxS7Y82hkhRnlMzW3CMDMEXp9G1Lhrm9QsNIbI/ muBmQGIJRyWOrZ3SGV3gBCTI93Z+f4Cqbo7fjyWSxCib5XK7DS4sf2IR1MlvBvK8LjNDGLBwHg1Z vA11D7iB2g1xzGYf8zwRN9MS7kesJOfGikvqB41zOyOjLCH4NUJy32HJoft6StcIf3i7NL01SkUw UNdkC1yoDWQQn6HOVtW1vxzbzOQ2SCXvN6AH02qMmL4pEiUrmZt0+f67fy7pjmOtDUpgaPuNX2FB GS1B3nbGm/e9+/bP12zz9zkgrevpBqWgEH391bvPypB7j/8EGAA+BT6EPILrpQAAAABJRU5ErkJg gg=="
+   transform="translate(0.4451,0.1399)"
+   id="image127"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+			<g
+   id="g129">
+				<g
+   id="g131">
+					<g
+   id="g133">
+						<defs
+   id="defs135">
+							<path
+   id="SVGID_15_"
+   d="M 60.057,25.401 51.358,51 c -0.151,0.459 -0.538,0.795 -1.012,0.891 l -26.52,5.271 C 23.35,57.254 22.863,57.088 22.545,56.725 L 4.723,36.394 C 4.408,36.031 4.307,35.525 4.461,35.068 l 8.699,-25.6 c 0.119,-0.35 0.371,-0.631 0.692,-0.782 0.101,-0.052 0.209,-0.089 0.322,-0.107 l 26.518,-5.27 c 0.474,-0.095 0.96,0.071 1.277,0.436 l 17.822,20.333 c 0.319,0.362 0.422,0.866 0.266,1.323 z" />
+						</defs>
+						<clipPath
+   id="SVGID_16_">
+							<use
+   xlink:href="#SVGID_15_"
+   overflow="visible"
+   id="use139"
+   style="overflow:visible"
+   x="0"
+   y="0"
+   width="841.89099"
+   height="595.27899" />
+						</clipPath>
+						<g
+   clip-path="url(#SVGID_16_)"
+   id="g141">
+							
+								<image
+   overflow="visible"
+   enable-background="new    "
+   width="76"
+   height="76"
+   xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEwAAABMCAYAAADHl1ErAAAACXBIWXMAAAsSAAALEgHS3X78AAAA GXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABNBJREFUeNrs3AlT1DAUB/DE4YMC HjAIwggCcl8CCh4giCACftHGTWncNPuSvtwpY2ac7m67uv3xkv6TLhJSYNv9Q9jOA2ElfjZaGhQb MLGGim/3Jsv6jLRILEYey6t5vv+inM85VhrWPzAJ7X+FWWCJ1w+nyqgy2gcs0UWPpvOj0b5gicfH M3nRaJ+wxOufZvOh0VxQWiRiBhP7T+byoNE+YcnH8NdO59Oj0T5iycd8WUiL9ixHIG1hkXbVEGk/ YUoMY8NtroxGk2NpqgyzvwJmAfzPt8V0VUb7giX2s0oZy5rt2VIaNJptzOpAqmEIXFEqltiev4uP RlNWFSYyVFV7TMNiiWO/L8dFo6VgQbHBFktsL1biodHeYjGgy0rby9U4aDQXVtcxPljivT/WwqON JceqlCsgUWAIsvIMUDJwMRVmhUWGcaAz4XtWVQtrsL3aCFtlNAmWCJ6Veb/t4E6Qx/zcDIdGY0HZ YnZiqdMnw1auMPHa9VYYNOqDNRI4KwXI1P1iYFXtKSdRxsabAGg0BBarLK50Xcs2DlgMmJS3uqz0 +GbbD416YWFiQdecMSGWeM+vHXc0mhsLurK5XA2xWKK5oo05rzZgJtA2saEDidhiaaB88xntxALC Zmosm/egsQaPb/fsq4xCUARI3mqGclrjcqwsxsJjiae/LdGoy7p7SCwoYuhOFsRCjFc6LPH4bh+P RlFYjqujvljoCvTAEo/vDnBoNNZSMhqrMu9PgSU29wi0Z9BfTAj8HLybo3QLKDa0KsgQKVJhEek8 5Dax0X0fqhbdvh8cKCd3THzQzR1NA7Rm2pSzstSpFG/3H/SVVlfY7gSh0bAIsGgIIWbqhkxTbahY sXkLfEnEBUsTCVxTuxcWg6uI6YYgYq6y1p3vOmtVyvhTjY5H2m/e6LBMY5o6N4RAlR/cyA8iMFY9 nq3De0cU167b4RX7FSSbgOldVYYqg7q6abzSNfFvPBy2jcCyW70aXgSs7/hYTqCDdEHNdzCYJ5Zo Mpr2arBy2XyeQrGgi0cMLBXNGNSWL4AZgOsEOkZlGa5+JjwtVMdxHK0z2S6dSxktN5YuJiDhfLCs lqgXzwafuXJM5qFigytWB4QNFj8GPUt/+1UZ0zzu6oBVh8Wy6ZKBsR6OCEXf+WahoQxRQQuSGcv6 vuTC5yajRcQCu7rN4B4SS4JyvvM9f6qgeWBZRwjP9I69YuqwnMB4e3MynA3YIGmXkhNguXbBIGC8 zX1sztMXi42OlaHHqxCV5Q3G2+wxgPaEsbzBeHt9JKGZwmouLOx9SARWEDDeZg6b2QAAlwvL6hcf kFi8BfmN3M7YgMQiqbEsoIJWGG/TB8MqI5GWk4N2QwesoGC8Te03p+KZs3LGhqRgNdpe+8qZoqpS YUUB4+3VrnQOTwgrGphAwwL1BSsqGG8vd4Zj2lPAig5Wo21LPTHA4B47NiTJYZiTK2W1ofgK4+35 FhA3LLthri6YBaxG22x3TeuqKgArKRhvk5uPs4G+YiUHq9E2lJlL4WNWdjDeWl9cY/3BygZWo62b KVBYCaGyg5nQSsVKksNcMltJXbCoCpOrrA9YRYDxNr4+jBslYxUDVqOtdZAVgFUUmBGtEKziwEbQ CoIqunG08fdl/tfKfwUYADtnWLCQ21BCAAAAAElFTkSuQmCC"
+   transform="translate(-5.5549,-7.8601)"
+   id="image143"
+   style="overflow:visible">
+							</image>
+						</g>
+					</g>
+				</g>
+			</g>
+		</g>
+	</g>
+	<g
+   id="g145"
+   transform="matrix(4.1874141,0,0,3.7311324,-53.13754,263.2661)">
+		
+			<linearGradient
+   id="SVGID_17_"
+   gradientUnits="userSpaceOnUse"
+   x1="-78.584702"
+   y1="443.40359"
+   x2="-62.209702"
+   y2="443.40359"
+   gradientTransform="matrix(1,0,0,-1,102.3999,473.3794)">
+			<stop
+   offset="0"
+   style="stop-color:#000000"
+   id="stop148" />
+			<stop
+   offset="1"
+   style="stop-color:#81A100"
+   id="stop150" />
+		</linearGradient>
+		<polygon
+   points="29.994,40.819 29.994,22.449 23.815,22.449 23.815,19.134 40.19,19.134 40.19,22.449 33.949,22.449 33.949,40.819 "
+   id="polygon152"
+   style="fill:url(#SVGID_17_)" />
+		<polygon
+   points="30.508,41.334 30.508,22.963 24.33,22.963 24.33,19.649 40.705,19.649 40.705,22.963 34.463,22.963 34.463,41.334 "
+   id="polygon154"
+   style="fill:#ffffff" />
+	</g>
+	<g
+   id="g156"
+   transform="matrix(3.7695875,0,0,3.6465331,-104.05058,247.76812)">
+		<g
+   id="g158">
+			
+				<linearGradient
+   id="SVGID_18_"
+   gradientUnits="userSpaceOnUse"
+   x1="-24.1003"
+   y1="426.44949"
+   x2="-5.8533001"
+   y2="426.44949"
+   gradientTransform="matrix(1,0,0,-1,102.3999,473.3794)">
+				<stop
+   offset="0"
+   style="stop-color:#FFFFFF"
+   id="stop161" />
+				<stop
+   offset="1"
+   style="stop-color:#000000"
+   id="stop163" />
+			</linearGradient>
+			<path
+   d="M 91.836,58.03 89.465,53.618 C 88.51,51.905 87.885,50.72 87.227,49.434 H 87.16 c -0.525,1.284 -1.119,2.471 -2.009,4.184 L 82.947,58.03 H 78.3 L 84.888,46.8 78.531,35.83 h 4.678 l 2.402,4.58 c 0.729,1.383 1.254,2.469 1.813,3.721 h 0.098 c 0.593,-1.383 1.054,-2.371 1.746,-3.721 l 2.371,-4.58 h 4.646 l -6.488,10.838 6.75,11.361 h -4.711 z"
+   id="path165"
+   style="fill:url(#SVGID_18_)" />
+		</g>
+		<g
+   id="g167">
+			<path
+   d="m 92.348,58.545 -2.371,-4.414 c -0.953,-1.713 -1.58,-2.897 -2.237,-4.182 h -0.066 c -0.527,1.283 -1.119,2.469 -2.01,4.182 l -2.205,4.414 h -4.646 l 6.59,-11.231 -6.356,-10.968 h 4.676 l 2.404,4.578 c 0.727,1.383 1.252,2.472 1.813,3.724 h 0.101 c 0.592,-1.386 1.053,-2.373 1.746,-3.724 l 2.368,-4.578 h 4.646 l -6.491,10.836 6.752,11.363 h -4.714 z"
+   id="path169"
+   style="fill:#ffffff" />
+		</g>
+	</g>
+	<g
+   id="g171"
+   transform="matrix(3.2927064,0,0,3.7309581,-35.037349,194.61371)">
+		<g
+   id="g173">
+			
+				<linearGradient
+   id="SVGID_19_"
+   gradientUnits="userSpaceOnUse"
+   x1="-68.1101"
+   y1="388.31369"
+   x2="-44.980202"
+   y2="388.31369"
+   gradientTransform="matrix(1,0,0,-1,102.3999,473.3794)">
+				<stop
+   offset="0"
+   style="stop-color:#000000"
+   id="stop176" />
+				<stop
+   offset="0.9879"
+   style="stop-color:#848BB4"
+   id="stop178" />
+			</linearGradient>
+			<path
+   d="M 53.143,87.063 C 53.014,84.261 52.852,80.884 52.885,77.958 H 52.79 c -0.707,2.639 -1.609,5.564 -2.574,8.301 l -3.184,9.396 h -3.025 l -2.895,-9.267 c -0.837,-2.768 -1.609,-5.729 -2.188,-8.43 h -0.066 c -0.096,2.832 -0.225,6.273 -0.385,9.234 l -0.481,8.717 H 34.29 l 1.449,-21.684 h 5.211 l 2.83,8.719 c 0.772,2.543 1.448,5.115 1.997,7.526 h 0.095 c 0.582,-2.348 1.319,-5.018 2.155,-7.559 l 2.99,-8.688 h 5.148 l 1.254,21.684 h -3.857 l -0.419,-8.844 z"
+   id="path180"
+   style="fill:url(#SVGID_19_)" />
+		</g>
+		<g
+   id="g182">
+			<path
+   d="m 53.66,87.576 c -0.129,-2.801 -0.293,-6.178 -0.259,-9.105 h -0.096 c -0.709,2.64 -1.608,5.566 -2.576,8.302 l -3.184,9.395 H 44.522 L 41.626,86.902 C 40.79,84.133 40.019,81.174 39.439,78.471 h -0.067 c -0.097,2.832 -0.226,6.275 -0.385,9.234 l -0.48,8.719 H 34.806 L 36.253,74.74 h 5.211 l 2.832,8.717 c 0.771,2.543 1.447,5.117 1.996,7.529 h 0.094 c 0.582,-2.349 1.32,-5.021 2.158,-7.562 l 2.99,-8.686 h 5.146 l 1.256,21.684 H 54.078 L 53.66,87.576 z"
+   id="path184"
+   style="fill:#ffffff" />
+		</g>
+	</g>
+</g>
+</svg>
\ No newline at end of file
Index: tmp/org.txm.rcp/icons/svg/partition.svg
===================================================================
--- tmp/org.txm.rcp/icons/svg/partition.svg	(revision 0)
+++ tmp/org.txm.rcp/icons/svg/partition.svg	(revision 122)
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16px"
+   height="16px"
+   id="svg2383"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="partition.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   inkscape:export-filename="/home/jmague/work/dev/parent/rcpApplication/plugins/org.textometrie.rcpApplication/icons/corpus.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs2385">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-37.018604 : 12.284868 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_z="17.048764 : 12.44566 : 1"
+       inkscape:persp3d-origin="-26.029722 : 7.5055652 : 1"
+       id="perspective2539" />
+    <inkscape:perspective
+       id="perspective2509"
+       inkscape:persp3d-origin="-33.267286 : 6.6402018 : 1"
+       inkscape:vp_z="9.8111993 : 11.580296 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.256168 : 11.419504 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2493"
+       inkscape:persp3d-origin="-31.285106 : 4.6580236 : 1"
+       inkscape:vp_z="12.64932 : 13.157028 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-42.273988 : 9.4373262 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2477"
+       inkscape:persp3d-origin="-26.735107 : -0.56771901 : 1"
+       inkscape:vp_z="17.199319 : 7.9312848 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-37.723989 : 4.2115836 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       id="perspective2461"
+       inkscape:persp3d-origin="-33.312335 : 7.4060435 : 1"
+       inkscape:vp_z="10.622091 : 15.905048 : 1"
+       inkscape:vp_y="7.4835514e-14 : 1216.7104 : 0"
+       inkscape:vp_x="-44.301217 : 12.185346 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="-10.089798 : 16.607435 : 1"
+       inkscape:vp_y="9.499173e-14 : 1548.887 : 0"
+       inkscape:vp_z="31.470627 : 17.918898 : 1"
+       inkscape:persp3d-origin="-0.42087098 : -3.6222191 : 1"
+       id="perspective2391" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.197802"
+     inkscape:cx="6.7500002"
+     inkscape:cy="12.485821"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1245"
+     inkscape:window-height="964"
+     inkscape:window-x="-5"
+     inkscape:window-y="35" />
+  <metadata
+     id="metadata2388">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       sodipodi:type="inkscape:box3d"
+       style="opacity:0.67000002;fill:#800000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none"
+       id="g3401"
+       inkscape:perspectiveID="#perspective2391"
+       inkscape:corner0="-0.13033744 : 0.01154167 : 0 : 1"
+       inkscape:corner7="-0.42190293 : 0.0069672292 : 0.29174743 : 1">
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3411"
+         style="fill:#afafde;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="13"
+         d="M 1.0282235,10.245284 L 6.6356405,15.718895 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 1.0282235,10.245284 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3403"
+         style="fill:#353564;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="6"
+         d="M 1.0282235,2.0981103 L 1.0282235,10.245284 L 8.6753878,7.1896285 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3413"
+         style="fill:#e9e9ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="11"
+         d="M 8.6753878,1.0890335 L 14.96534,1.6576773 L 14.96534,9.8031469 L 8.6753878,7.1896285 L 8.6753878,1.0890335 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3405"
+         style="fill:#4d4d9f;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="5"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 14.96534,1.6576773 L 8.6753878,1.0890335 L 1.0282235,2.0981103 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3409"
+         style="fill:#d7d7ff;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="14"
+         d="M 6.6356405,3.4626626 L 6.6356405,15.718895 L 14.96534,9.8031469 L 14.96534,1.6576773 L 6.6356405,3.4626626 z" />
+      <path
+         sodipodi:type="inkscape:box3dside"
+         id="path3407"
+         style="fill:#8686bf;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
+         inkscape:box3dsidetype="3"
+         d="M 1.0282235,2.0981103 L 6.6356405,3.4626626 L 6.6356405,15.718895 L 1.0282235,10.245284 L 1.0282235,2.0981103 z" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans"
+       x="6.2072921"
+       y="13.760482"
+       id="text2395"
+       sodipodi:linespacing="125%"
+       transform="matrix(1.069419,-0.1839373,5.186799e-3,0.9341951,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan2397"
+         x="6.2072921"
+         y="13.760482"
+         style="font-size:10.55984974px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.67000002;fill:#800000;font-family:Bitstream Vera Sans;-inkscape-font-specification:Bitstream Vera Sans">P</tspan></text>
+  </g>
+</svg>
Index: tmp/org.txm.rcp/icons/control_end_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_end_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_rewindstart_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_rewindstart_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/R.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/R.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo.icns
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo.icns
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/about TXM.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/about TXM.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/Rcran.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/Rcran.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 64x64.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 64x64.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 32x32 32-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 32x32 32-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 48x48 8-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 48x48 8-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo.xpm
===================================================================
--- tmp/org.txm.rcp/icons/logo/TXM logo.xpm	(revision 0)
+++ tmp/org.txm.rcp/icons/logo/TXM logo.xpm	(revision 122)
@@ -0,0 +1,408 @@
+/* XPM */
+static char * TXM logo_xpm[] = {
+"32 32 373 2",
+"  	c None",
+". 	c #6E850F",
+"+ 	c #6F880A",
+"@ 	c #708D06",
+"# 	c #526504",
+"$ 	c #9AB33D",
+"% 	c #94AD31",
+"& 	c #8CA823",
+"* 	c #87A317",
+"= 	c #7E9C0A",
+"- 	c #769301",
+"; 	c #739000",
+"> 	c #708D00",
+", 	c #749203",
+"' 	c #455702",
+") 	c #A5BA4A",
+"! 	c #83A209",
+"~ 	c #7C9B00",
+"{ 	c #799800",
+"] 	c #779500",
+"^ 	c #749200",
+"/ 	c #6E8B00",
+"( 	c #6D8900",
+"_ 	c #718E02",
+": 	c #A3B948",
+"< 	c #769400",
+"[ 	c #728F00",
+"} 	c #6C8800",
+"| 	c #6B8700",
+"1 	c #698400",
+"2 	c #6B8701",
+"3 	c #93AD2F",
+"4 	c #799700",
+"5 	c #898D78",
+"6 	c #9DA388",
+"7 	c #A4AB88",
+"8 	c #AAB288",
+"9 	c #B1BA88",
+"0 	c #B7C288",
+"a 	c #BDCB88",
+"b 	c #8BA238",
+"c 	c #678200",
+"d 	c #657D01",
+"e 	c #ADC25E",
+"f 	c #7B9905",
+"g 	c #769500",
+"h 	c #BABFA5",
+"i 	c #CDD1BB",
+"j 	c #D5D9C7",
+"k 	c #FFFFFF",
+"l 	c #EFF1E7",
+"m 	c #D6DDBB",
+"n 	c #D8E0BB",
+"o 	c #96A94D",
+"p 	c #658000",
+"q 	c #546800",
+"r 	c #0C0C0C",
+"s 	c #161616",
+"t 	c #272727",
+"u 	c #353535",
+"v 	c #404040",
+"w 	c #ABBE5B",
+"x 	c #718E00",
+"y 	c #6F8C00",
+"z 	c #74862D",
+"A 	c #C7CFA5",
+"B 	c #668100",
+"C 	c #647F00",
+"D 	c #637E00",
+"E 	c #3B4900",
+"F 	c #010101",
+"G 	c #151515",
+"H 	c #202020",
+"I 	c #2A2A2A",
+"J 	c #2F2F2F",
+"K 	c #313131",
+"L 	c #2E2E2E",
+"M 	c #2B2B2B",
+"N 	c #545454",
+"O 	c #97AE3C",
+"P 	c #739100",
+"Q 	c #6D8A00",
+"R 	c #73852D",
+"S 	c #C6CFA5",
+"T 	c #637D00",
+"U 	c #627C00",
+"V 	c #678100",
+"W 	c #303C00",
+"X 	c #252525",
+"Y 	c #383838",
+"Z 	c #333333",
+"` 	c #303030",
+" .	c #282828",
+"..	c #262626",
+"+.	c #585858",
+"@.	c #B7C874",
+"#.	c #769406",
+"$.	c #6B8800",
+"%.	c #6A8600",
+"&.	c #71832D",
+"*.	c #647E00",
+"=.	c #617C00",
+"-.	c #688301",
+";.	c #040404",
+">.	c #343434",
+",.	c #424242",
+"'.	c #464646",
+").	c #232323",
+"!.	c #1E1E1E",
+"~.	c #565656",
+"{.	c #B6C675",
+"].	c #6A8500",
+"^.	c #688400",
+"/.	c #C5CEA5",
+"(.	c #617B00",
+"_.	c #506501",
+":.	c #131313",
+"<.	c #323232",
+"[.	c #7D7D7D",
+"}.	c #FCFCFC",
+"|.	c #D0D0D0",
+"1.	c #828282",
+"2.	c #F1F1F1",
+"3.	c #797979",
+"4.	c #1B1B1B",
+"5.	c #3E3E3E",
+"6.	c #575757",
+"7.	c #B0C461",
+"8.	c #89A12C",
+"9.	c #688300",
+"0.	c #71822D",
+"a.	c #2D2D2D",
+"b.	c #D6D6D6",
+"c.	c #616161",
+"d.	c #373737",
+"e.	c #E7E7E7",
+"f.	c #DADADA",
+"g.	c #181818",
+"h.	c #B4C66E",
+"i.	c #7A9419",
+"j.	c #70812D",
+"k.	c #678301",
+"l.	c #030303",
+"m.	c #474747",
+"n.	c #F8F8F8",
+"o.	c #D8D8D8",
+"p.	c #9A9A9A",
+"q.	c #FEFEFE",
+"r.	c #515151",
+"s.	c #101010",
+"t.	c #7E7E7E",
+"u.	c #ADBE66",
+"v.	c #6E8809",
+"w.	c #607B00",
+"x.	c #607A00",
+"y.	c #516401",
+"z.	c #111111",
+"A.	c #A0A0A0",
+"B.	c #F5F5F5",
+"C.	c #ACACAC",
+"D.	c #0E0E0E",
+"E.	c #787878",
+"F.	c #A7B75C",
+"G.	c #678203",
+"H.	c #647F03",
+"I.	c #6C8511",
+"J.	c #68810B",
+"K.	c #678101",
+"L.	c #2C2C2C",
+"M.	c #292929",
+"N.	c #242424",
+"O.	c #212121",
+"P.	c #FBFBFB",
+"Q.	c #606060",
+"R.	c #0D0D0D",
+"S.	c #9DB251",
+"T.	c #627D00",
+"U.	c #658003",
+"V.	c #6C8704",
+"W.	c #688304",
+"X.	c #526603",
+"Y.	c #222222",
+"Z.	c #D3D3D3",
+"`.	c #E8E8E8",
+" +	c #DCDCDC",
+".+	c #171717",
+"++	c #0B0B0B",
+"@+	c #5F5F5F",
+"#+	c #889D2E",
+"$+	c #769018",
+"%+	c #779019",
+"&+	c #6E8514",
+"*+	c #5E710F",
+"=+	c #495909",
+"-+	c #020202",
+";+	c #1F1F1F",
+">+	c #8E8E8E",
+",+	c #959595",
+"'+	c #767676",
+")+	c #818181",
+"!+	c #0A0A0A",
+"~+	c #868CAE",
+"{+	c #858AAE",
+"]+	c #8186AB",
+"^+	c #7A7FA5",
+"/+	c #7A80A5",
+"(+	c #606882",
+"_+	c #393939",
+":+	c #F4F4F4",
+"<+	c #F6F6F6",
+"[+	c #141414",
+"}+	c #080808",
+"|+	c #9DA3C1",
+"1+	c #949ABB",
+"2+	c #888FB3",
+"3+	c #7D83A9",
+"4+	c #787EA4",
+"5+	c #767BA0",
+"6+	c #74799D",
+"7+	c #72779A",
+"8+	c #787DA1",
+"9+	c #565B77",
+"0+	c #7F7F7F",
+"a+	c #808080",
+"b+	c #494949",
+"c+	c #C1C1C1",
+"d+	c #747474",
+"e+	c #4C4C4C",
+"f+	c #A2A9C7",
+"g+	c #8087AF",
+"h+	c #767CA1",
+"i+	c #666B8C",
+"j+	c #6E7496",
+"k+	c #73799D",
+"l+	c #6E7395",
+"m+	c #707598",
+"n+	c #74799E",
+"o+	c #4E546A",
+"p+	c #090909",
+"q+	c #070707",
+"r+	c #050505",
+"s+	c #4D4D4D",
+"t+	c #9298BA",
+"u+	c #7E84AB",
+"v+	c #696E84",
+"w+	c #EFEFF0",
+"x+	c #D9D9DD",
+"y+	c #72779B",
+"z+	c #6C7194",
+"A+	c #E5E6EC",
+"B+	c #F6F6F9",
+"C+	c #777C9A",
+"D+	c #46485C",
+"E+	c #434343",
+"F+	c #ACB2CC",
+"G+	c #8086AC",
+"H+	c #7B81A8",
+"I+	c #6E7284",
+"J+	c #F8F8F9",
+"K+	c #8487A5",
+"L+	c #81849E",
+"M+	c #F6F6F8",
+"N+	c #7E829E",
+"O+	c #696D8E",
+"P+	c #707497",
+"Q+	c #0F0F0F",
+"R+	c #ADB1CA",
+"S+	c #7B82A8",
+"T+	c #797FA4",
+"U+	c #747686",
+"V+	c #F3F3F3",
+"W+	c #CECFD2",
+"X+	c #A4A6B7",
+"Y+	c #6E7396",
+"Z+	c #ACAEBD",
+"`+	c #CECFDA",
+" @	c #8589A4",
+".@	c #686C8C",
+"+@	c #676B8B",
+"@@	c #6F7596",
+"#@	c #A6AAC5",
+"$@	c #767CA2",
+"%@	c #787B88",
+"&@	c #EDEDEF",
+"*@	c #A6A7B0",
+"=@	c #CBCCD3",
+"-@	c #6A6F91",
+";@	c #DBDCE2",
+">@	c #A3A6B9",
+",@	c #8D90A9",
+"'@	c #666A8A",
+")@	c #6C7294",
+"!@	c #8F94B5",
+"~@	c #777DA2",
+"{@	c #747A9E",
+"]@	c #80818B",
+"^@	c #E7E7E9",
+"/@	c #858798",
+"(@	c #F4F4F5",
+"_@	c #6B718D",
+":@	c #FBFBFC",
+"<@	c #737796",
+"[@	c #9799B1",
+"}@	c #656989",
+"|@	c #5E6281",
+"1@	c #BCC0D5",
+"2@	c #797EA3",
+"3@	c #888891",
+"4@	c #DDDDE0",
+"5@	c #6B6E8A",
+"6@	c #FDFDFD",
+"7@	c #A7A9B7",
+"8@	c #D9DBE1",
+"9@	c #686C8D",
+"0@	c #FDFDFE",
+"a@	c #9EA1B8",
+"b@	c #666A89",
+"c@	c #484C62",
+"d@	c #B9BCD1",
+"e@	c #72789B",
+"f@	c #707699",
+"g@	c #909197",
+"h@	c #D4D5D9",
+"i@	c #6B7091",
+"j@	c #D2D3D7",
+"k@	c #F1F1F3",
+"l@	c #ADAFC0",
+"m@	c #F7F7FA",
+"n@	c #A6A9BE",
+"o@	c #656988",
+"p@	c #6D7193",
+"q@	c #B4B7D2",
+"r@	c #9499B4",
+"s@	c #717699",
+"t@	c #6F7496",
+"u@	c #9A9A9F",
+"v@	c #CCCDD1",
+"w@	c #6A6F90",
+"x@	c #A4A6B1",
+"y@	c #82859F",
+"z@	c #F1F1F5",
+"A@	c #AEB1C3",
+"B@	c #646988",
+"C@	c #6B7193",
+"D@	c #ADB2CB",
+"E@	c #8D91AD",
+"F@	c #6D7194",
+"G@	c #8E909D",
+"H@	c #A5A7B5",
+"I@	c #797C97",
+"J@	c #B0B2C0",
+"K@	c #C3C4D3",
+"L@	c #989BB2",
+"M@	c #646887",
+"N@	c #5F637F",
+"O@	c #A6ADC7",
+"P@	c #878AA7",
+"Q@	c #696E8E",
+"R@	c #656A89",
+"S@	c #474D61",
+"T@	c #A0A5C3",
+"U@	c #8185A2",
+"V@	c #6F7495",
+"W@	c #6C7292",
+"X@	c #989EBA",
+"Y@	c #7D819F",
+"Z@	c #707493",
+"`@	c #787C9D",
+" #	c #727796",
+".#	c #606580",
+"+#	c #9096B2",
+"@#	c #888DAB",
+"##	c #8288A6",
+"                . + @ #                                         ",
+"      $ % & * = - ; > , '                                       ",
+"    ) ! ~ { ] ^ ; > / ( _                                       ",
+"    : ~ { < ^ [ > / } | 1 2                                     ",
+"    3 4 | 5 6 7 8 9 0 a b c d                                   ",
+"  e f g ( h i j k l m n o p p q             r s t u v           ",
+"  w < ^ x y / z k A c B p C D p E   F G H I J K L M I N         ",
+"  O P x y Q } R k S B p C T U V W   X Y u Z ` L M  ... .+.      ",
+"@.#.> y Q $.%.&.k S p *.T U =.-.  ;.>.u ,.'.K M  . .).!.J ~.    ",
+"{.> / Q $.].^.&.k /.D T U =.(._.  :.>.<.[.}.|. ...1.2.3.4.5.6.  ",
+"7.8.( } %.9.c 0.k /.T U =.(.c     ).<.J a.b.k c.d.e.f.!.g.G 6.  ",
+"  h.i.].9.B p j.k /.=.(.(.(.k.  l.` J a.I m.n.o.p.q.r.g.s :.s.t.",
+"    u.v.c p p &.k /.(.(.w.x.y.  z.J a.I t X A.k B.C.g.G :.s.D.E.",
+"      F.G.C D H.I.J.(.w.x.K.    H L.M.t N.O.N P.k Q.G :.s.R.Y   ",
+"        S.C T.=.(.(.U.V.W.X.    X M.t X Y.X Z.B.`. +.+s.D.++@+  ",
+"          #+$+%+&+*+=+          -+N.N.O.;+>+q.,+'+k )+R.++!+@+  ",
+"                    ~+{+]+^+/+(+  ;.O.;+_+:+<+).[+|.B.X }+J     ",
+"              |+1+2+3+4+5+6+7+8+9+  D.4.0+ +a+z.D.b+c+d+;.e+    ",
+"            f+g+h+i+j+h+k+7+l+m+n+o+  z.s [+z.D.r p+q+;.r+s+    ",
+"            t+u+v+w+x+6+y+z+A+B+C+7+D+-+s.z.D.r D.s ).J E+      ",
+"          F+G+H+I+q.J+K+m+L+M+k N+O+P+  ;.r D.Q+z.              ",
+"          R+S+T+U+V+W+X+Y+Z+`+k  @.@+@@@                        ",
+"          #@T+$@%@&@*@=@-@;@>@k ,@+@'@)@                        ",
+"          !@~@{@]@^@/@(@_@:@<@k [@'@}@|@                        ",
+"        1@2@{@y+3@4@5@6@7@8@9@0@a@}@b@c@                        ",
+"        d@n+e@f@g@h@i@j@k@l@+@m@n@o@p@                          ",
+"        q@r@s@t@u@v@w@x@k y@'@z@A@B@C@                          ",
+"          D@E@F@G@H@O+I@J@'@}@K@L@M@N@                          ",
+"            O@P@w@Q@9@+@'@}@o@B@M@R@S@                          ",
+"              T@U@9@+@'@}@o@B@'@V@W@                            ",
+"                X@Y@'@b@Z@`@ #.#                                ",
+"                  +#@###                                        "};
Index: tmp/org.txm.rcp/icons/logo/TXM logo 16x16 32-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 16x16 32-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/Sans titre.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/Sans titre.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 48x48 32-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 48x48 32-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 32x32 8-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 32x32 8-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 16x16 8-bit.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 16x16 8-bit.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/lab.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/lab.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/logo/TXM logo 16x16.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/logo/TXM logo 16x16.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_fastforwardend_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_fastforwardend_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_reverse_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_reverse_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/decorators/R.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/decorators/R.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Biblio.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Biblio.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/exportSVG.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/exportSVG.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/find_incremental.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/find_incremental.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/open.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/open.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_go.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_go.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/run.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/run.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Search.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Search.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_export_view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_export_view.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/pencil_add.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/pencil_add.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/saveas.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/saveas.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_white_add.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_white_add.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_allgreen.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_allgreen.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/encoding.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/encoding.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/diagnostique.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/diagnostique.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/QueryIndex.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/QueryIndex.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_select_go.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_select_go.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/graph.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/graph.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/WordCloud.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/WordCloud.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Delete.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Delete.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/export_chart.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/export_chart.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/SpecificitiesGraph.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/SpecificitiesGraph.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/goto.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/goto.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/pencil.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/pencil.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/find_next.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/find_next.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Referencer.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Referencer.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/lines_number.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/lines_number.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Specificities.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Specificities.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/wrapping.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/wrapping.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/IndexP.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/IndexP.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/pencil_save.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/pencil_save.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_refresh.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_refresh.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/rerun.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/rerun.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Compress.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Compress.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/CAH.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/CAH.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/rerun_slh.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/rerun_slh.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Concordances.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Concordances.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/paragraph.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/paragraph.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/InternalView.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/InternalView.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Partition.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Partition.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/CorrespondanceAnalysis.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/CorrespondanceAnalysis.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_CA_show_colums.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_CA_show_colums.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/export_data.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/export_data.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/find_previous.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/find_previous.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_reset_view.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_reset_view.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/export.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/export.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/SubCorpus.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/SubCorpus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/world.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/world.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Concordances_delete_line.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Concordances_delete_line.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_CAH_compute_columns.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_CAH_compute_columns.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Properties.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Properties.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/find_incremental_reverse.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/find_incremental_reverse.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Cooccurrences.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Cooccurrences.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/save.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/save.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_CA_show_rows.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_CA_show_rows.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/dist.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/dist.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/parameters.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/parameters.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/charts_CAH_compute_rows.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/charts_CAH_compute_rows.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Index.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Index.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Progression.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Progression.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/CooccurrencesP.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/CooccurrencesP.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/SendToR.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/SendToR.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/prefs.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/prefs.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/convert.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/convert.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/find.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/find.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/rerun_matt.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/rerun_matt.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/update.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/update.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/saveall.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/saveall.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/Queryassist.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/Queryassist.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/functions/page_green.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/functions/page_green.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/world.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/world.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/add.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/add.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/cross.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/cross.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/error.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/error.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_fastforward_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_fastforward_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/tick.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/tick.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_rewind_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_rewind_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/control_start_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/control_start_blue.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/project.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/project.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/partition.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/partition.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/Progression.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/Progression.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/corpus.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/corpus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/folder.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/folder.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/books.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/books.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/file.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/file.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/text.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/text.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/subcorpus.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/subcorpus.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/world.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/world.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/lexicaltable.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/lexicaltable.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/book.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/book.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/edition.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/edition.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/start.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/start.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/save.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/save.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/script.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/script.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/icons/objects/query.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/icons/objects/query.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru.properties
===================================================================
--- tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru.properties	(revision 0)
+++ tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru.properties	(revision 122)
@@ -0,0 +1,414 @@
+#=
+#Mon Mar 05 10:02:31 CET 2012=N/A_
+command.tooltip.69=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.67=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 \u0432 \u0430\u0440\u0445\u0438\u0432
+command.label.139=\u0415\u0449\u0451...
+command.tooltip.66=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 R
+command.label.138=\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 R
+command.tooltip.65=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u043a TRS, \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u043a \u0444\u0430\u0439\u043b\u0443 metadata.csv
+command.label.137=\u041a\u043e\u043d\u0441\u043e\u043b\u044c R
+command.tooltip.64=\u0418\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 XML-TXM \u0438\u0437 \u043f\u0430\u043f\u043a\u0438
+command.label.136=\u0417\u0430\u043f\u0440\u043e\u0441
+command.tooltip.63=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441
+command.label.135=\u0424\u0430\u0439\u043b
+command.tooltip.62=\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441
+command.label.134=\u041a\u043e\u0440\u043f\u0443\u0441
+command.tooltip.61=\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u044b\u0439 \u0441\u043e\u0441\u0442\u0430\u0432
+command.tooltip.60=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446
+command.label.132=R
+command.label.131=\u041a\u043e\u0440\u043f\u0443\u0441
+command.label.130=\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c
+category.name.0=TXM
+command.name.9=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c
+command.name.8=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 HTML
+command.name.7=\u0418\u043d\u0434\u0435\u043a\u0441
+command.name.6=\u0410\u043d\u0430\u043b\u0438\u0437 \u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0439
+command.name.5=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u044b
+command.name.2=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435
+command.name.1=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u041f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+command.name.0=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 Groovy
+command.tooltip.58=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.129=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.tooltip.57=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+command.label.128=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0418\u043d\u0434\u0435\u043a\u0441
+command.label.127=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 R
+command.tooltip.55=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.126=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.54=\u042d\u043a\u0441\u043f\u043e\u0440\u0442 SVG
+command.tooltip.53=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0435 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0430
+command.label.124=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+command.label.123=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443
+command.tooltip.51=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.122=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.tooltip.50=\u042d\u043a\u0441\u043f\u043e\u0440\u0442 SVG
+command.label.121=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.label.120=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.49=\u0424\u0410\u041a
+command.tooltip.46=\u0424\u0410\u041a
+command.label.118=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+command.tooltip.45=\u0418\u0437 \u043f\u0430\u043f\u043a\u0438 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438
+command.label.117=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.tooltip.44=XML/w
+command.label.116=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.43=XML-TEI BFM
+command.tooltip.42=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044f\u0437\u044b\u043a
+command.label.114=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+command.label.112=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442 \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 R 
+command.label.111=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 R
+command.tooltip.39=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+command.label.108=\u0421\u0441\u044b\u043b\u043a\u0438
+command.label.107=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443
+command.label.106=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443
+command.tooltip.33=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442
+command.label.105=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438
+command.tooltip.32=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+command.label.104=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443
+command.label.103=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044e
+command.tooltip.30=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Alceste
+command.label.102=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441
+command.label.101=\u042d\u043a\u0441\u043f\u043e\u0440\u0442 SVG
+command.tooltip.29=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Hyperbase
+command.tooltip.28=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439 \u0444\u0430\u0439\u043b csv \u0438 \u0444\u0430\u0439\u043b\u044b cnr
+command.tooltip.27=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0435 \u0442\u0435\u043a\u0441\u0442 \u0432 \u0431\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430
+command.tooltip.26=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c TXM
+extension.name=\u041a\u043e\u043c\u0430\u043d\u0434\u044b \u041c\u0430\u0441\u0442\u0435\u0440\u0441\u043a\u043e\u0439
+menu.label.11=R
+menu.label.10=Groovy
+command.tooltip.19=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0421\u043a\u0440\u0438\u043f\u0442
+command.tooltip.18=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 HTML
+command.tooltip.17=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435
+command.tooltip.10=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b TXM
+menu.tooltip.0=\u0412\u0438\u0434
+perspective.name= 
+perspective.name.0= 
+command.tooltip=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 HTML
+extension-point.name=N/A_Command
+command.name=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b
+page.name.18=\u0421\u043a\u0440\u0438\u043f\u0442\u044b
+page.name.17=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+page.name.16=\u0421\u0441\u044b\u043b\u043a\u0438
+page.name.13=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+page.name.12=\u042d\u043a\u0441\u043f\u043e\u0440\u0442
+page.name.11=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+page.name.10=\u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439
+page.name=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c
+menu.label=\u0424\u0430\u0439\u043b
+command.tooltip.7=\u0421\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441
+command.tooltip.4=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u0435\u0439
+command.tooltip.3=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439
+command.tooltip.2=\u0412\u044b\u0439\u0442\u0438 \u0438\u0437 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b TXM
+command.tooltip.0=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
+page.name.9=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+page.name.8=NLP
+page.name.7=TreeTagger
+page.name.6=\ TXM
+page.name.5=\u042f\u0437\u044b\u043a
+page.name.4=\u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430
+page.name.3=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430
+page.name.1=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u044b
+page.name.0=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e
+commandParameter.name.2=\u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430
+commandParameter.name.1=\u0441\u043a\u0440\u0438\u043f\u0442
+commandParameter.name.0=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+editor.name.16=\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440
+editor.name.15=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0430
+editor.name.14=\u041c\u0430\u0441\u0442\u0435\u0440 \u0441\u0441\u044b\u043b\u043e\u043a
+editor.name.13=\u0424\u0410\u0421
+editor.name.12=\u0421\u043b\u043e\u0432\u0430\u0440\u044c
+editor.name.11=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+editor.name.10=\u0413\u0440\u0430\u0444 \u0424\u0410\u0421
+view.name.7=\u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435
+view.name.6=\u041a\u043e\u043d\u0441\u043e\u043b\u044c R
+view.name.5=\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 R
+view.name.4=\u0417\u0430\u043f\u0440\u043e\u0441
+view.name.3=\u0411\u0430\u0437\u0430
+view.name.2=G. \u041a\u043e\u043d\u0441\u043e\u043b\u044c
+view.name.1=\u0424\u0430\u0439\u043b
+view.name.0=\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044f
+menu.tooltip=\u0427\u0438\u0442\u0430\u0442\u044c \u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f TXM
+command.label.99=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044e
+command.label.97=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.96=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+command.label.94=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.92=\u042d\u043a\u0441\u043f\u043e\u0440\u0442
+editor.name.9=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+command.label.8=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435
+command.label.91=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+editor.name.8=\u041f\u0430\u0440\u0430\u0431\u0440\u0430\u0443\u0437\u0435\u0440
+command.label.7=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+editor.name.7=\u0418\u043d\u0434\u0435\u043a\u0441
+command.label.6=\u0412\u044b\u0439\u0442\u0438
+editor.name.6=\u041f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a \u043f\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c
+editor.name.5=\u0418\u0437\u0434\u0430\u043d\u0438\u0435
+command.label.4=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
+editor.name.4=\u0422\u0435\u043a\u0441\u0442
+editor.name.2=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u044b
+editor.name.1=Multitab
+command.label.0=CNR + CSV
+editor.name.0=\u0418\u043d\u0434\u0435\u043a\u0441
+command.label=\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0444\u0430\u0439\u043b HTML
+category.description=\u0422\u0435\u043a\u0441\u0442\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b
+command.label.89=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+command.label.87=\u042d\u043a\u0441\u043f\u043e\u0440\u0442
+command.label.85=\u0424\u0410\u0421
+command.label.84=\u0421\u043b\u043e\u0432\u0430\u0440\u044c
+command.label.80=\u0424\u0410\u0421
+category.name=TXM
+command.label.79=\u0421\u043b\u043e\u0432\u0430\u0440\u044c
+command.label.78=TXT + CSV
+command.label.76=XML-TEI BFM
+command.label.75=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044f\u0437\u044b\u043a
+command.label.74=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441
+command.label.73=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441
+command.label.71=\u0418\u0437\u0434\u0430\u043d\u0438\u0435
+commandParameter.name=\u0424\u0430\u0439\u043b
+command.name.66=\u0412\u044b\u043f\u043e\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b Groovy
+command.name.65=IndexToCooccurrence
+command.name.64=CopySelection
+command.name.63=Open Biblio
+command.name.62=OpenImportForm
+command.name.61=show svg help
+command.name.60=SubmitRcode
+command.label.67=\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c TreeTagger
+command.label.66=\u0418\u043d\u0434\u0435\u043a\u0441
+command.label.65=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+command.label.62=Alceste
+command.label.61=Hyperbase
+command.label.60=\u0411\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430 (FR)
+command.name.59=OpenEmptyTextEditor
+command.name.58=LexiconToIndex
+command.name.57=RefToConc
+command.name.56=\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c
+command.name.55=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.name.54=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.name.53=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.name.52=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+command.name.51=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
+command.label.59=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
+command.label.58=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.label.56=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f
+command.label.55=\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443 txm-users
+command.label.54=\u0417\u0430\u044f\u0432\u043a\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438
+command.label.53=\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445
+command.label.52=Key assist
+command.label.51=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.label.50=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
+command.name.48=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443
+command.name.47=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.name.46=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 R 
+command.description=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c TXM
+command.name.45=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 R
+command.name.44=\u0421\u0441\u044b\u043b\u043a\u0438
+command.name.43=VocToLexicalTable
+command.name.42=VocToProgress
+command.name.41=CoocToConc
+view.name=\u041a\u043e\u0440\u043f\u0443\u0441
+command.name.40=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443
+command.label.49=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+command.label.48=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+command.label.45=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.43=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.label.42=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442
+command.label.41=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0431\u0430\u0437\u0443
+decorator.label=\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 R
+command.label.40=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
+command.name.39=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443
+command.name.38=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c
+command.name.37=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+command.name.36=ComputeLexicalTable
+command.name.35=ComputeCooccurrences
+=N/A_
+command.name.34=ExportSVG
+command.name.33=\u041f\u0430\u0440\u0430\u0431\u0440\u0430\u0443\u0437\u0435\u0440
+command.name.31=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044f\u0437\u044b\u043a
+command.name.30=IndexToConcordances
+command.label.39=\u0414\u043e\u0431\u0430\u0432\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.label.38=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442
+command.label.37=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u0430\u0437\u0443
+command.label.36=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
+command.name.29=\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0437\u0434\u0430\u043d\u0438\u0435
+command.name.28=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430 (FR)
+command.name.27=\u0418\u043d\u0434\u0435\u043a\u0441
+command.name.26=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+command.tooltip.91=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
+command.name.25=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
+command.tooltip.90=Open biblio
+command.name.24=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.name.23=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+command.name.22=\u0412\u044b\u043f\u043e\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+editor.name=\u0413\u0440\u0430\u0444\u0438\u043a\u0438 SVG
+command.name.20=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0443\u044e \u043c\u0430\u0448\u0438\u043d\u0443
+menu.label.9=\u0412\u0438\u0434\u044b
+menu.label.8=\u041f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b
+menu.label.7=\u0412\u0438\u0434
+menu.label.6=\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b
+command.label.26=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.label.25=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438
+command.label.24=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+command.label.23=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+menu.label.2=\u041f\u043e\u043c\u043e\u0449\u044c
+command.label.22=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 HTML
+menu.label.1=\u041a\u043e\u0440\u043f\u0443\u0441
+command.label.21=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435
+menu.label.0=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.tooltip.89=Open biblio
+command.tooltip.88=Open file in browser
+command.tooltip.87=Open edition
+command.tooltip.85=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u043f\u0442
+command.tooltip.84=\u041d\u043e\u0432\u044b\u0439 \u0441\u0435\u0430\u043d\u0441
+command.label.156=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0444\u0430\u0439\u043b Groovy
+command.tooltip.83=\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 SVG 
+command.label.155=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435
+command.name.17=\u041f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+command.tooltip.82=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043e\u0442\u0447\u0435\u0442
+command.label.154=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+command.name.16=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442
+command.tooltip.81=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b
+command.label.153=Execute import script
+command.name.15=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442
+command.tooltip.80=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.label.152=Execute import script
+command.name.14=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0431\u0430\u0437\u0443
+command.label.151=Execute import script
+command.name.13=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0431\u0430\u0437\u0443
+command.label.150=Execute import script
+command.name.12=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
+command.name.11=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442
+command.name.10=\u0412\u044b\u043f\u043e\u043b\u0438\u043d\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u043a\u0430\u043a \u0441\u043a\u0440\u0438\u043f\u0442 Groovy
+command.label.14=\u041e \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 TXM
+command.label.11=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u044b
+command.tooltip.79=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.77=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 \u0432 \u0430\u0440\u0445\u0438\u0432
+command.label.149=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+command.tooltip.76=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443
+command.label.148=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
+command.tooltip.75=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.147=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c
+command.tooltip.74=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.label.146=\u0411\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c
+command.tooltip.73=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+command.tooltip.71=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 \u0432 \u0430\u0440\u0445\u0438\u0432
+command.label.143=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c
+command.tooltip.70=\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 R
+command.label.142=\u041d\u043e\u0432\u044b\u0439 \u0441\u0435\u0430\u043d\u0441
+command.label.141=\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 SVG 
+product.name = TXM
+editor.name.17 = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c
+page.name.2 = \u041f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a \u043f\u043e \u0444\u0430\u0439\u043b\u0430\u043c
+page.name.19 = \u0418\u043c\u043f\u043e\u0440\u0442
+command.label.1 = XML/w + CSV
+command.label.2 = XML-PPS
+command.tooltip.1 = XML-PPS
+command.label.3 = XML-TRS + CSV
+command.tooltip.5 = XML-TRS
+command.label.5 = XML-TEI-BFM
+command.tooltip.8 = XML-TEI-BFM
+command.label.9 = XML-TEI Frantext
+command.tooltip.9 = XML-TEI Frantext
+command.label.12 = XML-TEI TXM
+command.tooltip.11 = XML-TEI TXM
+command.label.13 = \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 TXM 0.5
+command.tooltip.12 = \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441 TXM 0.5 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 TXM 0.6
+menu.label.3 = \u0418\u0437\u0434\u0430\u043d\u0438\u0435
+command.label.15 = \u041f\u043e\u0438\u0441\u043a...
+command.label.16 = \u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c
+command.label.17 = \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c
+command.label.18 = \u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c
+command.label.19 = \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+command.label.20 = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c
+command.label.27 = \u0423\u0434\u0430\u043b\u0438\u0442\u044c
+command.label.28 = \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0451
+command.label.29 = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a...
+command.label.30 = \u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
+command.label.31 = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c
+command.label.32 = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c
+command.label.33 = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u0430\u043a...
+command.label.34 = \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438
+command.tooltip.13 = \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.label.35 = \u0412\u044b\u043f\u043e\u043b\u0438\u043d\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.tooltip.14 = \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+command.label.44 = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b
+command.tooltip.15 = \u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.46 = \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.tooltip.16 = \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.47 = \u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.tooltip.20 = \u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.57 = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b
+command.tooltip.21 = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b
+command.label.63 = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c
+command.description.0 = \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b
+command.name.3 = \u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b
+command.description.1 = Reset corpora
+command.name.18 = \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+command.name.19 = OPENTESTEDITOR
+command.name.21 = \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0421\u043a\u0440\u0438\u043f\u0442
+command.name.50 = \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c\u0422\u0435\u043a\u0441\u0442
+command.name.67 = \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\u041a\u0430\u043a
+command.name.68 = \u0423\u0434\u0430\u043b\u0438\u0442\u044c\u0424\u0430\u0439\u043b
+command.name.69 = \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0424\u0430\u0439\u043b
+command.name.70 = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u0424\u0430\u0439\u043b
+command.name.71 = \u0412\u044b\u0440\u0435\u0437\u0430\u0442\u044c\u0424\u0430\u0439\u043b
+command.name.72 = \u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
+command.name.73 = \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c
+=N/A_
+command.label.64 =N/A_ Factiva TXT
+command.tooltip.22 =N/A_ Factiva TXT
+command.label.68 =N/A_ Online manual
+command.tooltip.23 =N/A_TXM online manual
+command.label.69 =N/A_ Textometrie project web site
+command.label.70 =N/A_ TXM manuals directory
+command.label.72 =N/A_ Textometrie project documentation
+command.label.77 =N/A_ Send to index
+command.name.74 =N/A_ Open localized HTML page
+commandParameter.name.3 =N/A_ web page key
+command.name.75 =N/A_ Send to concordance
+command.name.76 =N/A_ Send to index
+command.name.77 =N/A_ Send to progression
+=N/A_
+command.label.81 =N/A_ XML-TMX
+command.tooltip.24 =N/A_ XML-TMX
+command.label.82 =N/A_ CWB
+command.tooltip.25 =N/A_ CWB
+command.label.83 =N/A_ New
+command.label.86 =N/A_ Save
+command.label.88 =N/A_ Save All
+command.label.90 =N/A_ Close
+command.label.93 =N/A_ Close all
+command.label.98 =N/A_ Find next
+command.label.100 =N/A_ Find Previous
+command.label.109 =N/A_ Incremental Find
+command.label.110 =N/A_ Incremental Find (reverse)
+command.label.113 =N/A_ Goto line
+command.label.133 =N/A_ Open URL
+command.label.140 =N/A_ Show Line Numbers
+command.label.144 =N/A_ Toggle Show Whitespace Characters
+command.tooltip.31 =N/A_ Toggle Show Whitespace Characters
+command.label.145 =N/A_ Revert to saved
+command.label.157 =N/A_ New window
+command.label.158 =N/A_ New
+command.tooltip.34 =N/A_ Creates a new File
+command.label.159 =N/A_ Search and Replace
+command.label.160 =N/A_ Find previous
+command.label.161 =N/A_ Find next
+command.label.162 =N/A_ Find incremental
+command.label.163 =N/A_ Find incremental (reverse)
+command.label.164 =N/A_ Revert to save
+command.label.165 =N/A_ Select All
+command.label.166 =N/A_ Goto
+command.label.167 =N/A_ Hyperlink
+command.label.168 =N/A_ Show line numbers
+command.label.169 =N/A_ Show Control characters
+command.tooltip.35 =N/A_ Toggle Show Whitespace Characters
+command.label.170 =N/A_ Execute current script
+command.label.171 =N/A_ Execute selected text
+command.tooltip.36 =N/A_ Execute selected text
+command.label.172 =N/A_ Execute a Groovy script
+command.tooltip.37 =N/A_ Execute a Groovy script from a file
+=N/A_
+editor.name.18 =N/A_ Classification
+command.label.173 =N/A_ Welcome
+command.label.174 =N/A_ Download the manual
+command.label.175 =N/A_ Test all commands
+command.tooltip.38 =N/A_ Starts a long process to test all the available commands
+command.name.78 =N/A_ Tests commands
+command.label.34 = Add a third-party extension
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_fr.properties
===================================================================
--- tmp/org.txm.rcp/OSGI-INF/l10n/bundle_fr.properties	(revision 0)
+++ tmp/org.txm.rcp/OSGI-INF/l10n/bundle_fr.properties	(revision 122)
@@ -0,0 +1,505 @@
+﻿#
+#Thu Jul 25 14:48:07 CEST 2013
+command.tooltip.69=Calculer la classification
+command.tooltip.67=Exporter dans un fichier
+command.label.139=Autres...
+command.label.138=Variables R
+command.label.137=Console R
+command.label.136=Requête
+command.tooltip.63=Calculer les références d'une requête
+command.label.135=Fichier
+command.tooltip.62=Calculer le lexique d'une requête
+command.label.134=Corpus
+command.tooltip.61=Calculer le lexique complet
+command.label.133=Hyperlien
+command.tooltip.60=Calculer la synthèse des propriétés du corpus
+command.label.132=R
+command.label.131=Corpus
+command.label.130=Coller
+category.name.0=TXM
+command.name.9=Propriétés
+command.name.8=Afficher dans un lecteur HTML
+command.name.7=Index
+command.name.6=Analyse des Correspondances
+command.name.5=Concordances
+command.name.3=Convertir ancien fichier binaire
+command.name.2=Créer une Partition
+command.name.1=Créer un Sous-Corpus
+command.name.0=Exécuter un Script Groovy
+command.tooltip.59=Lire les propriétés des mots du corpus
+command.tooltip.58=Calculer une table lexicale
+command.label.129=Copier
+command.tooltip.57=Calculer les cooccurrents d'une requête
+command.label.128=Envoyer vers l'Index
+product.name=TXM
+command.label.127=Envoyer vers R
+command.tooltip.55=Calculer une table lexicale
+command.label.126=Classification
+command.tooltip.54=Exporter au format SVG...
+command.tooltip.53=Calculer les cooccurrents d'une requête
+command.label.124=Exporter
+command.tooltip.52=Lire les propriétés des mots du corpus
+command.label.123=Nouveau dossier
+command.tooltip.51=Calculer une table lexicale
+command.label.122=Nouveau fichier
+command.label.121=Envoyer vers R
+command.label.120=Classification
+command.tooltip.49=Calculer l'Analyse Factorielle des Correspondances
+command.tooltip.48=Tester les modules d'import
+command.tooltip.47=Contribuer à TXM
+command.tooltip.46=Calculer l'Analyse Factorielle des Correspondances
+command.label.118=Exporter
+command.tooltip.45=Exécuter un script d'import sur un dossier de fichiers source
+command.label.117=Envoyer vers R
+command.tooltip.44=XML/w + CSV
+command.label.116=Classification
+command.tooltip.42=Changer la langue de l'interface
+command.label.114=Exporter
+command.tooltip.41=Réponses aux questions les plus fr�quentes
+command.label.113=Aller à la ligne...
+command.tooltip.40=Lire les propriétés des mots du corpus
+command.label.112=Ex�cuter la sélection de texte
+command.label.110=Recherche incrémentielle (invers�e)
+command.tooltip.39=Lire l'édition
+command.tooltip.38=Lancer un long processus de test de toute les commandes disponibles
+command.tooltip.37=Exécuter un script Groovy
+command.label.109=Recherche incrémentielle
+command.tooltip.36=Exécuter le texte sélectionné
+command.label.108=Références
+command.tooltip.35=Afficher les caract�res non imprimables
+command.label.107=Importer une table
+command.tooltip.34=Cr�� un nouveau fichier
+command.label.106=Exporter la table pour r�-import
+command.tooltip.33=Supprimer l'objet s�lectionn�
+command.label.105=Fusionner les lignes
+command.tooltip.32=Lire l'�dition
+command.label.104=Supprimer la ligne
+command.tooltip.31=Afficher les caract�res non imprimables
+command.label.103=Envoyer vers progression
+command.tooltip.30=Importer un corpus au format Alceste
+command.label.102=Envoyer vers concordances
+command.label.101=Graphique...
+command.label.100=Trouver pr�c�dent
+command.tooltip.29=Importer un corpus au format Hyperbase
+command.tooltip.28=Importer un corpus au format CNR
+command.tooltip.27=Importer un corpus depuis le presse-papier
+command.tooltip.26=Red�marrer les moteurs de TXM
+command.tooltip.25=Importer un corpus au format CWB
+command.tooltip.24=Importer un corpus au format XML-TMX
+command.tooltip.23=Lire la version HTML du manuel de TXM
+command.tooltip.22=Importer un corpus au format Factiva TXT
+command.tooltip.21=Coller le fichier
+command.tooltip.20=Couper le fichier
+extension.name=Commandes de l'Atelier
+menu.label.11=R
+menu.label.10=Groovy
+command.tooltip.19=Ex�cuter le Script
+command.tooltip.18=Ouvrir un fichier dans un navigateur
+command.tooltip.17=Ouvrir un fichier dans un �diteur de texte
+command.tooltip.16=Copier le fichier
+command.tooltip.15=Supprimer fichier
+command.tooltip.14=Ex�cuter le script
+command.tooltip.12=Convertir un corpus binaire TXM 0.5 en binaire TXM 0.6
+command.tooltip.11=XML-TEI TXM
+command.tooltip.10=Afficher les propri�t�s de cette instance de la plateforme TXM
+menu.tooltip.0=Affichage
+perspective.name= 
+perspective.name.1= 
+perspective.name.0= 
+command.description.2=Test Nils
+command.description.1=Reset corpora
+command.description.0=Convertir ancien fichier binaire
+command.tooltip=Ouvrir dans un navigateur HTML
+extension-point.name=Commande d''installation
+command.name=Ouvrir un fichier
+page.name.19=Import
+page.name.18=Scripts
+page.name.17=Classification
+page.name.16=R�f�rences
+page.name.13=Table lexicale
+page.name.12=Export
+page.name.11=Cooccurrences
+page.name.10=Analyse des correspondances
+page.name=Utilisateur
+menu.label=Fichier
+command.tooltip.9=XML-TEI Frantext
+command.tooltip.8=XML-TEI BFM
+command.tooltip.7=Calculer une concordance
+command.tooltip.5=Import au format XML-TRS de Trasncriber
+command.tooltip.4=Diviser l'objet s�lectionn� en plusieurs parties
+command.tooltip.3=S�lectionner un sous-ensemble d'occurrences
+command.tooltip.2=Quitter la plateforme TXM
+command.tooltip.1=Import au format XML-PPS de Factiva
+command.tooltip.0=Afficher les pr�f�rences
+page.name.9=Description
+page.name.8=TAL
+page.name.7=TreeTagger
+editor.name.22=Navigateur
+page.name.6=\ TXM
+page.name.5=Nuage de mot
+editor.name.21=Nuage de mot
+editor.name.20=Index de requ�te
+page.name.4=Moteur de Corpus
+page.name.3=Moteur de Statistique
+page.name.2=Explorateur de fichiers
+page.name.1=Concordances
+page.name.0=Avanc�
+commandParameter.name.3=cl� web page
+commandParameter.name.2=import script
+commandParameter.name.1=script
+commandParameter.name.0=Corpus Parameter
+editor.name.19=Vue interne
+editor.name.18=Classification
+editor.name.17=Naviguer
+editor.name.16=Test editor
+editor.name.15=Param�tres d'import
+editor.name.14=R�f�renceur
+editor.name.13=AFC
+editor.name.12=Lexique
+editor.name.11=Table lexicale
+editor.name.10=Graph AFC
+view.name.8=Macro
+view.name.7=Contenu
+view.name.6=R Console
+view.name.5=Variables R
+view.name.4=Requ�te
+view.name.3=Base
+view.name.2=G.Console
+view.name.1=Fichier
+view.name.0=Progression
+command.tooltip.233=T�l�charger la version PDF du manuel de TXM pour impression
+menu.tooltip=Lire le Guide Utilisateur de TXM
+command.label.99=Envoyer vers progression
+command.label.98=Trouver suivant
+command.label.97=Table lexicale
+command.label.96=Cooccurrences
+command.label.94=Table lexicale
+command.label.93=Tout fermer
+command.label.9=XML-TEI Frantext
+editor.name.9=Cooccurrences
+command.label.8=Partition
+command.label.91=Cooccurrences
+editor.name.8=ParaBrowser
+command.label.7=Sous-Corpus
+command.label.90=Fermer
+editor.name.7=Index
+command.label.6=Quitter
+editor.name.6=Exploreur d'object
+command.label.5=XML-TEI BFM
+editor.name.5=�dition
+command.label.4=Pr�f�rences
+editor.name.4=Texte
+command.label.3=XML Transcriber +CSV
+command.label.2=XML Factiva
+editor.name.2=Concordances
+command.label.1=XML/w + CSV
+editor.name.1=Multitab
+command.label.0=CNR + CSV
+command.name.86=Index de requ�te vers Table lexicale
+editor.name.0=Index
+command.name.85=Test Nils
+command.label=Ouvrir dans un navigateur...
+command.name.84=Test imports
+command.name.83=CoocMatrix
+command.name.82=Index de requ�te
+command.name.81=Distance intertextuelle
+command.name.80=Cr�erMacro
+category.description=Commandes de Textometrie
+command.label.89=Table lexicale
+command.label.88=Tout sauvegarder
+command.label.86=Sauvegarder
+command.label.85=AFC
+command.label.84=Lexique
+command.label.83=Nouveau fichier
+command.label.82=CWB
+command.label.81=XML-TMX
+command.label.80=AFC
+command.name.79=Ex�cuter la Macro
+category.name=TXM
+command.name.78=Tester toutes les commandes
+command.name.77=Envoyer vers la progression
+command.name.76=Envoyer vers l'Index
+command.name.75=Envoyer vers la concordance
+command.name.74=Ouvrir page web par langue
+command.name.73=Naviguer
+command.name.72=Encodage Caracteres
+command.name.71=Couper
+command.name.70=Coller
+command.label.79=Lexique
+command.label.78=TXT + CSV
+command.label.77=Envoyer vers l'Index
+command.label.75=Changer la langue
+command.label.74=Envoyer vers les concordances
+command.label.73=Envoyer vers les concordances
+command.label.72=Documentation du projet Textom�trie
+command.label.71=�dition
+command.label.70=Dossier des manuels de TXM
+command.name.69=Copier
+commandParameter.name=Fichier
+command.name.68=Supprimer
+command.name.67=Sauver Sous
+command.name.66=Ex�cuter un fichier Groovy
+command.name.65=IndexToCooccurrence
+command.name.64=CopySelection
+command.name.63=Ouvrir Biblio
+command.name.62=OuvrirFormulaireImport
+command.name.61=afficher l'aide svg
+command.name.60=SoumettreRcode
+command.label.69=Site web du projet Textom�trie
+command.label.68=Lire le manuel en ligne
+command.label.67=Installer TreeTagger
+command.label.66=Index
+command.label.65=Supprimer
+command.label.64=Factiva TXT
+command.label.62=Alceste
+command.label.61=Hyperbase
+command.label.60=Presse-papier
+command.name.59=OpenEmptyTextEditor
+command.name.58=LexiconToIndex
+command.name.57=RefToConc
+command.name.56=Coller
+command.name.55=Copier
+command.name.54=Classification
+command.name.53=Envoyer vers R
+command.name.52=Corpus au format binaire...
+command.name.51=R�glages
+command.name.50=Ex�cuter Text
+command.label.59=Red�marrer les moteurs
+command.label.58=Exporter les donn�es
+command.label.57=Coller
+command.label.56=Site web du logiciel TXM
+command.label.55=S'inscrire � la liste de diffusion txm-users
+command.label.54=Proposer une am�lioration
+command.label.53=Signaler un bug
+command.label.52=Raccourcis clavier
+command.label.51=Donn�es...
+command.label.50=Charger
+command.label.187=Cr�er une macro � partir d'un template
+command.label.186=�diter
+command.label.185=Vue interne
+command.name.48=Nouveau dossier
+command.name.47=Nouveau fichier
+command.label.183=Vue interne
+command.name.46=Ex�cuter la s�lection de texte 
+command.description=Red�marrer TXM
+command.label.182=Ajouter une extension
+command.name.45=Ex�cuter un script R
+command.label.181=V�rifier les mises � jour
+command.name.44=R�f�rences
+command.label.180=Tester les modules d'imports
+command.name.43=VocToLexicalTable
+command.name.42=VocToProgress
+command.name.41=CoocToConc
+view.name=Corpus
+command.name.40=Importer une table
+command.label.49=Description
+command.label.48=Description
+command.label.47=Couper
+command.label.46=Copier
+command.label.45=�diter...
+command.label.44=Supprimer
+decorator.label=R Decorator
+command.label.179=Contribuer
+command.label.178=FAQ
+command.label.177=Macro
+command.label.176=Vue interne
+command.name.39=Exporter la table
+command.label.175=Tester toutes les commandes
+command.name.38=Fusionner
+command.label.174=T�l�charger le manuel - PDF
+command.name.37=Supprimer
+command.label.173=Bienvenue
+command.name.36=ComputeLexicalTable
+command.label.172=Ex�cuter un script Groovy
+command.name.35=ComputeCooccurrences
+command.label.171=Ex�cuter le texte s�lectionn�
+command.name.34=ExportSVG
+command.label.170=Ex�cuter le script courant
+command.name.33=Parabrowser
+command.name.31=Changer la langue
+command.name.30=IndexToConcordances
+command.label.37=Ajouter une Base
+command.label.36=Ajouter un Projet
+command.label.31=Nils
+command.label.30=Encodage des caract�res
+command.label.169=Show Control characters
+command.label.168=Afficher les num�ros de ligne
+command.label.167=Hyperlien
+command.label.166=Aller � la ligne...
+command.name.29=Ouvre l'�dition
+command.label.165=Tout s�lectionner
+command.name.28=Importe un corpus depuis le presse-papier (FR)
+command.tooltip.92=Cr�er une macro
+command.label.164=Retour � l'�tat initial du fichier
+command.name.27=Index
+command.label.163=Recherche incr�mentielle (invers�e)
+command.tooltip.91=Ouvrir biblio
+command.name.26=Supprimer
+command.label.162=Recherche incr�mentielle
+command.name.25=Red�marrer
+command.label.161=Trouver le suivante
+command.name.24=Exporter les donn�es
+command.label.160=Trouver le pr�c�dent
+command.name.23=Description
+command.name.22=Ex�cuter un Script d'import
+command.name.21=Ex�cuter Script
+editor.name=Graphiques SVG
+command.name.20=Choisir moteur de recherche
+menu.label.9=Vues
+command.label.29=Sauver sous...
+menu.label.8=Perspectives
+command.label.28=S�lectionner tout
+menu.label.7=Affichage
+command.label.27=Supprimer
+menu.label.6=Outils
+command.label.26=Ex�cuter le Script
+menu.label.4=Extensions
+command.label.25=Ex�cuter la s�lection de texte
+menu.label.3=�dition
+command.label.24=Propri�t�s
+menu.label.2=Aide
+command.label.23=Ex�cuter le Script
+menu.label.1=Corpus
+command.label.22=Ouvrir dans un navigateur
+menu.label.0=Importer
+command.label.21=Ouvrir dans un �diteur de texte
+command.label.20=Coller
+command.label.159=Chercher et remplacer
+command.tooltip.87=Ouvrir l'�dition
+command.tooltip.86=Editer la macro
+command.label.158=Nouveau fichier
+command.label.157=Nouvelle fen�tre
+command.tooltip.85=Ex�cuter la s�lection ou le script
+command.name.19=Ouvrir l'�diteur de test
+command.tooltip.84=Nouvelle session
+command.label.156=Ex�cuter un fichier Groovy
+command.name.18=Supprimer tous les corpus
+command.tooltip.83=Raccourcis clavier graphiques
+command.tooltip.82=Ajouter une requ�te au journal
+command.name.17=Construire un Corpus
+command.tooltip.81=Copier les requ�tes s�lectionn�es
+command.name.16=Supprimer un Texte
+command.tooltip.80=Envoyer vers R
+command.name.15=Ajouter un Texte
+command.name.14=Supprimer une Base
+command.name.13=Ajouter une Base
+command.name.12=Supprimer un Projet
+command.name.11=Ajouter un Projet
+command.name.10=Ex�cuter la s�lection de texte en tant que script Groovy
+command.label.19=Copier
+command.label.18=Couper
+command.label.17=R�tablir
+command.label.16=Annuler
+command.label.15=Chercher et Remplacer...
+command.label.14=� Propos de TXM
+command.label.13=Charger corpus TXM 0.5
+command.label.12=XML-TEI TXM
+command.label.11=Concordances
+command.tooltip.79=Classification
+command.label.149=Envoyer vers les cooccurrences
+command.tooltip.77=Exporter le corpus dans une archive binaire
+command.label.148=Ouvrir biblio
+command.tooltip.76=Nouveau dossier
+command.tooltip.75=Nouveau fichier
+command.tooltip.74=Envoyer vers R
+command.label.145=Retour � l'�tat initial du fichier
+command.tooltip.73=Classification
+command.label.144=Activer l'affichage des caract�res invisibles
+command.label.143=Ex�cuter
+command.tooltip.71=Exporter
+command.label.142=Nouvelle session
+command.tooltip.70=Envoyer vers R
+command.label.141=Raccourcis clavier graphiques
+command.label.140=Afficher les num�ros de ligne
+command.label.34=Ajouter une extension tierce
+editor.name.24=Graphique JFreeChart
+editor.name.25=Graphique SVG Batik 
+page.name.20=Moteur de Graphiques
+page.name.21=JFreeChart
+product.name.0 = TXM
+editor.name.23 = TestEMEditor
+command.label.32 = CooccurrencesList
+command.label.33 = Documentation des macros
+command.tooltip.13 = Documentation des macros
+command.label.35 = Wiki txm-users 
+command.tooltip.43 = Wiki txm-users
+command.label.38 = V�rifier les packages R
+command.label.39 = CooccurrencesList
+command.label.40 = R�-ex�cuter
+command.tooltip.50 = R�-ex�cuter le dernier script Groovy
+command.label.41 = CooccurrencesList
+command.description.3 = Mise � jour de TXM
+command.name.87 = Mise � jour de TXM
+command.description.4 = Mise � jour de TXM
+command.name.88 = Mise � jour de TXM
+command.name.89 = R�-ex�cuter le dernier script Groovy
+command.name.90 = V�rifier les packages R
+command.name.91 = DownloadFile
+scheme.description = TXM binding scheme
+scheme.name = TXM binding scheme
+command.label.42 = Graphique...
+command.name.92 = Exporter le graphique
+menu.label.5 = Exporter
+product.name.1 = TXM
+page.name.22 = Partition
+command.label.43 = Console
+command.label.63 = Lire le manuel
+command.tooltip.64 = Ouvre le manuel PDF avec le lecteur PDF par d�faut
+command.label.76 = Chat #txm
+command.tooltip.65 = cannal IRC TXM
+command.name.93 = Reconnecter le RWorkspace
+command.name.94 = R�initialiser l'affichage
+command.name.95 = Lire le manuel
+command.name.96 = TextToConcordance
+category.name.1 = TXM
+wizard.name = Corpus
+wizard.description = Create a corpus from sources files. Then compile indexes to be able to analyse the corpus.
+wizard.name.0 = Corpus
+wizard.description.0 = Export a corpus into a .txm file
+category.name.2 = TXM
+wizard.name.1 = Corpus
+wizard.description.1 = Import a corpus from a .txm file
+category.name.3 = TXM
+Bundle-Name = org.txm.rcp
+view.name.9 = R�f�rentiels
+page.name.23 = Annotation
+command.label.87 = ODT/DOC/RTF + CSV
+command.tooltip.66 = Libre Office, Word and RTF import module
+command.label.92 = XML-XTZ + CSV
+command.tooltip.88 = XML-XTZ + CSV
+command.label.111 = Enregistrer les annotations
+command.label.146 = Mettre � jour le corpus
+command.label.147 = Recoder le corpus
+command.label.150 = R�f�rentiels
+menu.label.12 = Recettes
+menu.tooltip.1 = Recettes de plugins
+command.label.151 = Enregistrer les annotations
+command.label.152 = Mettre � jour le corpus
+command.label.153 = Recoder le corpus
+command.label.154 = Enregistrer les annotations
+command.label.155 = Mettre � jour le corpus
+command.label.184 = Recoder le corpus
+command.label.188 = Copier dans le presse-papier
+command.tooltip.89 = Copier dans le presse-papier
+command.label.189 = Synchronization des valeurs
+command.tooltip.90 = Remise � z�ro et recharger des valeurs
+command.label.190 = Informations
+command.tooltip.93 = Affiche des informations suppl�mentaires de l'�l�ment s�lectionn�
+command.label.191 = Ajouter
+command.tooltip.94 = Ajouter un nouvel �l�ment
+command.label.192 = Supprimer
+command.tooltip.95 = Supprimer l'�l�ment s�lectionn�
+command.name.97 = Enregistrer les annotations
+command.name.98 = Mettre � jour le corpus
+command.name.99 = Vue r�f�rentiels
+command.name.100 = Recoder le corpus
+command.name.101 = Copier
+command.name.102 = Recharger
+command.name.103 = Informations
+command.name.104 = Supprimer
+command.name.105 = Ajouter
+context.description = Le contexte r�f�rentiel
+context.name = Vue r�f�rentiels
+command.label.193 = Annotations au format XML-TEI...
+command.name.106 = Editer le fichier s�lection�
+command.name.107 = Exporter les annotations en stand-off

Property changes on: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_fr.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru_utf-8.properties
===================================================================
--- tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru_utf-8.properties	(revision 0)
+++ tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru_utf-8.properties	(revision 122)
@@ -0,0 +1,352 @@
+#=
+#Mon Mar 05 10:02:31 CET 2012=N/A_
+command.tooltip.69=Классификация
+command.tooltip.67=Экспортировать корпус в архив
+command.label.139=Ещё...
+command.tooltip.66=Выполнить как скрипт R
+command.label.138=Переменные R
+command.tooltip.65=Импортировать файлы в форматк TRS, привязанные к файлу metadata.csv
+command.label.137=Консоль R
+command.tooltip.64=Импортировать файлы в формате XML-TXM из папки
+command.label.136=Запрос
+command.tooltip.63=Показать ссылки ответов на запрос
+command.label.135=Файл
+command.tooltip.62=Вычислить словарный состав ответов на запрос
+command.label.134=Корпус
+command.tooltip.61=Вычислить полный словарный состав
+command.tooltip.60=Показать свойства структур и словарных единиц
+command.label.132=R
+command.label.131=Корпус
+command.label.130=Вставить
+category.name.0=TXM
+command.name.9=Показать
+command.name.8=Показать в браузере HTML
+command.name.7=Индекс
+command.name.6=Анализ Корреляций
+command.name.5=Конкордансы
+command.name.2=Создать Распределение
+command.name.1=Создать Подкорпус
+command.name.0=Выполнить скрипт Groovy
+command.tooltip.58=Словарная таблица
+command.label.129=Копировать
+command.tooltip.57=Совместная встречаемость
+command.label.128=Отправить на Индекс
+command.label.127=Отправить на R
+command.tooltip.55=Словарная таблица
+command.label.126=Классификация
+command.tooltip.54=Экспорт SVG
+command.tooltip.53=Показывает совместные употребления для запроса
+command.label.124=Экспортировать корпус
+command.label.123=Создать папку
+command.tooltip.51=Словарная таблица
+command.label.122=Создать файл
+command.tooltip.50=Экспорт SVG
+command.label.121=Отправить в R
+command.label.120=Классификация
+command.tooltip.49=ФАК
+command.tooltip.46=ФАК
+command.label.118=Экспортировать корпус
+command.tooltip.45=Из папки с текстовыми файлами
+command.label.117=Отправить в R
+command.tooltip.44=XML/w
+command.label.116=Классификация
+command.tooltip.43=XML-TEI BFM
+command.tooltip.42=Изменить язык
+command.label.114=Экспортировать корпус
+command.label.112=Выполнить выделенный фрагмент как скрипт R 
+command.label.111=Выполнить скрипт R
+command.tooltip.39=Показать издание корпуса
+command.label.108=Ссылки
+command.label.107=Импортировать таблицу
+command.label.106=Экспортировать таблицу
+command.tooltip.33=Удалить выделенный элемент
+command.label.105=Объединить строки
+command.tooltip.32=Показать издание корпуса
+command.label.104=Удалить строку
+command.label.103=Отправить на прогрессию
+command.tooltip.30=Импортирует корпус из папки, содержащей исходный материал в формате Alceste
+command.label.102=Отправить в конкорданс
+command.label.101=Экспорт SVG
+command.tooltip.29=Импортирует корпус из папки, содержащей исходный материал в формате Hyperbase
+command.tooltip.28=Импортирует корпус из папки, содержащей файл csv и файлы cnr
+command.tooltip.27=Используйте эту функцию после того, как скопируете текст в буфер обмена
+command.tooltip.26=Перезагрузить TXM
+extension.name=Команды Мастерской
+menu.label.11=R
+menu.label.10=Groovy
+command.tooltip.19=Выполнить Скрипт
+command.tooltip.18=Открыть файл в браузере HTML
+command.tooltip.17=Открыть файл в текстовом редакторе
+command.tooltip.10=Показать свойства этого экземпляра платформы TXM
+menu.tooltip.0=Вид
+perspective.name=Корпус
+perspective.name.0=R
+command.tooltip=Открыть в браузере HTML
+extension-point.name=N/A_Command
+command.name=Открыть файл
+page.name.18=Скрипты
+page.name.17=Классификация
+page.name.16=Ссылки
+page.name.13=Словарная таблица
+page.name.12=Экспорт
+page.name.11=Совместная встречаемость
+page.name.10=анализ соответствий
+page.name=Пользователь
+menu.label=Файл
+command.tooltip.7=Составить конкорданс
+command.tooltip.4=Разделить выделенный объект на несколько частей
+command.tooltip.3=Выбрать часть употреблений
+command.tooltip.2=Выйти из платформы TXM
+command.tooltip.0=Показать настройки
+page.name.9=Описание
+page.name.8=NLP
+page.name.7=TreeTagger
+page.name.6=\ TXM
+page.name.5=Язык
+page.name.4=Поисковая машина
+page.name.3=Статистическая машина
+page.name.1=Конкордансы
+page.name.0=Дополнительно
+commandParameter.name.2=скрипт для импорта
+commandParameter.name.1=скрипт
+commandParameter.name.0=Параметр корпуса
+editor.name.16=Тестовый редактор
+editor.name.15=Параметры импорта
+editor.name.14=Мастер ссылок
+editor.name.13=ФАС
+editor.name.12=Словарь
+editor.name.11=Словарная таблица
+editor.name.10=Граф ФАС
+view.name.7=Содержимое
+view.name.6=Консоль R
+view.name.5=Переменные R
+view.name.4=Запрос
+view.name.3=База
+view.name.2=G. Консоль
+view.name.1=Файл
+view.name.0=Прогрессия
+menu.tooltip=Читать Руководство пользователя TXM
+command.label.99=Отправить в прогрессию
+command.label.97=Словарная таблица
+command.label.96=Совместная встречаемость
+command.label.94=Словарная таблица
+command.label.92=Экспорт
+editor.name.9=Совместная встречаемость
+command.label.8=Создать Распределение
+command.label.91=Совместная встречаемость
+editor.name.8=Парабраузер
+command.label.7=Создать подкорпус
+editor.name.7=Индекс
+command.label.6=Выйти
+editor.name.6=Проводник по объектам
+editor.name.5=Издание
+command.label.4=Настройки
+editor.name.4=Текст
+editor.name.2=Конкордансы
+editor.name.1=Multitab
+command.label.0=CNR + CSV
+editor.name.0=Индекс
+command.label=Прочитать файл HTML
+category.description=Текстометрические команды
+command.label.89=Словарная таблица
+command.label.87=Экспорт
+command.label.85=ФАС
+command.label.84=Словарь
+command.label.80=ФАС
+category.name=TXM
+command.label.79=Словарь
+command.label.78=TXT + CSV
+command.label.76=XML-TEI BFM
+command.label.75=Изменить язык
+command.label.74=Отправить в конкорданс
+command.label.73=Отправить в конкорданс
+command.label.71=Издание
+commandParameter.name=Файл
+command.name.66=Выполить файл Groovy
+command.name.65=IndexToCooccurrence
+command.name.64=CopySelection
+command.name.63=Open Biblio
+command.name.62=OpenImportForm
+command.name.61=show svg help
+command.name.60=SubmitRcode
+command.label.67=Установить TreeTagger
+command.label.66=Индекс
+command.label.65=Удалить
+command.label.62=Alceste
+command.label.61=Hyperbase
+command.label.60=Буфер обмена (FR)
+command.name.59=OpenEmptyTextEditor
+command.name.58=LexiconToIndex
+command.name.57=RefToConc
+command.name.56=Вставить
+command.name.55=Копировать
+command.name.54=Классификация
+command.name.53=Отправить в R
+command.name.52=Экспортировать корпус
+command.name.51=Настройки
+command.label.59=Перезагрузить
+command.label.58=Экспортировать
+command.label.56=Обновления
+command.label.55=Подписаться на рассылку txm-users
+command.label.54=Заявки на новые функции
+command.label.53=Сообщения об ошибках
+command.label.52=Key assist
+command.label.51=Экспортировать
+command.label.50=Загрузить
+command.name.48=Создать папку
+command.name.47=Создать файл
+command.name.46=Выполнить выделенные строки как скрипт R 
+command.description=Перезагрузить TXM
+command.name.45=Выполнить скрипт R
+command.name.44=Ссылки
+command.name.43=VocToLexicalTable
+command.name.42=VocToProgress
+command.name.41=CoocToConc
+view.name=Корпус
+command.name.40=Импортировать таблицу
+command.label.49=Описание
+command.label.48=Описание
+command.label.45=Открыть файл
+command.label.43=Удалить скрипт
+command.label.42=Удалить текст
+command.label.41=Удалить базу
+decorator.label=Декоратор R
+command.label.40=Удалить проект
+command.name.39=Экспортировать таблицу
+command.name.38=Объединить
+command.name.37=Удалить
+command.name.36=ComputeLexicalTable
+command.name.35=ComputeCooccurrences
+product.name.12=TXM
+command.name.34=ExportSVG
+command.name.33=Парабраузер
+command.name.31=Изменить язык
+command.name.30=IndexToConcordances
+command.label.39=Добавть скрипт
+command.label.38=Добавить текст
+command.label.37=Добавить базу
+command.label.36=Добавить проект
+command.name.29=Открывает издание
+command.name.28=Импортирует корпус из буфера обмена (FR)
+command.name.27=Индекс
+command.name.26=Удалить
+command.tooltip.91=Открыть библиографическую запись
+command.name.25=Перезагрузить
+command.tooltip.90=Open biblio
+command.name.24=Экспортировать
+command.name.23=Описание
+command.name.22=Выпонить скрипт импортирования
+editor.name=Графики SVG
+command.name.20=Выбрать поисковую машину
+menu.label.9=Виды
+menu.label.8=Перспективы
+menu.label.7=Вид
+menu.label.6=Инструменты
+command.label.26=Выполнить скрипт
+command.label.25=Выполнить выделенные строки
+command.label.24=Свойства
+command.label.23=Выполнить скрипт
+menu.label.2=Помощь
+command.label.22=Открыть в браузере HTML
+menu.label.1=Корпус
+command.label.21=Открыть в текстовом редакторе
+menu.label.0=Импортировать
+command.tooltip.89=Open biblio
+command.tooltip.88=Open file in browser
+command.tooltip.87=Open edition
+command.tooltip.85=Выполнить выделенные строки или скрипт
+command.tooltip.84=Новый сеанс
+command.label.156=Выполнить файл Groovy
+command.tooltip.83=управление SVG 
+command.label.155=Открыть файл в браузере
+command.name.17=Построить корпус
+command.tooltip.82=Добавить запрос в отчет
+command.label.154=Выполнить скрипт импортирования
+command.name.16=Удалить текст
+command.tooltip.81=Копировать выделенные запросы
+command.label.153=Execute import script
+command.name.15=Добавить текст
+command.tooltip.80=Отправить в R
+command.label.152=Execute import script
+command.name.14=Удалить базу
+command.label.151=Execute import script
+command.name.13=Добавить базу
+command.label.150=Execute import script
+command.name.12=Удалить проект
+command.name.11=Добавить проект
+command.name.10=Выполинть выделенные строки как скрипт Groovy
+command.label.14=О Платформе TXM
+command.label.11=Конкордансы
+command.tooltip.79=Классификация
+command.tooltip.77=Экспортировать корпус в архив
+command.label.149=Отправить в Совместную встречаемость
+command.tooltip.76=Создать папку
+command.label.148=Открыть библиографическую запись
+command.tooltip.75=Создать файл
+command.label.147=Открыть библиографическую запись
+command.tooltip.74=Отправить в R
+command.label.146=Библиографическая запись
+command.tooltip.73=Классификация
+command.tooltip.71=Экспортировать корпус в архив
+command.label.143=Выполнить
+command.tooltip.70=Отправить в R
+command.label.142=Новый сеанс
+command.label.141=управление SVG 
+product.name = TXM
+editor.name.17 = Просмотреть
+page.name.2 = Проводник по файлам
+page.name.19 = Импорт
+command.label.1 = XML/w + CSV
+command.label.2 = XML-PPS
+command.tooltip.1 = XML-PPS
+command.label.3 = XML-TRS + CSV
+command.tooltip.5 = XML-TRS
+command.label.5 = XML-TEI-BFM
+command.tooltip.8 = XML-TEI-BFM
+command.label.9 = XML-TEI Frantext
+command.tooltip.9 = XML-TEI Frantext
+command.label.12 = XML-TEI TXM
+command.tooltip.11 = XML-TEI TXM
+command.label.13 = Загрузить корпус TXM 0.5
+command.tooltip.12 = Конвертировать бинарный корпус TXM 0.5 в формат TXM 0.6
+menu.label.3 = Издание
+command.label.15 = Поиск...
+command.label.16 = Отменить
+command.label.17 = Повторить
+command.label.18 = Вырезать
+command.label.19 = Копировать
+command.label.20 = Вставить
+command.label.27 = Удалить
+command.label.28 = Выбрать всё
+command.label.29 = Сохранить как...
+command.label.30 = Кодировка
+command.label.31 = Просмотреть
+command.label.32 = Просмотреть
+command.label.33 = Сохранить как...
+command.label.34 = Выполнить выделенные строки
+command.tooltip.13 = Выполнить скрипт
+command.label.35 = Выполинть скрипт
+command.tooltip.14 = Выполнить скрипт
+command.label.44 = Удалить файл
+command.tooltip.15 = Удалить файл
+command.label.46 = Копировать файл
+command.tooltip.16 = Копировать файл
+command.label.47 = Вырезать файл
+command.tooltip.20 = Вырезать файл
+command.label.57 = Вставить файл
+command.tooltip.21 = Вставить файл
+command.label.63 = Просмотреть
+command.description.0 = Конвертировать старый бинарный файл
+command.name.3 = Конвертировать старый бинарный файл
+command.description.1 = Reset corpora
+command.name.18 = Восстановить корпуса
+command.name.19 = OPENTESTEDITOR
+command.name.21 = ВыполнитьСкрипт
+command.name.50 = ВыполнитьТекст
+command.name.67 = СохранитьКак
+command.name.68 = УдалитьФайл
+command.name.69 = КопироватьФайл
+command.name.70 = ВставитьФайл
+command.name.71 = ВырезатьФайл
+command.name.72 = Кодировка
+command.name.73 = Просмотреть

Property changes on: tmp/org.txm.rcp/OSGI-INF/l10n/bundle_ru_utf-8.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/OSGI-INF/l10n/bundle.properties
===================================================================
--- tmp/org.txm.rcp/OSGI-INF/l10n/bundle.properties	(revision 0)
+++ tmp/org.txm.rcp/OSGI-INF/l10n/bundle.properties	(revision 122)
@@ -0,0 +1,507 @@
+#
+#Thu Jul 25 14:46:50 CEST 2013
+command.tooltip.69=Classification
+command.tooltip.67=Export
+command.label.139=Other...
+command.label.138=R Variables
+command.label.137=R Console
+command.label.136=Query
+command.tooltip.63=Process the references of a query
+command.label.135=File
+command.tooltip.62=Process the lexicon of a query
+command.label.134=Corpus
+command.tooltip.61=Process the full lexicon
+command.label.133=Open URL
+command.tooltip.60=Display properties of structures and lexical units
+command.label.132=R
+command.label.131=Corpus
+command.label.130=Paste
+category.name.0=TXM
+command.name.9=Display
+command.name.8=View in HTML Viewer
+command.name.7=Compute Index
+command.name.6=Compute Correspondance Analysis
+command.name.5=Compute Concordance
+command.name.3=Convert old binary corpus
+command.name.2=Create Partition
+command.name.1=Create Sub-Corpus
+command.name.0=Run Script
+command.tooltip.59=Internal view
+command.tooltip.58=LexicalTable
+command.label.129=Copy
+command.tooltip.57=Cooccurrences
+command.label.128=Send to index
+product.name=TXM
+command.label.127=Send to R
+command.tooltip.55=LexicalTable
+command.label.126=Classification
+command.tooltip.54=Export SVG
+command.tooltip.53=Process the cooccurrents of a query
+command.label.124=Export
+command.tooltip.52=Vue interne
+command.label.123=Create new folder
+command.tooltip.51=LexicalTable
+command.label.122=Create new file
+command.label.121=Send to R
+command.label.120=Classification
+command.tooltip.49=CA
+command.tooltip.48=Test imports
+command.tooltip.47=Contribuer
+command.tooltip.46=CA
+command.label.118=Export
+command.tooltip.45=From a directory containing text files
+command.label.117=Send to R
+command.tooltip.44=XML/w
+command.label.116=Classification
+command.tooltip.42=Change language
+command.label.114=Export
+command.tooltip.41=FAQ
+command.label.113=Goto line
+command.tooltip.40=Vue interne
+command.label.112=Execute Text Selection
+command.label.110=Incremental Find (reverse)
+command.tooltip.39=Display Edition
+command.tooltip.38=Starts a long process to test all the available commands
+command.tooltip.37=Execute a Groovy script from a file
+command.label.109=Incremental Find
+command.tooltip.36=Execute selected text
+command.label.108=Referencer
+command.tooltip.35=Toggle Show Whitespace Characters
+command.label.107=Import table
+command.tooltip.34=Creates a new File
+command.label.106=Export table to re-import
+command.tooltip.33=Delete the selected item
+command.label.105=Merge lines
+command.tooltip.32=Display Edition
+command.label.104=Delete line
+command.tooltip.31=Toggle Show Whitespace Characters
+command.label.103=Send to progression
+command.tooltip.30=Import a directory of files in Alceste format
+command.label.102=Send to concordances
+command.label.101=Chart...
+command.label.100=Find Previous
+command.tooltip.29=Import a directory of files in Hyperbase format
+command.tooltip.28=Import a directory of files in CNR format associated to a CSV metadata file
+command.tooltip.27=After you've copied a text use this function
+command.tooltip.26=Restart TXM
+command.tooltip.25=CWB
+command.tooltip.24=XML-TMX
+command.tooltip.23=Read TXM online manual
+command.tooltip.22=Factiva TXT
+command.tooltip.21=Paste File
+command.tooltip.20=Cut File
+extension.name=Workspace Commands
+menu.label.11=R
+menu.label.10=Groovy
+command.tooltip.19=Run Script
+command.tooltip.18=Open File in browser
+command.tooltip.17=Open File in a Text Editor
+command.tooltip.16=Copy File
+command.tooltip.15=Delete File
+command.tooltip.14=Execute script
+command.tooltip.12=Convert 0.5 binary corpus to 0.6 binary corpus
+command.tooltip.11=XML-TEI TXM
+command.tooltip.10=Display the properties of that instance of the TXM platform
+menu.tooltip.0=view
+perspective.name= 
+perspective.name.1= 
+perspective.name.0= 
+command.description.2=NilsTest
+command.description.1=Reset corpora
+command.description.0=Convert old binary corpus
+command.tooltip=Browse
+extension-point.name=Installation command
+command.name=Open a file
+page.name.19=Import
+page.name.18=Scripts
+page.name.17=Classification
+page.name.16=Referencer
+page.name.13=Lexical Table
+page.name.12=Export
+page.name.11=Cooccurrences
+page.name.10=Correspondence Analysis
+page.name=User
+menu.label=File
+command.tooltip.9=XML-TEI Frantext
+command.tooltip.8=XML-TEI BFM
+command.tooltip.7=Build a kwic concordance of a focus in the selected item
+command.tooltip.5=XML-TRS
+command.tooltip.4=Divide the selected item in several parts
+command.tooltip.3=Select a subset of words of the selected item
+command.tooltip.2=Exit the TXM platform
+command.tooltip.1=Import with the XML-PPS format
+command.tooltip.0=Open the settings windows
+page.name.9=Description
+page.name.8=NLP
+page.name.7=TreeTagger
+editor.name.22=Browser
+page.name.6=\ TXM
+page.name.5=WordCloud
+editor.name.21=WordCloud
+editor.name.20=QueryIndex
+page.name.4=Corpus Engine
+page.name.3=Statistics Engine
+page.name.2=File explorer
+page.name.1=Concordances
+page.name.0=Advanced
+commandParameter.name.3=web page key
+commandParameter.name.2=import script
+commandParameter.name.1=script
+commandParameter.name.0=Corpus Parameter
+editor.name.19=Internal View
+editor.name.18=Classification
+editor.name.17=Browse
+editor.name.16=Test editor
+editor.name.15=Import Parameters
+editor.name.14=Referencer
+editor.name.13=Ca
+editor.name.12=Lexicon
+editor.name.11=Lexical Table
+editor.name.10=Ca Factorial Map
+view.name.8=Macro
+view.name.7=Summary
+view.name.6=R Console
+view.name.5=R variables
+view.name.4=Query
+view.name.3=Base
+view.name.2=Groovy Console
+view.name.1=File
+view.name.0=Progress
+command.tooltip.233=Download the PDF version of TXM manual
+menu.tooltip=Read TXM User's Guide
+command.label.99=Send to progression
+command.label.98=Find next
+command.label.97=LexicalTable
+command.label.96=Cooccurrences
+command.label.94=LexicalTable
+command.label.93=Close all
+command.label.9=XML-TEI Frantext
+editor.name.9=Coocurrences
+command.label.8=Partition
+command.label.91=Cooccurrences
+editor.name.8=ParaBrowser
+command.label.7=Sub-Corpus
+command.label.90=Close
+editor.name.7=Index
+command.label.6=Exit
+editor.name.6=ObjectExplorer
+command.label.5=XML-TEI BFM
+editor.name.5=Edition
+command.label.4=Parameters
+editor.name.4=Text
+command.label.3=XML Transcriber + CSV
+command.label.2=XML Factiva
+editor.name.2=Concordance
+command.label.1=XML/w + CSV
+editor.name.1=Multitab
+command.label.0=CNR + CSV
+command.name.86=QueryIndexToLexicalTable
+editor.name.0=Index
+command.name.85=NilsTest
+command.label=Open in browser...
+command.name.84=Test imports
+command.name.83=CoocMatrix
+command.name.82=QueryIndex
+command.name.81=InterText Distance
+command.name.80=CreateMacro
+category.description=Textometry Functions
+command.label.89=LexicalTable
+command.label.88=Save All
+command.label.86=Save
+command.label.85=CA
+command.label.84=Lexicon
+command.label.83=New file
+command.label.82=CWB
+command.label.81=XML-TMX
+command.label.80=CA
+command.name.79=Execute Macro
+category.name=TXM
+command.name.78=Tests commands
+command.name.77=Send to progression
+command.name.76=Send to index
+command.name.75=Send to concordance
+command.name.74=Open localized HTML page
+command.name.73=Browse
+command.name.72=Set encoding
+command.name.71=CutFile
+command.name.70=PasteFile
+command.label.79=Lexicon
+command.label.78=TXT + CSV
+command.label.77=Send to index
+command.label.75=Change language
+command.label.74=Send to concordance
+command.label.73=Send to concordance
+command.label.72=Textometrie project documentation
+command.label.71=Edition
+command.label.70=TXM manuals directory
+command.name.69=CopyFile
+commandParameter.name=File
+command.name.68=DeleteFile
+command.name.67=SaveAs
+command.name.66=Execute a Groovy file
+command.name.65=IndexToCooccurrence
+command.name.64=CopySelection
+command.name.63=Open Biblio
+command.name.62=OpenImportForm
+command.name.61=show svg help
+command.name.60=SubmitRcode
+command.label.69=Textometrie project web site
+command.label.68=Online manual - HTML
+command.label.67=Install TreeTagger
+command.label.66=Index
+command.label.65=Delete
+command.label.64=Factiva TXT
+command.label.62=Alceste
+command.label.61=Hyperbase
+command.label.60=Clipboard
+command.name.59=OpenEmptyTextEditor
+command.name.58=LexiconToIndex
+command.name.57=RefToConc
+command.name.56=Paste
+command.name.55=Copy
+command.name.54=Classification
+command.name.53=Send to R
+command.name.52=Corpus in binary format...
+command.name.51=Settings
+command.name.50=ExecuteText
+command.label.59=Restart engines
+command.label.58=Export data
+command.label.57=Paste File
+command.label.56=TXM website
+command.label.55=Subscribe to txm-users mailing list
+command.label.54=Ask for enhancement
+command.label.53=Report a bug
+command.label.52=Keyboard shortcuts
+command.label.51=Data...
+command.label.50=Load
+command.label.187=Create Macro from template
+command.label.186=Edit
+command.label.185=Vue interne
+command.name.48=Create new folder
+command.name.47=Create new file
+command.label.183=Vue interne
+command.name.46=Execute Text Selection
+command.description=Restart TXM
+command.label.182=Add an extension
+command.name.45=Run Script
+command.label.181=Check for updates
+command.name.44=References
+command.label.180=Test imports
+command.name.43=VocToLexicalTable
+command.name.42=VocToProgress
+command.name.41=CoocToConc
+command.name.40=ImportTable
+view.name=Corpus
+command.label.49=Description
+command.label.48=Description
+command.label.47=Cut File
+command.label.46=Copy File
+command.label.45=Edit...
+command.label.44=Delete File
+decorator.label=R Decorator
+command.label.179=Contribuer
+command.label.178=FAQ
+command.label.177=Macro
+command.name.39=ExportTable
+command.label.176=Vue interne
+command.name.38=Merge
+command.label.175=Test all commands
+command.name.37=Delete
+command.label.174=Download the manual - PDF
+command.name.36=ComputeLexicalTable
+command.label.173=Welcome
+command.name.35=ComputeCooccurrences
+command.label.172=Execute a Groovy script
+command.name.34=ExportSVG
+command.label.171=Execute selected text
+command.name.33=ParaBrowser
+command.label.170=Execute current script
+command.name.31=Change language
+command.name.30=IndexToConcordance
+command.label.37=Add Base
+command.label.36=Add Project
+command.label.31=Nils
+command.label.30=Character encoding
+command.label.169=Show Control characters
+command.label.168=Show line numbers
+command.label.167=Hyperlink
+command.name.29=Text
+command.label.166=Goto
+command.name.28=Clipboard (FR)
+command.label.165=Select All
+command.name.27=Index
+command.label.164=Revert to save
+command.tooltip.92=Create Macro
+command.name.26=Delete
+command.tooltip.91=Open biblio
+command.label.163=Find incremental (reverse)
+command.name.25=Restart
+command.label.162=Find incremental
+command.name.24=Export data
+command.label.161=Find next
+command.name.23=Description
+command.label.160=Find previous
+command.name.22=Run Script Import
+editor.name=SVG Graph
+command.name.21=ExecuteScript
+command.name.20=Set SearchEngine
+menu.label.9=Views
+menu.label.8=Perspectives
+command.label.29=Save as...
+menu.label.7=View
+command.label.28=Select All
+menu.label.6=Tools
+command.label.27=Delete
+command.label.26=Run Script
+menu.label.4=Extensions
+command.label.25=Execute Text Selection
+command.label.24=Properties
+menu.label.3=Edit
+command.label.23=Run Script
+menu.label.2=Help
+command.label.22=Open in HTML browser
+menu.label.1=Corpus
+command.label.21=Open 
+menu.label.0=Import
+command.label.20=Paste
+command.tooltip.87=Open edition
+command.label.159=Search and Replace
+command.label.158=New
+command.tooltip.86=Edit this macro
+command.tooltip.85=Run R code from selection or file
+command.label.157=New window
+command.label.156=Execute a Groovy file
+command.tooltip.84=New session
+command.name.19=Open the test editor
+command.tooltip.83=Graphics keyboard shortcuts 
+command.name.18=Remove all corpus
+command.name.17=Build Corpus
+command.tooltip.82=Add a new query in log
+command.name.16=Remove Text
+command.tooltip.81=Copy selected queries
+command.name.15=Add Text
+command.tooltip.80=Send the selection to R
+command.name.14=Remove Base
+command.name.13=Add Base
+command.name.12=Remove Project
+command.name.11=Add Project
+command.name.10=Execute Text Selection as Groovy code
+command.label.19=Copy
+command.label.18=Cut
+command.label.17=Redo
+command.label.16=Undo
+command.label.15=Search and Replace...
+command.label.14=About TXM
+command.label.13=Load TXM 0.5 corpus
+command.label.12=XML-TEI TXM
+command.label.11=Concordance
+command.tooltip.79=Classification
+command.tooltip.77=Export as a binary file
+command.label.149=Send to cooccurrence
+command.tooltip.76=Create new folder
+command.label.148=Open biblio
+command.tooltip.75=Create new file
+command.tooltip.74=Send the selection to R
+command.tooltip.73=Classification
+command.label.145=Revert to saved
+command.label.144=Toggle Show Whitespace Characters
+command.tooltip.71=Export as a binary file
+command.label.143=Submit
+command.tooltip.70=Send the selection to R
+command.label.142=New session
+command.label.141=Graphics shortcuts 
+command.label.140=Show Line Numbers
+command.label.34 = Add a third-party extension
+editor.name.24=JFreechart chart
+editor.name.25=Batik SVG chart
+page.name.20=Charts Engine
+page.name.21=JFreeChart
+product.name.0 = TXM
+editor.name.23 = TestEMEditor
+command.label.32 = CooccurrencesList
+command.label.33 = Macros documentation
+command.tooltip.13 = Macros documentation
+command.label.35 = txm-users wiki
+command.tooltip.43 = txm-users wiki
+command.label.38 = Check R packages
+command.label.39 = CooccurrencesList
+command.label.40 = Replay
+command.tooltip.50 = Replay last Groovy script
+command.label.41 = CooccurrencesList
+command.description.3 = Update TXM
+command.name.87 = Update TXM
+command.description.4 = Update TXM
+command.name.88 = Update TXM
+command.name.89 = Execute last Groovy script
+command.name.90 = Check R packages
+command.name.91 = DownloadFile
+scheme.description = TXM binding scheme
+scheme.name = TXM binding scheme
+command.label.42 = Chart...
+command.name.92 = Export chart
+menu.label.5 = Export
+product.name.1 = TXM
+page.name.22 = Partition
+command.label.43 = Console
+command.label.63 = Read the manual
+command.tooltip.64 = Open the PDF Manual with the default PDF reader
+command.label.76 = Chat #txm
+command.tooltip.65 = TXM IRC channel
+command.name.93 = Reconnect  to RWorkspace
+command.name.94 = Reset display
+command.name.95 = Open Manual
+command.name.96 = TextToConcordance
+category.name.1 = TXM
+wizard.name = Corpus
+wizard.description = Create a corpus from sources files. Then compile indexes to be able to analyse the corpus.
+wizard.name.0 = Corpus
+wizard.description.0 = Export a corpus into a .txm file
+category.name.2 = TXM
+wizard.name.1 = Corpus
+wizard.description.1 = Import a corpus from a .txm file
+category.name.3 = TXM
+Bundle-Name = org.txm.rcp
+view.name.9 = Knowledge Repositories
+page.name.23 = Annotation
+command.label.87 = ODT/DOC/RTF + CSV
+command.tooltip.66 = Libre Office, Word and RTF import module
+command.label.92 = XML-XTZ + CSV
+command.tooltip.88 = XML-XTZ + CSV
+command.label.111 = Save Annotation
+command.label.146 = Update corpus
+command.label.147 = Recode corpus
+command.label.150 = Knowledge repositories
+menu.label.12 = Recettes
+menu.tooltip.1 = Recettes de plugins
+command.label.151 = Save Annotation
+command.label.152 = Update corpus
+command.label.153 = Recode corpus
+command.label.154 = Save Annotation
+command.label.155 = Update corpus
+command.label.184 = Recode corpus
+command.label.188 = Copy to clipboard
+command.tooltip.89 = Copy to clipboard
+command.label.189 = Synchronize values
+command.tooltip.90 = Reset and reload all values
+command.label.190 = Informations
+command.tooltip.93 = Display informations about the selected element
+command.label.191 = Add
+command.tooltip.94 = Add a new element
+command.label.192 = Delete
+command.tooltip.95 = Delete the selected element
+command.name.97 = Save Annotations
+command.name.98 = Update corpus
+command.name.99 = KR view
+command.name.100 = Recode corpus
+command.name.101 = Copy
+command.name.102 = Reload
+command.name.103 = Informations
+command.name.104 = Delete
+command.name.105 = Add
+context.description = The knowledge repository view context
+context.name = KR view
+command.label.193 = Annotations in XML-TEI format...
+command.name.106 = Edit selected file
+command.name.107 = Export annotations in XML-TEI stand-off...
+Bundle-Vendor = Textometrie.org
+command.name.108 = Rename

Property changes on: tmp/org.txm.rcp/OSGI-INF/l10n/bundle.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/.settings/org.eclipse.core.resources.prefs
===================================================================
--- tmp/org.txm.rcp/.settings/org.eclipse.core.resources.prefs	(revision 0)
+++ tmp/org.txm.rcp/.settings/org.eclipse.core.resources.prefs	(revision 122)
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding//OSGI-INF/l10n/bundle_ru_utf-8.properties=UTF-8
+encoding/<project>=UTF-8

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

Index: tmp/org.txm.rcp/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- tmp/org.txm.rcp/.settings/org.eclipse.jdt.core.prefs	(revision 0)
+++ tmp/org.txm.rcp/.settings/org.eclipse.jdt.core.prefs	(revision 122)
@@ -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.rcp/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/.settings/org.eclipse.core.runtime.prefs
===================================================================
--- tmp/org.txm.rcp/.settings/org.eclipse.core.runtime.prefs	(revision 0)
+++ tmp/org.txm.rcp/.settings/org.eclipse.core.runtime.prefs	(revision 122)
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n

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

Index: tmp/org.txm.rcp/.settings/org.eclipse.pde.core.prefs
===================================================================
--- tmp/org.txm.rcp/.settings/org.eclipse.pde.core.prefs	(revision 0)
+++ tmp/org.txm.rcp/.settings/org.eclipse.pde.core.prefs	(revision 122)
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+resolve.requirebundle=false

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

Index: tmp/org.txm.rcp/swing2swt.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/swing2swt.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/.project
===================================================================
--- tmp/org.txm.rcp/.project	(revision 0)
+++ tmp/org.txm.rcp/.project	(revision 122)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.txm.rcp</name>
+	<comment></comment>
+	<projects>
+		<project>org.txm.tbx</project>
+	</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>
+		<buildCommand>
+			<name>net.sourceforge.metrics.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>net.sourceforge.metrics.nature</nature>
+	</natures>
+</projectDescription>

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

Index: tmp/org.txm.rcp/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java	(revision 122)
@@ -0,0 +1,447 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wb.swt;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager {
+	////////////////////////////////////////////////////////////////////////////
+	//
+	// Color
+	//
+	////////////////////////////////////////////////////////////////////////////
+	private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+	/**
+	 * Returns the system {@link Color} matching the specific ID.
+	 * 
+	 * @param systemColorID
+	 *            the ID value for the color
+	 * @return the system {@link Color} matching the specific ID
+	 */
+	public static Color getColor(int systemColorID) {
+		Display display = Display.getCurrent();
+		return display.getSystemColor(systemColorID);
+	}
+	/**
+	 * Returns a {@link Color} given its red, green and blue component values.
+	 * 
+	 * @param r
+	 *            the red component of the color
+	 * @param g
+	 *            the green component of the color
+	 * @param b
+	 *            the blue component of the color
+	 * @return the {@link Color} matching the given red, green and blue component values
+	 */
+	public static Color getColor(int r, int g, int b) {
+		return getColor(new RGB(r, g, b));
+	}
+	/**
+	 * Returns a {@link Color} given its RGB value.
+	 * 
+	 * @param rgb
+	 *            the {@link RGB} value of the color
+	 * @return the {@link Color} matching the RGB value
+	 */
+	public static Color getColor(RGB rgb) {
+		Color color = m_colorMap.get(rgb);
+		if (color == null) {
+			Display display = Display.getCurrent();
+			color = new Color(display, rgb);
+			m_colorMap.put(rgb, color);
+		}
+		return color;
+	}
+	/**
+	 * Dispose of all the cached {@link Color}'s.
+	 */
+	public static void disposeColors() {
+		for (Color color : m_colorMap.values()) {
+			color.dispose();
+		}
+		m_colorMap.clear();
+	}
+	////////////////////////////////////////////////////////////////////////////
+	//
+	// Image
+	//
+	////////////////////////////////////////////////////////////////////////////
+	/**
+	 * Maps image paths to images.
+	 */
+	private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+	/**
+	 * Returns an {@link Image} encoded by the specified {@link InputStream}.
+	 * 
+	 * @param stream
+	 *            the {@link InputStream} encoding the image data
+	 * @return the {@link Image} encoded by the specified input stream
+	 */
+	protected static Image getImage(InputStream stream) throws IOException {
+		try {
+			Display display = Display.getCurrent();
+			ImageData data = new ImageData(stream);
+			if (data.transparentPixel > 0) {
+				return new Image(display, data, data.getTransparencyMask());
+			}
+			return new Image(display, data);
+		} finally {
+			stream.close();
+		}
+	}
+	/**
+	 * Returns an {@link Image} stored in the file at the specified path.
+	 * 
+	 * @param path
+	 *            the path to the image file
+	 * @return the {@link Image} stored in the file at the specified path
+	 */
+	public static Image getImage(String path) {
+		Image image = m_imageMap.get(path);
+		if (image == null) {
+			try {
+				image = getImage(new FileInputStream(path));
+				m_imageMap.put(path, image);
+			} catch (Exception e) {
+				image = getMissingImage();
+				m_imageMap.put(path, image);
+			}
+		}
+		return image;
+	}
+	/**
+	 * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+	 * 
+	 * @param clazz
+	 *            the {@link Class} relative to which to find the image
+	 * @param path
+	 *            the path to the image file, if starts with <code>'/'</code>
+	 * @return the {@link Image} stored in the file at the specified path
+	 */
+	public static Image getImage(Class<?> clazz, String path) {
+		String key = clazz.getName() + '|' + path;
+		Image image = m_imageMap.get(key);
+		if (image == null) {
+			try {
+				image = getImage(clazz.getResourceAsStream(path));
+				m_imageMap.put(key, image);
+			} catch (Exception e) {
+				image = getMissingImage();
+				m_imageMap.put(key, image);
+			}
+		}
+		return image;
+	}
+	private static final int MISSING_IMAGE_SIZE = 10;
+	/**
+	 * @return the small {@link Image} that can be used as placeholder for missing image.
+	 */
+	private static Image getMissingImage() {
+		Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+		//
+		GC gc = new GC(image);
+		gc.setBackground(getColor(SWT.COLOR_RED));
+		gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+		gc.dispose();
+		//
+		return image;
+	}
+	/**
+	 * Style constant for placing decorator image in top left corner of base image.
+	 */
+	public static final int TOP_LEFT = 1;
+	/**
+	 * Style constant for placing decorator image in top right corner of base image.
+	 */
+	public static final int TOP_RIGHT = 2;
+	/**
+	 * Style constant for placing decorator image in bottom left corner of base image.
+	 */
+	public static final int BOTTOM_LEFT = 3;
+	/**
+	 * Style constant for placing decorator image in bottom right corner of base image.
+	 */
+	public static final int BOTTOM_RIGHT = 4;
+	/**
+	 * Internal value.
+	 */
+	protected static final int LAST_CORNER_KEY = 5;
+	/**
+	 * Maps images to decorated images.
+	 */
+	@SuppressWarnings("unchecked")
+	private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+	/**
+	 * Returns an {@link Image} composed of a base image decorated by another image.
+	 * 
+	 * @param baseImage
+	 *            the base {@link Image} that should be decorated
+	 * @param decorator
+	 *            the {@link Image} to decorate the base image
+	 * @return {@link Image} The resulting decorated image
+	 */
+	public static Image decorateImage(Image baseImage, Image decorator) {
+		return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+	}
+	/**
+	 * Returns an {@link Image} composed of a base image decorated by another image.
+	 * 
+	 * @param baseImage
+	 *            the base {@link Image} that should be decorated
+	 * @param decorator
+	 *            the {@link Image} to decorate the base image
+	 * @param corner
+	 *            the corner to place decorator image
+	 * @return the resulting decorated {@link Image}
+	 */
+	public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
+		if (corner <= 0 || corner >= LAST_CORNER_KEY) {
+			throw new IllegalArgumentException("Wrong decorate corner");
+		}
+		Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+		if (cornerDecoratedImageMap == null) {
+			cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+			m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+		}
+		Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+		if (decoratedMap == null) {
+			decoratedMap = new HashMap<Image, Image>();
+			cornerDecoratedImageMap.put(baseImage, decoratedMap);
+		}
+		//
+		Image result = decoratedMap.get(decorator);
+		if (result == null) {
+			Rectangle bib = baseImage.getBounds();
+			Rectangle dib = decorator.getBounds();
+			//
+			result = new Image(Display.getCurrent(), bib.width, bib.height);
+			//
+			GC gc = new GC(result);
+			gc.drawImage(baseImage, 0, 0);
+			if (corner == TOP_LEFT) {
+				gc.drawImage(decorator, 0, 0);
+			} else if (corner == TOP_RIGHT) {
+				gc.drawImage(decorator, bib.width - dib.width, 0);
+			} else if (corner == BOTTOM_LEFT) {
+				gc.drawImage(decorator, 0, bib.height - dib.height);
+			} else if (corner == BOTTOM_RIGHT) {
+				gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+			}
+			gc.dispose();
+			//
+			decoratedMap.put(decorator, result);
+		}
+		return result;
+	}
+	/**
+	 * Dispose all of the cached {@link Image}'s.
+	 */
+	public static void disposeImages() {
+		// dispose loaded images
+		{
+			for (Image image : m_imageMap.values()) {
+				image.dispose();
+			}
+			m_imageMap.clear();
+		}
+		// dispose decorated images
+		for (int i = 0; i < m_decoratedImageMap.length; i++) {
+			Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+			if (cornerDecoratedImageMap != null) {
+				for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
+					for (Image image : decoratedMap.values()) {
+						image.dispose();
+					}
+					decoratedMap.clear();
+				}
+				cornerDecoratedImageMap.clear();
+			}
+		}
+	}
+	////////////////////////////////////////////////////////////////////////////
+	//
+	// Font
+	//
+	////////////////////////////////////////////////////////////////////////////
+	/**
+	 * Maps font names to fonts.
+	 */
+	private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+	/**
+	 * Maps fonts to their bold versions.
+	 */
+	private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+	/**
+	 * Returns a {@link Font} based on its name, height and style.
+	 * 
+	 * @param name
+	 *            the name of the font
+	 * @param height
+	 *            the height of the font
+	 * @param style
+	 *            the style of the font
+	 * @return {@link Font} The font matching the name, height and style
+	 */
+	public static Font getFont(String name, int height, int style) {
+		return getFont(name, height, style, false, false);
+	}
+	/**
+	 * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+	 * flags are also supported.
+	 * 
+	 * @param name
+	 *            the name of the font
+	 * @param size
+	 *            the size of the font
+	 * @param style
+	 *            the style of the font
+	 * @param strikeout
+	 *            the strikeout flag (warning: Windows only)
+	 * @param underline
+	 *            the underline flag (warning: Windows only)
+	 * @return {@link Font} The font matching the name, height, style, strikeout and underline
+	 */
+	public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
+		String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+		Font font = m_fontMap.get(fontName);
+		if (font == null) {
+			FontData fontData = new FontData(name, size, style);
+			if (strikeout || underline) {
+				try {
+					Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+					Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+					if (logFont != null && logFontClass != null) {
+						if (strikeout) {
+							logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+						}
+						if (underline) {
+							logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+						}
+					}
+				} catch (Throwable e) {
+					System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+			}
+			font = new Font(Display.getCurrent(), fontData);
+			m_fontMap.put(fontName, font);
+		}
+		return font;
+	}
+	/**
+	 * Returns a bold version of the given {@link Font}.
+	 * 
+	 * @param baseFont
+	 *            the {@link Font} for which a bold version is desired
+	 * @return the bold version of the given {@link Font}
+	 */
+	public static Font getBoldFont(Font baseFont) {
+		Font font = m_fontToBoldFontMap.get(baseFont);
+		if (font == null) {
+			FontData fontDatas[] = baseFont.getFontData();
+			FontData data = fontDatas[0];
+			font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+			m_fontToBoldFontMap.put(baseFont, font);
+		}
+		return font;
+	}
+	/**
+	 * Dispose all of the cached {@link Font}'s.
+	 */
+	public static void disposeFonts() {
+		// clear fonts
+		for (Font font : m_fontMap.values()) {
+			font.dispose();
+		}
+		m_fontMap.clear();
+		// clear bold fonts
+		for (Font font : m_fontToBoldFontMap.values()) {
+			font.dispose();
+		}
+		m_fontToBoldFontMap.clear();
+	}
+	////////////////////////////////////////////////////////////////////////////
+	//
+	// Cursor
+	//
+	////////////////////////////////////////////////////////////////////////////
+	/**
+	 * Maps IDs to cursors.
+	 */
+	private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+	/**
+	 * Returns the system cursor matching the specific ID.
+	 * 
+	 * @param id
+	 *            int The ID value for the cursor
+	 * @return Cursor The system cursor matching the specific ID
+	 */
+	public static Cursor getCursor(int id) {
+		Integer key = Integer.valueOf(id);
+		Cursor cursor = m_idToCursorMap.get(key);
+		if (cursor == null) {
+			cursor = new Cursor(Display.getDefault(), id);
+			m_idToCursorMap.put(key, cursor);
+		}
+		return cursor;
+	}
+	/**
+	 * Dispose all of the cached cursors.
+	 */
+	public static void disposeCursors() {
+		for (Cursor cursor : m_idToCursorMap.values()) {
+			cursor.dispose();
+		}
+		m_idToCursorMap.clear();
+	}
+	////////////////////////////////////////////////////////////////////////////
+	//
+	// General
+	//
+	////////////////////////////////////////////////////////////////////////////
+	/**
+	 * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+	 * objects are no longer needed (e.g. on application shutdown).
+	 */
+	public static void dispose() {
+		disposeColors();
+		disposeImages();
+		disposeFonts();
+		disposeCursors();
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/eclipse/wb/swt/SWTResourceManager.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/cah/CAHSelectionListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/cah/CAHSelectionListener.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/cah/CAHSelectionListener.java	(revision 122)
@@ -0,0 +1,70 @@
+package org.txm.rcp.chartsengine.base.events.cah;
+
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.ToolItem;
+import org.txm.functions.classification.CAH;
+import org.txm.rcp.chartsengine.base.___editors.___ChartEditorPart;
+import org.txm.rcp.chartsengine.base.events.___BaseSelectionListener;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.function.ComputeCAH;
+import org.txm.rcpapplication.editors.cah.CAHChartEditor;
+import org.txm.rcpapplication.preferences.CAHPreferencePage;
+import org.txm.stat.engine.r.RWorkspaceException;
+
+/**
+ * CAH listener.
+ * @author sjacquot
+ *
+ */
+public class CAHSelectionListener extends ___BaseSelectionListener {
+
+	
+	/**
+	 * Command constants.
+	 */
+	public final static int NUMBERS_OF_CLUSTERS = 0, COMPUTE_COLUMNS = 1; 
+	
+	
+	/**
+	 * 
+	 * @param chartEditor
+	 * @param commandId
+	 */
+	public CAHSelectionListener(___ChartEditorPart chartEditor, int commandId) {
+		super(chartEditor, commandId);
+	}
+
+	
+	@Override
+	public void widgetSelected(SelectionEvent e) {
+
+		try {
+			CAH cah = ((CAHChartEditor) chartEditor).getResultData();
+
+			// Numbers of clusters
+			if(this.commandId == CAHSelectionListener.NUMBERS_OF_CLUSTERS)	{
+				cah.setNCluster(((Spinner)e.getSource()).getSelection());
+			}
+			// Compute columns or rows
+			else if(this.commandId == CAHSelectionListener.COMPUTE_COLUMNS)	{
+				cah.setColumnsComputing(((ToolItem)e.getSource()).getSelection());
+				cah.setNCluster(TxmPreferences.getInt(CAHPreferencePage.NCLUSTER));
+				((CAHChartEditor) chartEditor).updateNumbersOfClustersCurrentValue();
+			}
+			
+			// Update the maximum value of the number of clusters spinner according to the new CAH configuration 
+			((CAHChartEditor) chartEditor).updateNumbersOfClustersMaxValue();
+			
+			// Recompute the CAH
+			ComputeCAH.compute(cah, chartEditor);
+			
+		}
+		catch(RWorkspaceException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+	}
+	
+	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/cah/CAHSelectionListener.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CASelectionListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CASelectionListener.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CASelectionListener.java	(revision 122)
@@ -0,0 +1,131 @@
+package org.txm.rcp.chartsengine.base.events.ca;
+
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.ToolItem;
+import org.txm.functions.ca.CA;
+import org.txm.rcp.chartsengine.base.___editors.___ChartEditorPart;
+import org.txm.rcp.chartsengine.base.events.___BaseSelectionListener;
+import org.txm.rcpapplication.editors.ca.CAFactorialMapChartEditor;
+import org.txm.rcpapplication.editors.ca.CaEditor;
+import org.txm.utils.logger.Log;
+
+/**
+ * Mixed SWT/JFace CA selection listener shared by chart tool bar and extra data SWT tables.
+ * @author sjacquot
+ *
+ */
+public class CASelectionListener extends ___BaseSelectionListener implements ISelectionChangedListener {
+
+
+	/**
+	 * Command constants.
+	 */
+	public final static int SHOW_HIDE_COLUMNS = 0, SHOW_HIDE_ROWS = 1, CHANGE_FACTORS = 2, HIGHLIGHT_ROW_POINTS = 3, HIGHLIGHT_COLUMN_POINTS = 4, SET_CHART_ITEMS_SELECTION_ORDER = 5;
+
+
+	/**
+	 *
+	 * @param chartEditor
+	 * @param commandId
+	 */
+	public CASelectionListener(___ChartEditorPart chartEditor, int commandId) {
+		super(chartEditor, commandId);
+	}
+
+
+	@Override
+	public void widgetSelected(SelectionEvent e) {
+
+		boolean giveFocusToChart = true;
+		
+		//Show/hide columns
+		if(this.commandId == CASelectionListener.SHOW_HIDE_COLUMNS)	{
+
+			// Cancel the event and do nothing if only columns are currently displayed
+			if(!((ToolItem) e.getSource()).getSelection() && !((CAFactorialMapChartEditor)this.chartEditor).getShowRows().getSelection())	{
+				((ToolItem) e.getSource()).setSelection(true);
+				return;
+			}
+
+			this.chartEditor.getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapSetColumnsVisible(this.chartEditor.getChart(), (CA) this.chartEditor.getResultData(), ((ToolItem) e.getSource()).getSelection());
+		}
+		//Show/hide rows
+		else if(this.commandId == CASelectionListener.SHOW_HIDE_ROWS)	{
+
+			// Cancel the event and do nothing if only rows are currently displayed
+			if(!((ToolItem) e.getSource()).getSelection() && !((CAFactorialMapChartEditor)this.chartEditor).getShowColumns().getSelection())	{
+				((ToolItem) e.getSource()).setSelection(true);
+				return;
+			}
+			this.chartEditor.getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapSetRowsVisible(this.chartEditor.getChart(), (CA) this.chartEditor.getResultData(), ((ToolItem) e.getSource()).getSelection());
+		}
+		// Change factors
+		else if(this.commandId == CASelectionListener.CHANGE_FACTORS)	{
+
+			Combo plans = (Combo) e.getSource();
+
+			int dimension1 = 1;
+			int dimension2 = 2;
+
+			String str = plans.getItem(plans.getSelectionIndex());
+			str = str.substring(1, str.length() -1); // remove ( and )
+			String[] split = str.split(","); // 2 items //$NON-NLS-1$
+			// FIXME: this case should never happens
+			if(split.length != 2)	{
+				Log.severe("** Internal error: CA plan selection error"); //$NON-NLS-1$
+				return;
+			}
+			dimension1 = Integer.parseInt(split[0]);
+			dimension2 = Integer.parseInt(split[1]);
+
+			this.chartEditor.getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapSetDimensions(this.chartEditor.getChart(), (CA) this.chartEditor.getResultData(), dimension1, dimension2);
+
+			this.chartEditor.resetView();
+		}
+		// Change chart items selection order
+		else if(this.commandId == CASelectionListener.SET_CHART_ITEMS_SELECTION_ORDER)	{
+
+			CaEditor editor = (CaEditor)this.chartEditor.getParentMultiPagesEditor(); 
+			this.chartEditor.getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapSetLabelItemsSelectionOrder(this.chartEditor.getChart(), editor.getRowsInfosEditor().getOrdererLabels(), editor.getColsInfosEditor().getOrdererLabels());
+			
+			giveFocusToChart = false;
+			
+		}
+		
+
+		this.chartEditor.reloadChart(); // needed for file based implementations of charts engine that modify the external existing chart file
+		
+		if(giveFocusToChart)	{
+			this.chartEditor.forceFocus();
+		}
+
+	}
+
+
+	@Override
+	public void selectionChanged(SelectionChangedEvent event) {
+
+		// Highlight points from table rows
+		if(this.commandId == CASelectionListener.HIGHLIGHT_ROW_POINTS || this.commandId == CASelectionListener.HIGHLIGHT_COLUMN_POINTS)	{
+
+			Table table = (Table) ((TableViewer) event.getSource()).getTable();
+	        String[] selectedLabels = new String[table.getSelectionCount()];
+	        TableItem[] selection = table.getSelection();
+
+	        for (int i = 0; i < selection.length; i++)	{
+	        	selectedLabels[i] = selection[i].getText();
+	        }
+
+	        this.chartEditor.getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapHighlightPoints(this.chartEditor.getChart(), (this.commandId == CASelectionListener.HIGHLIGHT_ROW_POINTS), selectedLabels);
+		}
+
+	}
+
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CASelectionListener.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CAPointSelectionCallBack.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CAPointSelectionCallBack.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CAPointSelectionCallBack.java	(revision 122)
@@ -0,0 +1,91 @@
+package org.txm.rcp.chartsengine.base.events.ca;
+
+import java.awt.AWTEvent;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.txm.rcp.chartsengine.base.___editors.___ChartEditorPart;
+import org.txm.rcp.chartsengine.base.events.___EventCallBack;
+
+/**
+ * CA chart point selection call back shared by mouse and keyboard events.
+ * @author sjacquot
+ *
+ */
+public class CAPointSelectionCallBack extends ___EventCallBack {
+
+	/**
+	 * Chart editor.
+	 */
+	protected ___ChartEditorPart chartEditor;
+
+	/**
+	 * Rows information table viewer.
+	 */
+	protected TableViewer rowsInfoViewer;
+
+
+	/**
+	 * Columns information table viewer.
+	 */
+	protected TableViewer columnsInfoViewer;
+
+
+	/**
+	 *
+	 * @param rowsInfoViewer
+	 * @param columnsInfoViewer
+	 */
+	public CAPointSelectionCallBack(___ChartEditorPart chartEditor, TableViewer rowsInfoViewer, TableViewer columnsInfoViewer) {
+		super();
+		this.chartEditor = chartEditor;
+		this.rowsInfoViewer = rowsInfoViewer;
+		this.columnsInfoViewer = columnsInfoViewer;
+	}
+
+
+	@Override
+	public void processEvent(AWTEvent event, int eventArea, Object o) {
+
+		if(eventArea == ___EventCallBack.AREA_ITEM || event instanceof KeyEvent)	{
+		
+			// Need to run this in the SWT UI thread because it's called from the AWT UI thread in TBX charts engine layer
+			chartEditor.getComposite().getDisplay().asyncExec(new Runnable () {
+				public void run() {
+	
+					ArrayList<String> rowLabels = chartEditor.getEditorInput().getSWTChartComponentsProvider().getChartsEngine().getCAFactorialMapChartSelectedRowPoints(chartEditor.getChart());
+					ArrayList<String> columnLabels = chartEditor.getEditorInput().getSWTChartComponentsProvider().getChartsEngine().getCAFactorialMapChartSelectedColumnPoints(chartEditor.getChart());
+	
+			        // Update the selected lines in the row and column information tables
+					for(int i = 0; i < rowsInfoViewer.getTable().getItemCount(); i++) {
+						if(rowLabels.contains(rowsInfoViewer.getTable().getItem(i).getText()))	{
+							rowsInfoViewer.getTable().select(i);
+							// Scroll to the last selected point
+							if(rowsInfoViewer.getTable().getItem(i).getText().equals(rowLabels.get(rowLabels.size() - 1)))	{
+								rowsInfoViewer.getTable().setTopIndex(i);
+							}
+						}
+						else	{
+							rowsInfoViewer.getTable().deselect(i);
+						}
+					}
+					for(int i = 0; i < columnsInfoViewer.getTable().getItemCount(); i++) {
+						if(columnLabels.contains(columnsInfoViewer.getTable().getItem(i).getText()))	{
+							columnsInfoViewer.getTable().select(i);
+							// Scroll to the last selected point
+							if(columnsInfoViewer.getTable().getItem(i).getText().equals(columnLabels.get(columnLabels.size() - 1)))	{
+								columnsInfoViewer.getTable().setTopIndex(i);
+							}
+						}
+						else	{
+							columnsInfoViewer.getTable().deselect(i);
+						}
+					}
+				}
+			});
+		}
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/events/ca/CAPointSelectionCallBack.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages.properties	(revision 122)
@@ -0,0 +1,18 @@
+ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_LABEL=Export view
+ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_TOOLTIP=Export the current view
+ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_LABEL=Reset view
+ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_TOOLTIP=Reset the chart view
+ChartsEnginePartitionPreferencePage_DISPLAY_PARTS_COUNT_IN_TITLE=Display parts count in chart title
+ChartsEnginePreferencePage_COMBO_FIELD_SELECT_DISPLAY_FORMAT_LABEL=Display format
+ChartsEnginePreferencePage_COMBO_FIELD_SELECT_ENGINE_LABEL=Current Engine
+ChartsEnginePreferencePage_LOG_RECREATING_CHARTS_ENGINE=Recreating Charts Engine and SWT chart components provider
+ChartsEngineSharedPreferencePage_CHARTS_RENDERING_DEFAULT_PREFERENCES=Charts rendering
+SWTChartsComponentProvider_CA_TOOLBAR_AXES_SELECTION_COMBO_BOX_LABEL=Axes: 
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_LABEL=Show columns
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_TOOLTIP=Show/hide the column points
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_LABEL=Show rows
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_TOOLTIP=Show/hide the row points
+SWTChartsComponentProvider_CAH_TOOLBAR_BUTTON_NUMBER_OF_CLUSTERS=Number of clusters: 
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_CONCORDANCE=Send selection to concordance
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_COOCCURRENCE=Send selection to cooccurrence
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_INDEX=Send selection to index

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/___SWTComponentsProviderMessages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/___SWTComponentsProviderMessages.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/___SWTComponentsProviderMessages.java	(revision 122)
@@ -0,0 +1,45 @@
+package org.txm.rcp.chartsengine.base.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class ___SWTComponentsProviderMessages extends NLS {
+	
+	private static final String BUNDLE_NAME = "org.txm.rcp.chartsengine.base.messages.messages"; //$NON-NLS-1$
+	
+	public static String ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_LABEL;
+	public static String ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_TOOLTIP;
+	public static String ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_LABEL;
+	public static String ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_TOOLTIP;
+
+	public static String ChartsEnginePreferencePage_COMBO_FIELD_SELECT_DISPLAY_FORMAT_LABEL;
+
+	public static String ChartsEnginePreferencePage_COMBO_FIELD_SELECT_ENGINE_LABEL;
+	public static String ChartsEnginePreferencePage_LOG_RECREATING_CHARTS_ENGINE;
+	public static String ChartsEnginePartitionPreferencePage_DISPLAY_PARTS_COUNT_IN_TITLE;
+	public static String ChartsEngineSharedPreferencePage_CHARTS_RENDERING_DEFAULT_PREFERENCES;
+	
+	
+	public static String SWTChartsComponentProvider_CA_TOOLBAR_AXES_SELECTION_COMBO_BOX_LABEL;
+	public static String SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_LABEL;
+	public static String SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_TOOLTIP;
+	public static String SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_LABEL;
+	public static String SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_TOOLTIP;
+
+	
+	public static String SWTChartsComponentProvider_CAH_TOOLBAR_BUTTON_NUMBER_OF_CLUSTERS;
+
+	public static String SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_CONCORDANCE;
+
+	public static String SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_COOCCURRENCE;
+
+	public static String SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_INDEX;
+	
+	
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, ___SWTComponentsProviderMessages.class);
+	}
+
+	private ___SWTComponentsProviderMessages() {
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/___SWTComponentsProviderMessages.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages_fr.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages_fr.properties	(revision 122)
@@ -0,0 +1,18 @@
+ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_LABEL=Exporter la vue
+ChartEditorToolBar_SHARED_BUTTON_EXPORT_VIEW_TOOLTIP=Exporter la vue actuelle du graphique
+ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_LABEL=R�tablir la vue initiale
+ChartEditorToolBar_SHARED_BUTTON_RESET_VIEW_TOOLTIP=R�tablir la vue initiale
+ChartsEnginePartitionPreferencePage_DISPLAY_PARTS_COUNT_IN_TITLE=Afficher le nombre de parties dans le titre du graphique
+ChartsEnginePreferencePage_COMBO_FIELD_SELECT_DISPLAY_FORMAT_LABEL=Format d'affichage
+ChartsEnginePreferencePage_COMBO_FIELD_SELECT_ENGINE_LABEL=Moteur de graphiques courant
+ChartsEnginePreferencePage_LOG_RECREATING_CHARTS_ENGINE=R�initialisation du moteur de production de graphiques et du fournisseur de composants SWT
+ChartsEngineSharedPreferencePage_CHARTS_RENDERING_DEFAULT_PREFERENCES=Rendu des graphiques
+SWTChartsComponentProvider_CA_TOOLBAR_AXES_SELECTION_COMBO_BOX_LABEL=Axes : 
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_LABEL=Afficher les colonnes
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_TOOLTIP=Afficher/masquer les points-colonnes
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_LABEL=Afficher les lignes
+SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_TOOLTIP=Afficher/masquer les points-lignes
+SWTChartsComponentProvider_CAH_TOOLBAR_BUTTON_NUMBER_OF_CLUSTERS=Nombre de clusters : 
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_CONCORDANCE=Envoyer la s�lection vers la concordance
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_COOCCURRENCE=Envoyer la s�lection vers la cooccurrence
+SWTChartsComponentProvider_SHARED_SEND_SELECTION_TO_INDEX=Envoyer la s�lection vers l'index
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/chartsengine/base/messages/messages_fr.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/NewCorpusWizard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/NewCorpusWizard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/NewCorpusWizard.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcp.wizard;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+
+public class NewCorpusWizard extends Wizard implements INewWizard {
+
+	WizardNewProjectCreationPage page;
+	
+	@Override
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		page = new WizardNewProjectCreationPage("Corpus TXM");
+		page.setTitle("Corpus TXM");
+		page.setDescription("select the directory containing the source files");
+		addPage(page);
+	}
+
+	@Override
+	public boolean performFinish() {
+		return page.isPageComplete();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/NewCorpusWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ImportCorpusWizard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ImportCorpusWizard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ImportCorpusWizard.java	(revision 122)
@@ -0,0 +1,170 @@
+package org.txm.rcp.wizard;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IImportWizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardExportPage;
+import org.eclipse.ui.dialogs.WizardExportResourcesPage;
+import org.eclipse.ui.dialogs.WizardImportPage;
+import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
+import org.eclipse.ui.dialogs.WizardResourceImportPage;
+import org.txm.rcpapplication.IImageKeys;
+
+public class ImportCorpusWizard extends WizardResourceImportPage implements IImportWizard {
+
+	protected ImportCorpusWizard(String name, IStructuredSelection selection) {
+		super(name, selection);
+		// TODO Auto-generated constructor stub
+	}
+	
+	public IWizardContainer getContainer() {
+		return super.getContainer();
+	}
+	
+	public IDialogSettings getDialogSettings() {
+		return super.getDialogSettings();
+	}
+
+	@Override
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void addPages() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public boolean canFinish() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void createPageControls(Composite pageContainer) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public Image getDefaultPageImage() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getNextPage(IWizardPage page) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getPage(String pageName) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getPageCount() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public IWizardPage[] getPages() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getPreviousPage(IWizardPage page) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getStartingPage() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public RGB getTitleBarColor() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getWindowTitle() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean isHelpAvailable() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean needsPreviousAndNextButtons() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean needsProgressMonitor() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean performCancel() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean performFinish() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void setContainer(IWizardContainer wizardContainer) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	protected void createSourceGroup(Composite parent) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	protected ITreeContentProvider getFileProvider() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	protected ITreeContentProvider getFolderProvider() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ImportCorpusWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageTwo.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageTwo.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageTwo.java	(revision 122)
@@ -0,0 +1,129 @@
+package org.txm.rcp.wizard;
+
+
+
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.KeyEvent;
+
+import org.eclipse.swt.events.KeyListener;
+
+import org.eclipse.swt.layout.GridData;
+
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Button;
+
+import org.eclipse.swt.widgets.Composite;
+
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.swt.widgets.Text;
+
+
+public class MyPageTwo extends WizardPage {
+
+	  private Text text1;
+
+	  private Composite container;
+
+
+
+	  public MyPageTwo() {
+
+	    super("Second Page");
+
+	    setTitle("Second Page");
+
+	    setDescription("Now this is the second page");
+
+	    setControl(text1);
+
+	  }
+
+
+
+	  @Override
+
+	  public void createControl(Composite parent) {
+
+	    container = new Composite(parent, SWT.NONE);
+
+	    GridLayout layout = new GridLayout();
+
+	    container.setLayout(layout);
+
+	    layout.numColumns = 2;
+
+	    Label label1 = new Label(container, SWT.NONE);
+
+	    label1.setText("Say hello to Fred");
+
+
+
+	    text1 = new Text(container, SWT.BORDER | SWT.SINGLE);
+
+	    text1.setText("");
+
+	    text1.addKeyListener(new KeyListener() {
+
+
+
+	      @Override
+
+	      public void keyPressed(KeyEvent e) {
+
+	        // TODO Auto-generated method stub
+
+	      }
+
+
+
+	      @Override
+
+	      public void keyReleased(KeyEvent e) {
+
+	        if (!text1.getText().isEmpty()) {
+
+	          setPageComplete(true);
+
+	        }
+
+	      }
+
+
+
+	    });
+
+	    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+
+	    text1.setLayoutData(gd);
+
+	    Label labelCheck = new Label(container, SWT.NONE);
+
+	    labelCheck.setText("This is a check");
+
+	    Button check = new Button(container, SWT.CHECK);
+
+	    check.setSelection(true);
+
+	    // required to avoid an error in the system
+
+	    setControl(container);
+
+	    setPageComplete(false);
+
+	  }
+
+
+
+	  public String getText1() {
+
+	    return text1.getText();
+
+	  }
+
+	}
+	 

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageTwo.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ExportCorpusWizard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ExportCorpusWizard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ExportCorpusWizard.java	(revision 122)
@@ -0,0 +1,157 @@
+package org.txm.rcp.wizard;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.IWizardContainer;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.ui.IExportWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.dialogs.WizardExportResourcesPage;
+
+public class ExportCorpusWizard extends WizardExportResourcesPage implements IExportWizard {
+
+	protected ExportCorpusWizard(String pageName, IStructuredSelection selection) {
+		super(pageName, selection);
+		// TODO Auto-generated constructor stub
+	}
+	
+	public IWizardContainer getContainer() {
+		return super.getContainer();
+	}
+	
+	public IDialogSettings getDialogSettings() {
+		return super.getDialogSettings();
+	}
+
+	@Override
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void addPages() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public boolean canFinish() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void createPageControls(Composite pageContainer) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public Image getDefaultPageImage() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getNextPage(IWizardPage page) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getPage(String pageName) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public int getPageCount() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	@Override
+	public IWizardPage[] getPages() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getPreviousPage(IWizardPage page) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public IWizardPage getStartingPage() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public RGB getTitleBarColor() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public String getWindowTitle() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean isHelpAvailable() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean needsPreviousAndNextButtons() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean needsProgressMonitor() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean performCancel() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean performFinish() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void setContainer(IWizardContainer wizardContainer) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void handleEvent(Event event) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	protected void createDestinationGroup(Composite parent) {
+		// TODO Auto-generated method stub
+		
+	}
+
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/ExportCorpusWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageOne.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageOne.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageOne.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcp.wizard;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+
+
+public class MyPageOne extends WizardNewFileCreationPage {
+
+	public MyPageOne(String pageName, IStructuredSelection selection) {
+		super(pageName, selection);
+		// TODO Auto-generated constructor stub
+	}
+
+}
+ 
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/wizard/MyPageOne.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferencePage.java	(revision 122)
@@ -0,0 +1,89 @@
+package org.txm.rcp.preferences;
+
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+
+
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+
+/**
+ * TXM base preference page.
+ * @author mdecorde
+ * @author sjacquot
+ *
+ */
+public abstract class TXMPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
+
+
+
+	/**
+	 * 
+	 */
+	public TXMPreferencePage() {
+		super(GRID);
+	}
+
+
+	@Override
+	public Composite getFieldEditorParent() {
+		return super.getFieldEditorParent();
+	}
+	
+	@Override
+	public void addField(FieldEditor editor) {
+		super.addField(editor);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			((ScopedPreferenceStore) this.getPreferenceStore()).save();
+			// FIXME: to remove after the plug-ins split
+			org.txm.Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+		} catch (Exception e) {
+			System.err.println(org.txm.rcpapplication.Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferenceStore.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferenceStore.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferenceStore.java	(revision 122)
@@ -0,0 +1,23 @@
+package org.txm.rcp.preferences;
+
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+
+/**
+ * Convenience to get scoped preference instance store.
+ * 
+ * @author sjacquot
+ *
+ */
+// FIXME: add methods from the old TXMPreferences class? (getBoolean, getInt, set, etc.)
+public class TXMPreferenceStore extends ScopedPreferenceStore {
+
+	/**
+	 * 
+	 * @param qualifier
+	 */
+	public TXMPreferenceStore(String qualifier) {
+		super(InstanceScope.INSTANCE, qualifier);
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMPreferenceStore.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/tests/AnnotationLookUp.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/tests/AnnotationLookUp.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/tests/AnnotationLookUp.java	(revision 122)
@@ -0,0 +1,413 @@
+package org.txm.rcp.tests;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.txm.annotation.Annotation;
+import org.txm.annotation.AnnotationManager;
+import org.txm.annotation.CQPAnnotationManager;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.annotation.storage.temporary.TemporaryAnnotationManager;
+import org.txm.rcpapplication.commands.annotation.InitializeKnowledgeRepository;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.query.Match;
+
+public class AnnotationLookUp {
+
+	////JPA Annotation Manager (only among temporary annotations)
+
+	public static void writingAnnotations(KnowledgeRepository kr, MainCorpus c, AnnotationManager am){
+		TemporaryAnnotationManager jpamanager = am.getTemporaryManager();
+		try {
+
+			List<Annotation> annotsOverlapped;
+			AnnotationType T1 = kr.getType("T1");
+			AnnotationType T2 = kr.getType("T2");
+
+			if (T1 == null || T2 == null) {
+				System.out.println("Annotation types are NULL !!!");
+				return;
+			} 
+
+			TypedValue val1 = kr.getValue(T1, "V1");
+			TypedValue val2 = kr.getValue(T1, "V2");
+			TypedValue val3 = kr.getValue(T1, "V3");
+			TypedValue val4 = kr.getValue(T1, "V4");
+			TypedValue val5 = kr.getValue(T2, "V5");
+
+			TypedValue val6 = kr.getValue(T2, "V6");
+			TypedValue val7 = kr.getValue(T2, "V7");
+			TypedValue val8 = kr.getValue(T2, "V8");
+
+			if(val1!= null && val2!=null && val3!=null && val4!= null && 
+					val5!=null && val6!=null && val7!= null && val8!=null) {
+				//OK
+				System.out.println("============== Creation with no overlap ==============");
+				annotsOverlapped = jpamanager.createAnnotation(T1, val1, 3, 3); 
+				System.out.println("No overlap for [val1] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T1, val2, 10, 12); 
+				System.out.println("No overlap for [val2] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T2, val3, 24, 29); 
+				System.out.println("No overlap for [val2] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T2, val4, 11, 11); 
+				System.out.println("One overlap for [val4] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T2, val5, 2, 5); 
+				System.out.println("One overlap for [val5] ? colision = "+annotsOverlapped);
+				jpamanager.checkData();
+				am.saveAnnotations();		
+			}
+
+		} catch (Exception e) {
+			// TODO Bloc catch généré automatiquement
+			e.printStackTrace();
+		}
+	}
+
+	public static class Test {
+		public AnnotationType type;
+		public TypedValue value;
+		public List<Match> matches;
+		public String comment;
+		public Test(AnnotationType type, TypedValue value, List<Match> matches, String comment) {
+			this.type = type;
+			this.value = value;
+			this.matches = matches;
+			this.comment = comment;
+		}
+
+		public String toString() { return value.toString()+" at "+matches; }
+	}
+
+	public static void checkingAnnotationManager(KnowledgeRepository kr, MainCorpus c, AnnotationManager am){
+
+		try {
+			HashMap<Match, List<Annotation>> annotsOverlapped;
+			AnnotationType T1 = kr.getType("T1");
+			AnnotationType T2 = kr.getType("T2");
+
+			if (T1 == null || T2 == null) {
+				System.out.println("Annotation types are NULL !!!");
+				return;
+			}		
+
+			TypedValue V1 = kr.getValue(T1, "V1");
+			TypedValue V2 = kr.getValue(T1, "V2");
+			TypedValue V5 = kr.getValue(T2, "V5");
+
+			LinkedHashMap<String, ArrayList<Test>> testSuits = new LinkedHashMap<String, ArrayList<Test>>();
+			ArrayList<Test> tests = null;
+
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(3, 3)), "no overlap"));
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(10, 12)), "no overlap"));
+			testSuits.put("No overlap, diff types", tests);
+
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(9, 10)), "ON START impossible"));
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(12, 13)), "ON END impossible"));
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(9, 13)), "OUTTER impossible"));
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(11, 11)), "INNER impossible"));
+			testSuits.put("Creation overlap with same type", tests);
+
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(23, 24)), "overlap"));
+			tests.add(new Test(T1, V1, Arrays.asList(new Match(45, 50)), "no overlap"));
+			testSuits.put("No overlap, diff types, pls words", tests);
+
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T2, V5, Arrays.asList(new Match(9, 11)), "ON START impossible"));
+			tests.add(new Test(T2, V5, Arrays.asList(new Match(11, 14)), "ON END impossible"));
+			tests.add(new Test(T2, V5, Arrays.asList(new Match(22, 26)), "OUTTER possible")); // a tester avec une annotation T1 isolée
+			tests.add(new Test(T2, V5, Arrays.asList(new Match(47, 47)), "INNER possible"));
+			testSuits.put("Creation overlap with another type", tests);
+
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T1, V2, Arrays.asList(new Match(47, 47)), "REPLACE TEMP"));
+			tests.add(new Test(T1, V2, Arrays.asList(new Match(3, 3)), "REPLACE CQP"));
+			testSuits.put("Updating values", tests);
+
+
+			LinkedHashMap<String, ArrayList<Test>> testSuits2 = new LinkedHashMap<String, ArrayList<Test>>();
+			tests = new ArrayList<Test>();
+			tests.add(new Test(T2, V2, Arrays.asList(new Match(7, 7)), "DELETE TEMP"));
+			tests.add(new Test(T1, V2, Arrays.asList(new Match(3, 3)), "DELETE CQP #del"));
+			testSuits2.put("Updating values", tests);
+
+			System.out.println("============== Create&Update ==============");
+			for (String suit : testSuits.keySet()) {
+				tests = testSuits.get(suit);
+				System.out.println("======== "+suit+" ========");
+				for (Test test : tests) {
+					System.out.println("Test "+test);
+					annotsOverlapped = am.createAnnotations(test.type, test.value, test.matches, null); //Annotation on three words : "cela va marcher"
+					System.out.println("--> "+test.comment+" for "+test.value+" at "+test.matches+" ? colision = "+annotsOverlapped);
+					am.checkData();
+				}
+			}
+
+			System.out.println("============== Deleting ==============");
+			for (String suit : testSuits2.keySet()) {
+				tests = testSuits2.get(suit);
+				for (Test test : tests) {
+					System.out.println(test.comment+test.type+" at "+test.matches);
+					am.deleteAnnotations(test.type, test.matches, null);
+					am.checkData();
+				}
+			}
+
+			System.out.println("============== CLean all ==============");
+			am.getTemporaryManager().deleteAnnotations();
+		} catch (Exception e) {
+			// TODO Bloc catch généré automatiquement
+			e.printStackTrace();
+		}
+	}
+
+	public static void checkingJPAManager(KnowledgeRepository kr, MainCorpus c, AnnotationManager am){
+
+		TemporaryAnnotationManager jpamanager = am.getTemporaryManager();
+		try {
+			List<Annotation> annotsOverlapped;
+			AnnotationType T1 = kr.getType("T1");
+			AnnotationType T2 = kr.getType("T2");
+
+			if (T1 == null || T2 == null) {
+				System.out.println("Annotation types are NULL !!!");
+				return;
+			}
+
+			TypedValue val1 = kr.getValue(T1, "V1");
+			TypedValue val2 = kr.getValue(T1, "V2");
+			TypedValue val3 = kr.getValue(T1, "V3");
+			TypedValue val4 = kr.getValue(T1, "V4");
+
+			TypedValue val5 = kr.getValue(T2, "V5");
+			TypedValue val6 = kr.getValue(T2, "V6");
+			TypedValue val7 = kr.getValue(T2, "V7");
+			TypedValue val8 = kr.getValue(T2, "V8");
+
+			TypedValue val9 = kr.getValue(T1, "V9");
+
+			if(val1!= null && val2!=null && val3!=null && val4!= null && 
+					val5!=null && val6!=null && val7!= null && val8!=null) {
+				//OK
+				System.out.println("============== Creation with no overlap ==============");
+				annotsOverlapped = jpamanager.createAnnotation(T1, val1, 3, 3); //Annotation on one word : "annoter"
+				System.out.println("No overlap for [val1] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T1, val2, 10, 12); //Annotation on three words : "cela va marcher"
+				System.out.println("No overlap for [val2] ? colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+
+				//ECHEC normalement car OVERLAP sur même type
+				//OVERLAP CASE with same type (on start with val2) => not authorized
+				System.out.println("");
+				System.out.println("============== Creation overlap with same type ==============");
+				annotsOverlapped = jpamanager.createAnnotation(T1, val3, 9, 12); //Annotation on three words : "si cela va marcher"
+				System.out.println("ON START impossible [val3:9-12], colision = "+annotsOverlapped);
+				jpamanager.checkData();
+				//OVERLAP CASE with same type (on end with val2) => not authorized
+				annotsOverlapped = jpamanager.createAnnotation(T1, val3, 12, 13); //Annotation on two words : "marcher mais"
+				System.out.println("ON END impossible [val3:12-13], colision = "+annotsOverlapped);
+				//OVERLAP CASE with same type (outterwrap with val2) => not authorized
+				annotsOverlapped = jpamanager.createAnnotation(T1, val3, 9, 13); //Annotation on five words : "si cela va marcher mais"
+				System.out.println("OUTTER impossible [val3:9-13], colision = "+annotsOverlapped);
+				//OVERLAP CASE with same type (innerwrap with val2) => not authorized
+				annotsOverlapped = jpamanager.createAnnotation(T1, val3, 11, 11); //Annotation on one words : "va"
+				System.out.println("INNER impossible [val3:11], colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+
+				//OK 
+				annotsOverlapped = jpamanager.createAnnotation(T1, val3, 23, 24); //Annotation on two words : ??
+				System.out.println("No overlap for [val3] ? colision = "+annotsOverlapped);
+				annotsOverlapped = jpamanager.createAnnotation(T1, val4, 45, 50);//Annotation on six words : "annotations seront bien prises en compte"
+				System.out.println("No overlap for [val4] ? colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+
+				System.out.println("");
+				System.out.println("============== Creation overlap with another type =============");
+				//OVERLAP CASE with another type (on start with val2:10-12) => not authorized
+				annotsOverlapped = jpamanager.createAnnotation(T2, val4, 9, 11); //Annotation on three words : "si cela va"
+				System.out.println("ON START impossible with [val2:10-12], for [val4:9-11], colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+
+				//OVERLAP CASE with another type (on end with val1) => should be fine 
+				annotsOverlapped = jpamanager.createAnnotation(T2, val5, 11, 14); //Annotation on three words : "annoter et je"
+				System.out.println("ON END impossible with [val2:10-12], for [val5:11-14], colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+				//OVERLAP CASE with another type (outterwrap with val3) => should be fine 
+				annotsOverlapped = jpamanager.createAnnotation(T2, val6, 22, 26); //Annotation on five words : "est pas trop difficile, car"
+				System.out.println("OUTTER possible with [val3:23-24], for [val6:22-26], colision = "+annotsOverlapped);
+
+				jpamanager.checkData();
+				//OVERLAP CASE with another type (innerwrap with val4) => should be fine 
+				annotsOverlapped = jpamanager.createAnnotation(T2, val7, 47, 47); //Annotation on one word : "bien"
+				System.out.println("INNER possible with [val4:45-50], for [val7:47], colision = "+annotsOverlapped);
+				jpamanager.checkData();
+
+
+				///////////////////// UPDATE ///////////////////////////
+				System.out.println("");
+				System.out.println("============== Updating ==============");
+				//UPDATE val10, need to have the same startPos and endPos and refType
+				List<Annotation> annots = jpamanager.getAnnotations(T1, 23, 25);
+				System.out.println("Annot BEFORE UPDATING : "+annots.size());
+				annotsOverlapped = jpamanager.createAnnotation(T1, val9, 23, 25); 
+				annots = jpamanager.getAnnotations(T1, 23, 25);
+				for(Annotation annot : annots){
+					System.out.println("Annot AFTER UPDATING : "+annot.toString());
+				}
+
+				//DELETE val8
+				System.out.println("");
+				System.out.println("============== Deleting ==============");
+				annotsOverlapped = jpamanager.createAnnotation(T2, val8, 17, 19); //Annotation on three words : "En même temps"
+				System.out.println("creating [val8] ? overlap colision = "+annotsOverlapped);
+
+				annots = jpamanager.getAnnotations(T2, 17, 19);
+				for(Annotation annot : annots){
+					System.out.println("Annot BEFORE DELETING : "+annot);
+				}
+
+				jpamanager.deleteAnnotation(T2, 17, 19); 
+				annots = jpamanager.getAnnotations(T2, 17, 19);
+				System.out.println("Annot AFTER DELETING : "+annots.size());
+
+				jpamanager.deleteAnnotations();
+
+			}else {
+				System.out.println("Valued Types are NULL !!!");
+			}
+
+		} catch (Exception e) {
+			// TODO Bloc catch généré automatiquement
+			e.printStackTrace();
+		}
+	}
+
+	public static class TestCQP {
+		public int start;
+		public int end;
+		public TestCQP(int start, int end) {
+			this.start = start;
+			this.end = end;
+		}
+
+		public String toString() { return "["+start+", "+end+"]"; }
+	}
+
+	private static void checkingCQPManager(KnowledgeRepository kr, MainCorpus c, AnnotationManager am) {
+		CQPAnnotationManager cqpmanager = am.getCQPManager();
+
+		try {
+			List<Annotation> annotsOverlapped;
+			List<AnnotationType> types = kr.getAllAnnotationTypes();
+			for (AnnotationType type : types) {
+				List<Annotation> annotations = cqpmanager.getAnnotations(type);
+				System.out.println(type.getId()+" : "+annotations.size());
+				for(Annotation a : annotations){
+					System.out.println("\t"+a.toString());
+				}
+			}
+
+			ArrayList<TestCQP> tests = new ArrayList<TestCQP>();
+
+			tests.add(new TestCQP(2,2));
+			tests.add(new TestCQP(4,4));
+			tests.add(new TestCQP(3,3));
+			tests.add(new TestCQP(2,3));
+			tests.add(new TestCQP(3,4));
+			tests.add(new TestCQP(2,5));
+
+			ArrayList<TestCQP> tests2 = new ArrayList<TestCQP>();
+			tests2.add(new TestCQP(9,9));
+			tests2.add(new TestCQP(13,13));
+			tests2.add(new TestCQP(11,11));
+			tests2.add(new TestCQP(10,11));
+			tests2.add(new TestCQP(11,12));
+			tests2.add(new TestCQP(9,10));
+			tests2.add(new TestCQP(9,11));
+			tests2.add(new TestCQP(12,14));
+			tests2.add(new TestCQP(9,10));
+			tests2.add(new TestCQP(9,13));
+
+			System.out.println("============== Get overlapping of annotations for a type ==============");
+			System.out.println(tests);
+			types = kr.getAllAnnotationTypes();
+			for (AnnotationType type : types) {
+				for (TestCQP  match : tests) {
+					annotsOverlapped = cqpmanager.getAnnotations(type, match.start, match.end, true);//jpamanager.createAnnotation(T1, val4, 3, 3); 
+					System.out.println("Overlaps for "+type+" at "+match+" ? "+annotsOverlapped);
+				}
+			}
+
+			System.out.println("============== Get overlapping of annotations for a type ==============");
+			System.out.println(tests2);
+			types = kr.getAllAnnotationTypes();
+			for (AnnotationType type : types) {
+				for (TestCQP match : tests2) {
+					annotsOverlapped = cqpmanager.getAnnotations(type, match.start, match.end, true);//jpamanager.createAnnotation(T1, val4, 3, 3); 
+					System.out.println("Overlaps for "+type+" at "+match+" ? "+annotsOverlapped);
+				}
+			}
+
+			System.out.println("============== Get ALL overlapping annotations of annotations ==============");
+			System.out.println(tests);
+
+			for (TestCQP  match : tests) {
+				annotsOverlapped = cqpmanager.getAnnotations(null, match.start, match.end, true);//jpamanager.createAnnotation(T1, val4, 3, 3); 
+				System.out.println("Overlaps at "+match+" ? "+annotsOverlapped);
+			}
+
+			System.out.println("============== Get ALL overlapping annotations of annotations==============");
+			System.out.println(tests2);
+
+			for (TestCQP  match : tests2) {
+				annotsOverlapped = cqpmanager.getAnnotations(null, match.start, match.end, true);//jpamanager.createAnnotation(T1, val4, 3, 3); 
+				System.out.println("Overlaps at "+match+" ? "+annotsOverlapped);
+			}
+
+		} catch (Exception e) {
+			// TODO Bloc catch généré automatiquement
+			e.printStackTrace();
+		}
+	}
+
+	public static void main(String [] args){
+
+		try {
+
+			MainCorpus c = CorpusManager.getCorpusManager().getCorpus("ANNOTATION");	
+			if (c == null) return;
+			InitializeKnowledgeRepository.get(c);
+			KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository("localkrfortesting", c);
+			AnnotationManager am = c.getAnnotationManager();
+
+			for (String test : args) {
+				System.out.println("******************** *** ********************");
+				System.out.println("******************** "+test+" ********************");
+				System.out.println("******************** *** ********************");
+				if (test.matches("JPA")) {
+					checkingJPAManager(kr, c, am);
+				} else if (test.matches("CQP")) {
+					checkingCQPManager(kr, c, am);
+				} else if (test.matches("ALL")) {
+					checkingAnnotationManager(kr, c, am);
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/tests/AnnotationLookUp.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/BaseAdapterFactory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/BaseAdapterFactory.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/BaseAdapterFactory.java	(revision 122)
@@ -0,0 +1,30 @@
+// Copyright © 2010-2013 ENS de Lyon.
+package org.txm.rcp.adapters;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+
+/**
+ * A factory for creating Adapter objects.
+ * Adapters are used to define icon and label in the tree of the corpor view.
+ * 
+ * @author mdecorde
+ * @author sjacquot
+ */
+public abstract class BaseAdapterFactory implements IAdapterFactory {
+
+
+	/**
+	 * Gets the adapter list.
+	 *
+	 * @return the adapter list
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Class[] getAdapterList() {
+		return new Class[] { IWorkbenchAdapter.class};
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/BaseAdapterFactory.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java	(revision 122)
@@ -0,0 +1,123 @@
+/**
+ * 
+ */
+package org.txm.rcp.editors;
+
+import org.eclipse.jface.action.ToolBarManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.ui.menus.IMenuService;
+import org.eclipse.ui.part.EditorPart;
+
+/**
+ * Base TXM <code>EditorPart</code>.
+ * 
+ * @author sjacquot
+ *
+ */
+public abstract class TXMEditorPart extends EditorPart {
+
+	
+	//protected Composite toolBarsComposite;
+	
+	/**
+	 * 
+	 */
+	public TXMEditorPart() {
+		// TODO Auto-generated constructor stub
+	}
+
+
+
+	@Override
+	public void createPartControl(Composite parent) {
+		
+		
+//		//FillLayout mainLayout = new FillLayout(SWT.VERTICAL);
+////		mainLayout.marginTop = 3;
+////		mainLayout.marginLeft = 0;
+////		mainLayout.spacing = 3;
+//		//parent.setLayout(mainLayout);
+//
+//		FormLayout mainLayout = new FormLayout();
+//		mainLayout.marginTop = 3;
+//		mainLayout.marginLeft = 0;
+//		mainLayout.spacing = 3;
+//		parent.setLayout(mainLayout);
+//
+//		
+////		parent.setLayout(new RowLayout(SWT.VERTICAL));
+//		
+////		RowLayout mainLayout = new RowLayout(SWT.VERTICAL);
+////		//FillLayout fillLayout = new FillLayout();
+//////		mainLayout.marginTop = 3;
+//////		mainLayout.marginLeft = 0;
+////		parent.setLayout(mainLayout);
+//
+//		toolBarsComposite = new Composite(parent, SWT.NONE);
+//
+//		//toolBarsComposite.setLayoutData(new FormData());
+//		
+//		
+//		toolBarsComposite.setLayout(new FillLayout());
+		
+		
+		// FIXME: parameter tool bar tests
+//		ExpandBar bar = new ExpandBar(parent, SWT.FLAT);
+//		Composite composite = new Composite(bar, SWT.NONE);
+//		FillLayout layout = new FillLayout();
+////		    layout.marginLeft = layout.marginTop = layout.marginRight = layout.marginBottom = 10;
+////		    layout.verticalSpacing = 10;
+//		    composite.setLayout(layout);
+//		    
+//		    composite.setSize(500, 500);
+//		    
+//		ToolBar toolBar = new ToolBar(composite, SWT.FLAT);
+//
+////		 Button button = new Button(toolBar, SWT.PUSH);
+////		    button.setText("SWT.PUSH");
+////		    button = new Button(toolBar, SWT.RADIO);
+////		    button.setText("SWT.RADIO");
+////		    button = new Button(toolBar, SWT.CHECK);
+////		    button.setText("SWT.CHECK");
+////		    button = new Button(toolBar, SWT.TOGGLE);
+////		    button.setText("SWT.TOGGLE");
+//		
+//		ToolBarManager manager = new ToolBarManager(toolBar);
+//		IMenuService menuService = (IMenuService) this.getSite().getService(IMenuService.class);
+//		menuService.populateContributionManager(manager, "toolbar:EditorParametersToolBar"); //$NON-NLS-1$
+//
+//		
+//		ExpandItem item = new ExpandItem(bar, SWT.NONE);
+//		item.setText("item 1");
+//		item.setControl(composite);
+//		
+//		//item.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
+//		item.setHeight(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
+		
+	
+//		ToolBar toolBar = new ToolBar(toolBarsComposite, SWT.FLAT);
+//		ToolBarManager manager = new ToolBarManager(toolBar);
+//		IMenuService menuService = (IMenuService) this.getSite().getService(IMenuService.class);
+//		menuService.populateContributionManager(manager, "toolbar:EditorParametersToolBar"); //$NON-NLS-1$
+		
+		
+	}
+	
+	
+	@Override
+	public void setPartName(String partName) {
+		super.setPartName(partName);
+	}
+
+	
+    @Override
+	protected void setContentDescription(String description) {
+        super.setContentDescription(description);
+    }
+	
+	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorPart.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java	(revision 122)
@@ -0,0 +1,20 @@
+package org.txm.rcp.testers;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+
+public class ExpertEnabled extends PropertyTester {
+
+	public static final String PROPERTY_NAMESPACE = "org.txm.rcp.testers"; //$NON-NLS-1$
+	public static final String PROPERTY_EXPERT_ENABLED = "ExpertEnabled";
+	
+	@Override
+	public boolean test(Object receiver, String property, Object[] args,
+			Object expectedValue) {
+
+		boolean expert = TxmPreferences.getBoolean(AdvancePreferencePage.EXPERT_USER);
+		//System.out.println("IS expert enabled: "+expert);
+		return expert;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsCorpusAnnotated.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsCorpusAnnotated.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsCorpusAnnotated.java	(revision 122)
@@ -0,0 +1,33 @@
+package org.txm.rcp.testers;
+
+import java.util.List;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+@SuppressWarnings("unchecked")
+public class IsCorpusAnnotated extends PropertyTester {
+
+	public static final String PROPERTY_NAMESPACE = "org.txm.rcp.testers.annotate"; //$NON-NLS-1$
+	public static final String PROPERTY_CAN_SAVE = "canSave";
+	
+	@Override
+	public boolean test(Object receiver, String property, Object[] args,
+			Object expectedValue) {
+
+		if (receiver instanceof List) {
+			
+			List<Object> list = (List<Object>)receiver;
+			if (list.size() == 0) return false;
+			receiver = list.get(0);
+		}
+		
+		if (receiver instanceof Corpus) {
+			Corpus c = (Corpus) receiver;
+			boolean ret = false;//c.getMainCorpus().needToSaveAnnotations();
+			//System.out.println(" Corpus:"+receiver+" need save: "+ret);
+			return ret;
+		}
+		return false;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsCorpusAnnotated.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsXTZCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsXTZCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsXTZCorpus.java	(revision 122)
@@ -0,0 +1,31 @@
+package org.txm.rcp.testers;
+
+import java.util.List;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+@SuppressWarnings("unchecked")
+public class IsXTZCorpus extends PropertyTester {
+
+	public static final String PROPERTY_NAMESPACE = "org.txm.rcp.testers.corpus"; //$NON-NLS-1$
+	public static final String PROPERTY_CAN_SAVE = "xtzCorpus";
+	
+	@Override
+	public boolean test(Object receiver, String property, Object[] args,
+			Object expectedValue) {
+
+		if (receiver instanceof List) {
+			
+			List<Object> list = (List<Object>)receiver;
+			if (list.size() == 0) return false;
+			receiver = list.get(0);
+		} else if (receiver instanceof Corpus) {
+			Corpus c = (Corpus) receiver;
+			String script = c.getScript();
+			if (script == null) return false;
+			return script.startsWith("xtz");
+		}
+		return false;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/IsXTZCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ToolboxTester.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ToolboxTester.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ToolboxTester.java	(revision 122)
@@ -0,0 +1,36 @@
+package org.txm.rcp.testers;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.txm.Toolbox;
+
+/**
+ * PropertyTester to check Toolbox states
+ * 
+ * @author mdecorde
+ *
+ */
+public class ToolboxTester extends PropertyTester {
+
+	public static final String PROPERTY_NAMESPACE = "org.txm.rcp.testers.engines"; //$NON-NLS-1$
+	
+	public static final String PROPERTY_STATE_ENGINE_READY = "StateEngineReady"; //$NON-NLS-1$
+	public static final String PROPERTY_SEARCH_ENGINE_READY = "SearchEngineReady"; //$NON-NLS-1$
+ 
+	public ToolboxTester() {
+		// TODO Auto-generated constructor stub
+	}
+
+	@Override
+	public boolean test(Object receiver, String property, Object[] args,
+			Object expectedValue) {
+		if (PROPERTY_STATE_ENGINE_READY.equals(property)) {
+			System.out.println("TEST: "+property+" = "+Toolbox.isStatEngineInitialized()); //$NON-NLS-1$ //$NON-NLS-2$
+			return Toolbox.isStatEngineInitialized();
+		} else if (PROPERTY_SEARCH_ENGINE_READY.equals(property)) {
+			System.out.println("TEST: "+property+" = "+Toolbox.isSearchEngineInitialized()); //$NON-NLS-1$ //$NON-NLS-2$
+			return Toolbox.isSearchEngineInitialized();
+		}
+		
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ToolboxTester.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchWindowAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchWindowAdvisor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchWindowAdvisor.java	(revision 122)
@@ -0,0 +1,167 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.Iterator;
+
+import org.eclipse.e4.ui.model.application.ui.SideValue;
+import org.eclipse.e4.ui.model.application.ui.basic.MTrimBar;
+import org.eclipse.e4.ui.model.application.ui.basic.MTrimElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MTrimmedWindow;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.model.application.ui.menu.MToolControl;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+import org.eclipse.ui.internal.WorkbenchWindow;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Configures TXM Windows
+ */
+public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
+
+	/**
+	 * Instantiates a new application workbench window advisor.
+	 *
+	 * @param configurer the configurer
+	 */
+	public ApplicationWorkbenchWindowAdvisor(
+			IWorkbenchWindowConfigurer configurer) {
+		super(configurer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
+	 */
+	@Override
+	public ActionBarAdvisor createActionBarAdvisor(
+			IActionBarConfigurer configurer) {
+		return new ApplicationActionBarAdvisor(configurer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen()
+	 */
+	@Override
+	public void preWindowOpen() {
+		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+		configurer.setShowProgressIndicator(true);
+		configurer.setInitialSize(new Point(1024, 768));
+		configurer.setShowMenuBar(true);
+		configurer.setShowCoolBar(true);
+		configurer.setShowStatusLine(true);
+		configurer.setShowFastViewBars(false);
+		configurer.setShowProgressIndicator(true);
+		configurer.setShowPerspectiveBar(true);
+		configurer.setTitle(Messages.Explorer_3);
+
+		// This is a patch to remove the Quick Search Field and spacers from the Main toolbar
+		Log.warning(Messages.ApplicationWorkbenchWindowAdvisor_0);
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		if (window instanceof WorkbenchWindow) {
+			MWindow model = ((WorkbenchWindow) window).getModel();
+			EModelService modelService = model.getContext().get(
+					EModelService.class);
+
+			MTrimBar trimBar = modelService.getTrim((MTrimmedWindow) model,
+					SideValue.TOP);
+			Iterator<MTrimElement> it = trimBar.getChildren().iterator();
+			while (it.hasNext()) {
+				MTrimElement next = it.next();
+				//System.out.println("Element: "+next.getElementId());
+				if ("com.none.playActionSet".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("org.eclipse.ui.edit.text.actionSet.annotationNavigation".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("org.eclipse.ui.edit.text.actionSet.navigation".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("org.eclipse.search.searchActionSet".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("org.eclipse.debug.ui.launchActionSet".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("org.eclipse.ui.browser.editor".equals(next.getElementId())) continue; //$NON-NLS-1$
+				// Team
+				//if ("org.eclipse.team.svn.ui.SVNTeamPreferences".equals(next.getElementId())) continue;
+				if ("group.editor".equals(next.getElementId())) continue; //$NON-NLS-1$
+				if ("SearchField".equals(next.getElementId())) continue;
+				//if ("PerspectiveSpacer".equals(next.getElementId())) continue;
+				//if ("Spacer Glue".equals(next.getElementId())) continue;
+				//if ("Search-PS Glue".equals(next.getElementId())) continue;
+				if ("PerspectiveSwitcher".equals(next.getElementId())) continue; //$NON-NLS-1$
+				//System.out.println("DEL Element: "+next.getElementId());
+				if (next instanceof MToolControl)
+					next.setToBeRendered(false);
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#postWindowOpen()
+	 */
+	@Override
+	public void postWindowOpen() {
+		Log.warning(Messages.ApplicationWorkbenchWindowAdvisor_9);
+		StatusLine.set(getWindowConfigurer().getActionBarConfigurer().getStatusLineManager());
+		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+		page.hideActionSet("org.eclipse.ui.edit.text.actionSet.navigation"); //$NON-NLS-1$
+		page.hideActionSet("org.eclipse.ui.edit.text.actionSet.annotationNavigation"); //$NON-NLS-1$
+		page.hideActionSet("org.eclipse.ui.run"); //$NON-NLS-1$
+		//page.hideActionSet("org.eclipse.team.svn.ui.SVNTeamPreferences"); //$NON-NLS-1$
+		// StatusLine.setMessage(Messages.ApplicationWorkbenchWindowAdvisor_statusready);
+
+		IContributionItem[] mItems, mSubItems;
+		IMenuManager mm = getWindowConfigurer ().getActionBarConfigurer ().getMenuManager ();
+		mm.remove("org.eclipse.ui.run");
+//		mItems = mm.getItems ();
+//		for (int i = 0; i < mItems.length; i++)
+//		{
+//			if (mItems[i] instanceof MenuManager)
+//			{
+//				mSubItems = ((MenuManager) mItems[i]).getItems ();
+//				for (int j = 0; j < mSubItems.length; j++)
+//				{
+//					System.out.println("menu : "+mItems[i].getId());
+//					if (mItems[i].getId ().equals ("file"))
+//						((MenuManager) mItems[i]).remove ("org.eclipse.ui.openLocalFile");
+//					else if (mItems[i].getId ().equals ("help"))
+//					{
+//						((MenuManager) mItems[i]).remove ("group.updates");
+//						((MenuManager) mItems[i]).remove ("org.eclipse.update.ui.updateMenu");
+//						((MenuManager) mItems[i]).remove ("org.eclipse.ui.actions.showKeyAssistHandler");
+//					}
+//				}
+//			}
+//		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchWindowAdvisor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru.properties	(revision 122)
@@ -0,0 +1,983 @@
+About_Menu_Label=\u041e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 TXM...
+AdapterFactory_0=** \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435: \u043a\u043e\u0440\u043f\u0443\u0441 {0} \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0438\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u043a\u0435\u0442\u043d\u043e.
+AddBase_1=\u041d\u043e\u0432\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441: {0}.
+AddBase_10=\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 TXM \u0433\u043e\u0442\u043e\u0432\u0430 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e.
+AddBase_16=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044f\u0437\u044b\u043a {0} \u043a\u0430\u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e ''LANG'' \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b <txmcorpus>
+AddBase_17=** \u0424\u0430\u0439\u043b {0} \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d
+AddBase_19=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435
+AddBase_2=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438: {0}.\n\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b.
+AddBase_20=\u041a\u043e\u0440\u043f\u0443\u0441 {0} \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0425\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u0435\u0433\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c?
+AddBase_22=\u0424\u0430\u0439\u043b {0} \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0443 TXM.
+AddBase_23=\u041a\u043e\u0440\u043f\u0443\u0441 {0} \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 ''LANG'' \u043f\u0440\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 <txmcorpus>
+AddBase_24=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 {0}
+AddBase_25=\u041a\u043e\u0440\u043f\u0443\u0441 TXM \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 - \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u0444\u0430\u0439\u043b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c .txm \u0438\u043b\u0438 .zip, \u043b\u0438\u0431\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u0441 \u043f\u0430\u043f\u043a\u0430\u043c\u0438 'html', 'data', 'registry', 'txm'
+AddBase_27=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+AddBase_28=\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+AddBase_29=\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u043e {0} \u0437\u0430 {1}
+AddBase_31=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441: {0}
+AddBase_32=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443
+AddBase_33=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b
+AddBase_34=\u0420\u0430\u0431\u043e\u0447\u0430\u044f \u0441\u0440\u0435\u0434\u0430 TXM \u043d\u0435 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 TXM.
+AddBase_4=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443 (null error).
+AddBase_7=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441.
+AddProject_3=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430
+AdvancePreferencePage_1=\u041f\u0430\u043f\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 TXM
+AdvancePreferencePage_12=\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u0447\u0435\u0442\u0430
+AdvancePreferencePage_13=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439
+AdvancePreferencePage_14=\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u0444\u0430\u0439\u043b
+AdvancePreferencePage_2=\u041f\u0430\u043f\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f TXM
+AdvancePreferencePage_3=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u043d\u0441\u043e\u043b\u0438
+AdvancePreferencePage_4=N/A_Expert user mode
+ApplicationWorkbenchAdvisor_0=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b...
+ApplicationWorkbenchAdvisor_1=\u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b...
+ApplicationWorkbenchAdvisor_11=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432
+ApplicationWorkbenchAdvisor_12=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u044b ''TXMHOME'' \u0437\u0430\u0434\u0430\u043d\u0430 ({0}), \u043d\u043e \u043d\u0435\u0442 \u043f\u0430\u043f\u043a\u0438: 
+ApplicationWorkbenchAdvisor_13=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 TXMHOME : {0}
+ApplicationWorkbenchAdvisor_14=\ \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f:  
+ApplicationWorkbenchAdvisor_16=N/A_Removing old corpus backup directory {0}. 
+ApplicationWorkbenchAdvisor_17=.
+ApplicationWorkbenchAdvisor_18=Corpora already backuped in ''{0}'' : {1} 
+ApplicationWorkbenchAdvisor_19=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b TreeTagger : {0}
+ApplicationWorkbenchAdvisor_2=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u043f\u0446\u0438\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 TXM \u0438\u0437: {0}
+ApplicationWorkbenchAdvisor_20=N/A_\ in 
+ApplicationWorkbenchAdvisor_22=N/A_Processing folder: 
+ApplicationWorkbenchAdvisor_23=\ ...
+ApplicationWorkbenchAdvisor_24=N/A_Failed moving old corpus from 
+ApplicationWorkbenchAdvisor_25=\u0427\u0442\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0439 \u0438\u0437 \u043c\u0435\u0441\u0442\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: {0}
+ApplicationWorkbenchAdvisor_26=N/A_\ to 
+ApplicationWorkbenchAdvisor_27=\u0420\u0430\u0431\u043e\u0447\u0430\u044f \u043f\u0430\u043f\u043a\u0430 TXM \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442. \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u044b?
+ApplicationWorkbenchAdvisor_28=\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043f\u0430\u043f\u043a\u0438...
+ApplicationWorkbenchAdvisor_29=N/A_Error: 
+ApplicationWorkbenchAdvisor_3=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043f\u0430\u043f\u043a\u0438
+ApplicationWorkbenchAdvisor_30=\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432...
+ApplicationWorkbenchAdvisor_31=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e 'default.xml'
+ApplicationWorkbenchAdvisor_32=** TreeTagger \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u044b \u043f\u0443\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.
+ApplicationWorkbenchAdvisor_33=\u041f\u0443\u0442\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a TreeTagger \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u044b \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.
+ApplicationWorkbenchAdvisor_34=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435 \u0443\u0434\u0430\u043b\u0441\u043e\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+ApplicationWorkbenchAdvisor_35=N/A_\nCorpus 
+ApplicationWorkbenchAdvisor_36=\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \ 
+ApplicationWorkbenchAdvisor_37=\ \u0432 
+ApplicationWorkbenchAdvisor_38=\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u043a\u043e\u0440\u043f\u0443\u0441 \u0443\u0436\u0435 \u0431\u044b\u043b \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d.
+ApplicationWorkbenchAdvisor_39=\u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 TXM : {0}
+ApplicationWorkbenchAdvisor_4=\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 TreeTagger
+ApplicationWorkbenchAdvisor_40=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 TXMINSTALL \u0432 TXMHOME: {0}
+ApplicationWorkbenchAdvisor_41=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0434\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438: {0}
+ApplicationWorkbenchAdvisor_42=\ \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 
+ApplicationWorkbenchAdvisor_43=Corpora {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_43_single=Corpus {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_44=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u043a\u043e\u0440\u043f\u0443\u0441 
+ApplicationWorkbenchAdvisor_45=** \u0424\u0430\u0439\u043b \u043d\u0435 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f: {0}
+ApplicationWorkbenchAdvisor_46=N/A_\nCorpus 
+ApplicationWorkbenchAdvisor_47=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u044b:
+ApplicationWorkbenchAdvisor_48=\nCorpus ''{0}'' could not be restored and are moved to ''{1}''.
+ApplicationWorkbenchAdvisor_49=N/A_Initializing the toolbox...
+ApplicationWorkbenchAdvisor_5=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0445\u043e\u0434
+ApplicationWorkbenchAdvisor_51=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430: 
+ApplicationWorkbenchAdvisor_52=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u044b: {0}
+ApplicationWorkbenchAdvisor_53=\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432 \u0438\u0437 
+ApplicationWorkbenchAdvisor_54=\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432 \u0438\u0437 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 TXM 0.5 
+ApplicationWorkbenchAdvisor_55=\ \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 TXM 0.6.
+ApplicationWorkbenchAdvisor_56=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 TXM 0.6
+ApplicationWorkbenchAdvisor_57=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430 0.5 
+ApplicationWorkbenchAdvisor_58=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 0.6 
+ApplicationWorkbenchAdvisor_59=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 
+ApplicationWorkbenchAdvisor_6=\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435: 
+ApplicationWorkbenchAdvisor_60=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043a\u043e\u0440\u043f\u0443\u0441 
+ApplicationWorkbenchAdvisor_61=\ \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u043c TXM 0.6
+ApplicationWorkbenchAdvisor_7=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f TXM.
+ApplicationWorkbenchAdvisor_71=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432.
+ApplicationWorkbenchAdvisor_8=\u041f\u0443\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: {0}
+ApplicationWorkbenchAdvisor_9=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0447\u0442\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u043e\u043f\u0446\u0438\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438
+ApplicationWorkbenchAdvisor_init=\u0417\u0430\u043f\u0443\u0441\u043a {0}...
+ApplicationWorkbenchAdvisor_init_failed=** \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043f\u0440\u0435\u0440\u0432\u0430\u043d. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0442\u0440\u0435\u0433\u0443\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u043e\u043f\u0446\u0438\u0438 (\u0432 \u043c\u0435\u043d\u044e '\u0424\u0430\u0439\u043b>\u041e\u043f\u0446\u0438\u0438')
+ApplicationWorkbenchAdvisor_ready=\u0413\u043e\u0442\u043e\u0432\u043e.
+Application_4=N/A_This file is not meant to run TXM. Please consult TXM user manual.
+Application_6=** \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e 1.6 Java \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u044e\u044e, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c TXM, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043d\u0430 \u044d\u0442\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0432\u0435\u0440\u0441\u0438\u044f Java: {0}
+AssistedQueryWidget_0=Ouvrir l'assistant de requ\u00eates
+BackToText_0=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435
+CAHEditor_0=N/A_Computing CAH
+CAHPreferencePage_0=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0432 2D
+CAHPreferencePage_1=\u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f
+CAHPreferencePage_2=\u0427\u0438\u0441\u043b\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432
+CAHPreferencePage_3=\u041c\u0435\u0442\u043e\u0434
+CAHPreferencePage_4=\u041c\u0435\u0442\u0440\u0438\u043a\u0430
+CANT_CREATE_GRAPHIC=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a
+CAPreferencePage_0=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e
+CAPreferencePage_1=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0412\u043a\u043b\u0430\u0434
+CAPreferencePage_3=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430
+CAPreferencePage_4=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430
+CAPreferencePage_5=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u041c\u0430\u0441\u0441\u0430
+CAPreferencePage_6=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0414\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f
+CAPreferencePage_7=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 Cos\u00b2
+CAPreferencePage_8=\u0424\u043e\u0440\u043c\u0430\u0442 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 Coord
+CQPPreferenceInitializer_0=localhost
+CQPPreferenceInitializer_1=anonymous
+CQPPreferencePage_0=N/A_CQPlib path
+CQPPreferencePage_1=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b
+CQPPreferencePage_10=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 &\u0441\u0435\u0440\u0432\u0435\u0440 CWB
+CQPPreferencePage_11=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440: &\u0438\u043c\u044f \u043c\u0430\u0448\u0438\u043d\u044b
+CQPPreferencePage_12=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440: &\u043d\u043e\u043c\u0435\u0440 \u043f\u043e\u0440\u0442\u0430
+CQPPreferencePage_13=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440: &\u043b\u043e\u0433\u0438\u043d
+CQPPreferencePage_14=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440: &\u043f\u0430\u0440\u043e\u043b\u044c
+CQPPreferencePage_15=\u041f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 &\u0444\u0430\u0439\u043b\u0443 'cqpserver'
+CQPPreferencePage_16=\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 &\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 CWB
+CQPPreferencePage_17=\u041f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 CWB
+CQPPreferencePage_18=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 CWB: 
+Cannot_ask_simple_when_advance=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0443 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u043f\u0446\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u044b\u0431\u0440\u0430\u043b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u0439
+ColRowInfosLabelProvider_19=Qual
+ColRowInfosLabelProvider_9=\u03C7\u00b2
+ColsRowsInfosEditor_0=\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439 \u0432\u0432\u043e\u0434
+ColsRowsInfosEditor_2=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: {0}
+Commands_0=\u041e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b
+ComplexSortSelector_0=\u041a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438:
+ComplexSortSelector_1=\u041c\u0443\u043b\u044c\u0442\u0438-\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430
+ComplexSortSelector_2=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430
+ComplexSortSelector_5=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435: {0}
+ComplexSortSelector_6=\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
+ComplexSort_0=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+ComplexSort_1=&\u0421\u043b\u043e\u0436\u043d\u0430\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430
+ComplexSort_10=\u041d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 \u0431\u043b\u043e\u043a \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f
+ComplexSort_11=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0434\u0432\u0443\u0445 \u0431\u043b\u043e\u043a\u043e\u0432 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f
+ComplexSort_12=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c\u0443
+ComplexSort_14=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e
+ComplexSort_16=\u041f\u043e\u0434\u043d\u044f\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d \u0443\u0440\u043e\u0432\u0435\u043d\u044c
+ComplexSort_18=\u041e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0434\u0438\u043d \u0443\u0440\u043e\u0432\u0435\u043d\u044c
+ComplexSort_2=\u0417\u0430\u0434\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443
+ComplexSort_3=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443
+ComplexSort_4=&\u041d\u043e\u0432\u044b\u0439
+ComplexSort_5=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+ComplexSort_6=\u0418\u043c\u044f: 
+ComplexSort_9=\u041f\u043e\u043b\u0435 \u0418\u043c\u044f \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e.
+ComplexSubcorpusPanel_0=\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u044c
+ComplexSubcorpusPanel_1=\u0412\u0441\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438
+ComplexSubcorpusPanel_16=\u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442
+ComplexSubcorpusPanel_2=\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0438
+ComplexSubcorpusPanel_4=\u0417\u0430\u043f\u0440\u043e\u0441 
+ComplexSubcorpusPanel_5=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c
+ComputeCAH_0=\u0420\u0430\u0441\u0447\u0435\u0442 \u041a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 {0}
+ComputeCAH_1=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a
+ComputeCAH_2=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b
+ComputeCAH_3=\u0420\u0430\u0441\u0447\u0435\u0442 \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 
+ComputeClassification_5=\u041a\u043e\u043b\u043e\u043d\u043a\u0438
+ComputeClassification_6=\u0421\u0442\u0440\u043e\u0447\u043a\u0438
+ComputeConcordance_0=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043e\u043a\u043d\u0430 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u0430
+ComputeConcordance_1=N/A_Failed to open concordance editor.
+ComputeCoocFromLines_0=\u0418\u0434\u0435\u0442 \u0440\u0430\u0441\u0447\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+ComputeCoocFromLines_1=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+ComputeCoocMatrix_0=N/A_Cooc matrix: 
+ComputeCoocMatrix_1=N/A_Number of nodes: 
+ComputeCoocMatrix_10=N/A_Distance
+ComputeCoocMatrix_11=N/A_Minimal co frequence
+ComputeCoocMatrix_12=N/A_Outfile : none
+ComputeCoocMatrix_13=N/A_Choose outfile
+ComputeCoocMatrix_2=N/A_Number of edges: 
+ComputeCoocMatrix_3=N/A_Distance: 
+ComputeCoocMatrix_4=N/A_Writing cooc matrix in GRAPHML file: 
+ComputeCoocMatrix_5=N/A_\"
+ComputeCoocMatrix_7=N/A_CoocMatrix parameters
+ComputeCooccurrences_0=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+ComputeCooccurrences_1=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0432 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438
+ComputeCorrespondanceAnalysisDialog_0=\u0424\u0430\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 {0}
+ComputeCorrespondanceAnalysisDialog_1=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430: 
+ComputeCorrespondanceAnalysisDialog_2=\u0427\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a:
+ComputeCorrespondanceAnalysis_0=\u0420\u0430\u0441\u0447\u0435\u0442 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439
+ComputeCorrespondanceAnalysis_1=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043c\u0435\u043d\u0435\u0435 4-\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435
+ComputeCorrespondanceAnalysis_13=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043c\u0435\u043d\u0435\u0435 4-\u0445 \u043a\u043e\u043b\u043e\u043d\u043e\u043a
+ComputeCorrespondanceAnalysis_14=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439
+ComputeCorrespondanceAnalysis_15=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u043a\u043d\u0430 \u0424\u0410\u0421
+ComputeCorrespondanceAnalysis_16=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043b\u044f \u0424\u0410\u0421
+ComputeCorrespondanceAnalysis_17=\u0420\u0430\u0441\u0447\u0435\u0442 \u0424\u0410\u0421
+ComputeCorrespondanceAnalysis_3=** \u041e\u0448\u0438\u0431\u043a\u0430
+ComputeCorrespondanceAnalysis_4=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e 
+ComputeCorrespondanceAnalysis_6=\u041e\u041a
+ComputeCorrespondanceAnalysis_8=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430
+ComputeFrequencyList_2=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0438\u0441\u043a\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 {0} \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {1}
+ComputeIndexFromLines_0=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0418\u043d\u0434\u0435\u043a\u0441 \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0438
+ComputeLexicalTable_0=\u0421\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b {0}
+ComputeLexicalTable_1=\u0421\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b {0} \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c {1}
+ComputeLexicalTable_10=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b
+ComputeLexicalTable_12=\u0423\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0432 \u0438\u043d\u0434\u0435\u043a\u0441\u0435
+ComputeLexicalTable_13=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043e\u0432
+ComputeLexicalTable_16=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f
+ComputeLexicalTable_2=N/A_no property
+ComputeLexicalTable_3=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043f\u0440\u0435\u0434\u0435\u043b\u043e\u0432
+ComputeLexicalTable_5=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0418\u043d\u0434\u0435\u043a\u0441\u0430, \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u0435
+ComputeLexicalTable_6=** \u0421\u043f\u0438\u0441\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432: {0}
+ComputeLexicalTable_7=\u0421\u043f\u0438\u0441\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435: {0}
+ComputeLexicalTable_9=** \u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b: \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u0440\u043f\u0443\u0441\u0430. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 {0}
+ComputeReferencer_0=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0421\u0441\u044b\u043b\u043e\u043a
+ComputeProgression_0=\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0430 \u043f\u0440\u0435\u0440\u044b\u0432\u043d\u044b\u0445 \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430\u0445.
+ComputeProgression_1=N/A_Failed to get last CQP error: 
+ComputeProgression_10=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0438
+ComputeProgression_12=\u0413\u043e\u0442\u043e\u0432\u043e: \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e {0} \u043f\u043e\u0437\u0438\u0446\u0438\u0439
+ComputeProgression_13=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044e: {0}
+ComputeProgression_2=\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0438 <{0}> \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {1}
+ComputeProgression_3=N/A_Done: no match found.
+ComputeProgression_4=\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0438 {0} \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443: {1}, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: {2}, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e: {3}, \u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c: {4}
+ComputeProgression_9=** {0} \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438
+ComputeSpecificitiesDialog_0=** \u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e ''\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438'' - {0}
+ComputeSpecificitiesDialog_1=** \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0438: {0}
+ComputeSpecificitiesDialog_3=\u0424\u043e\u043a\u0443\u0441:
+ComputeSpecificitiesDialog_4=\u0424\u043e\u043a\u0443\u0441 \u0447\u0430\u0441\u0442\u0438:
+ComputeSpecificitiesDialog_9=\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0434\u043b\u044f \u0447\u0430\u0441\u0442\u0438
+ComputeSpecificities_0=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438
+ComputeSpecificities_2=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438 {0}, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e {1} 
+ComputeSpecifities_10=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438
+ComputeSpecifities_11=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 {0}
+ComputeSpecifities_2=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432...
+ComputeSpecifities_3=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438 \u0432 \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0435 {0} \u043a\u043e\u0440\u043f\u0443\u0441\u0430 {1}, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e {2}
+ComputeIndex_0=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0418\u043d\u0434\u0435\u043a\u0441\u0430
+Compute_Specificities=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438
+ConcordancerPreferencePage_3=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u043e\u0432
+ConcordancerPreferencePage_4=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043d\u0430 &\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0435 : 
+ConcordancerPreferencePage_5=&\u041b\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0432 \u0441\u043b\u043e\u0432\u0430\u0445)
+ConcordancerPreferencePage_6=&\u041f\u0440\u0430\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0432 \u0441\u043b\u043e\u0432\u0430\u0445)
+ConcordancesEditorContributor_0=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441
+ConcordancesEditor_0=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 CQi : 
+ConcordancesEditor_1=\u0421\u0441\u044b\u043b\u043a\u0430
+ConcordancesEditor_11=|<
+ConcordancesEditor_12=<
+ConcordancesEditor_13=>
+ConcordancesEditor_14=>|
+ConcordancesEditor_16=&\u041c\u043e\u0442\u0438\u0432: 
+ConcordancesEditor_18=&\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c
+ConcordancesEditor_19={0} \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439
+ConcordancesEditor_2=\u041b\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442
+ConcordancesEditor_20=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0441\u0442\u0440\u043e\u043a\u0435...
+ConcordancesEditor_26=\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 {0} \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 {1} \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0435\u043a\u0441\u0442\u0430 {2}
+ConcordancesEditor_27=\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u043a \u0442\u0435\u043a\u0441\u0442\u0443: \u0442\u0435\u043a\u0441\u0442 {0} \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442
+ConcordancesEditor_29=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430... \u0434\u043b\u044f 
+ConcordancesEditor_3=\u041c\u043e\u0442\u0438\u0432
+ConcordancesEditor_30=\u0412\u043e\u0437\u0432\u0440\u0430\u0442 \u043a \u0442\u0435\u043a\u0441\u0442\u0443: \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e
+ConcordancesEditor_34=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u0430
+ConcordancesEditor_37=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0441\u044b\u043b\u043e\u043a
+ConcordancesEditor_38=\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b
+ConcordancesEditor_39=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b
+ConcordancesEditor_4=\u041f\u0440\u0430\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442
+ConcordancesEditor_41=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043b\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430
+ConcordancesEditor_43=\u041a\u043e\u0440\u043f\u0443\u0441 {0} \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e: {1}
+ConcordancesEditor_45=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043c\u043e\u0442\u0438\u0432\u0430
+ConcordancesEditor_46=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0442\u0435\u043a\u0441\u0442\u0435: {0}
+ConcordancesEditor_48=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430
+ConcordancesEditor_5=\u041a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441 \u043c\u043e\u0442\u0438\u0432\u0430 <{0}> \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {1}
+ConcordancesEditor_50=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u044f
+ConcordancesEditor_52=\u0413\u043e\u0442\u043e\u0432\u043e: \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442
+ConcordancesEditor_55=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432
+ConcordancesEditor_56=\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u043e\u0432
+ConcordancesEditor_6=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430...
+ConcordancesEditor_7=N/A_Failed to get last CQP error: 
+ConcordancesEditor_8=N/A_The corpus has no text_id property
+ConvertCorpus_0=N/A_Corpus conversion failed.
+CoocPreferencePage_0=\u0424\u043e\u0440\u043c\u0430\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 0.0000E00)
+CoocPreferencePage_1=\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439
+CoocPreferencePage_11=\u041c\u0438\u043d\u0438\u043c\u0443\u043c \u0441\u043f\u0440\u0430\u0432\u0430
+CoocPreferencePage_12=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u043f\u0440\u0430\u0432\u0430
+CoocPreferencePage_2=\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+CoocPreferencePage_3=\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u0440\u043e\u0433 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+CoocPreferencePage_4=\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0441\u043b\u0435\u0432\u0430
+CoocPreferencePage_5=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c
+CoocPreferencePage_6=\u041c\u0438\u043d\u0438\u043c\u0443\u043c \u0441\u043b\u0435\u0432\u0430
+CoocPreferencePage_8=N/A_Use partial lexical table
+CooccurrencesEditor_0=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e: {0}
+CooccurrencesEditor_10=\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u044c
+CooccurrencesEditor_11=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0443 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0442\u043e\u0447\u043a\u0438
+CooccurrencesEditor_12=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438 {0}
+CooccurrencesEditor_13=\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+CooccurrencesEditor_14=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+CooccurrencesEditor_15=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432
+CooccurrencesEditor_16=** \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0432
+CooccurrencesEditor_17=\u0418\u043d\u0434\u0435\u043a\u0441
+CooccurrencesEditor_18=\u041f\u043e\u0440\u043e\u0433 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c, \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u043e\u0442 {0}
+CooccurrencesEditor_2=\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044c
+CooccurrencesEditor_20=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438  <{0}> \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {1}
+CooccurrencesEditor_23=\u0413\u043e\u0442\u043e\u0432\u043e: \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.
+CooccurrencesEditor_24=\u0413\u043e\u0442\u043e\u0432\u043e: \u043e\u0434\u0438\u043d \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.
+CooccurrencesEditor_27=\u0420\u0430\u0441\u0447\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441\u0430
+CooccurrencesEditor_28=\u0420\u0430\u0441\u0447\u0435\u0442 \u043e\u0442\u0432\u0435\u0442\u043e\u0432
+CooccurrencesEditor_29=\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u043a \u0441\u0442\u0440\u043e\u043a\u0430\u043c
+CooccurrencesEditor_3=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439: 
+CooccurrencesEditor_30=\u041f\u043e\u0434\u0441\u0447\u0435\u0442
+CooccurrencesEditor_31=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b
+CooccurrencesEditor_32=\u0420\u0430\u0441\u0447\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438\t
+CooccurrencesEditor_33=\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+CooccurrencesEditor_34=\u0413\u043e\u0442\u043e\u0432\u043e: {1} \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u044b\u0445 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 {0} \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439 \u043c\u043e\u0442\u0438\u0432\u0430
+CooccurrencesEditor_4=\u041f\u043e\u0440\u043e\u0433\u0438: \u0427\u0430\u0441\u0442 \u2265
+CooccurrencesEditor_5= \u0421\u043e\u0432\u043c-\u0447\u0430\u0441\u0442 \u2265 
+CooccurrencesEditor_6=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u2265 
+CooccurrencesEditor_8=\u041a\u043e\u043e\u043a\u043a\u0443\u0440\u0440\u0435\u043d\u0442
+CooccurrencesEditor_9=\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u0438\u0441\u0442\u0430\u043d\u0446\u0438\u044f
+CorporaView_0=\u041a\u043e\u0440\u043f\u0443\u0441
+CorporaView_1=** \u041e\u0448\u0438\u0431\u043a\u0430: {0}
+CorporaView_2=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440\u044b \u043a\u043e\u0440\u043f\u0443\u0441\u0430 {0}
+CorporaView_3=** \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u0430
+CorporaView_4=N/A_CoocMatrix symbol is: 
+CorporaView_5=** \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438
+CorporaView_6=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e \u041c\u0430\u0441\u0442\u0435\u0440\u0430 \u0441\u0441\u044b\u043b\u043e\u043a\t
+CorporaView_7=** \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b
+CorporaView_9=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0432\u0435\u0441\u0442\u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 {0}
+CorpusPage_0=\u0418\u0437\u0434\u0430\u043d\u0438\u044f
+CorpusPage_1=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0437\u0434\u0430\u043d\u0438\u0435
+CorpusPage_10=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043b\u043e\u0432\u0430
+CorpusPage_11=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+CorpusPage_12=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b
+CorpusPage_13=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+CorpusPage_14=\u041f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
+CorpusPage_15=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+CorpusPage_16=N/A_caract�res de ponctuations s�parateurs
+CorpusPage_17=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+CorpusPage_18=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435
+CorpusPage_19=N/A_caract�res d'ellision
+CorpusPage_2=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437\u0434\u0430\u043d\u0438\u0435
+CorpusPage_20=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435
+CorpusPage_21=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441
+CorpusPage_22=N/A_caract�res de fin de phrase
+CorpusPage_23=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441
+CorpusPage_24=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b
+CorpusPage_25=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b
+CorpusPage_26=N/A_Annotate the corpus
+CorpusPage_27=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b
+CorpusPage_28=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0438 \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438
+CorpusPage_29=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440
+CorpusPage_3=\u0428\u0440\u0438\u0444\u0442
+CorpusPage_31=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440
+CorpusPage_32=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u0441\u0442
+CorpusPage_33=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440
+CorpusPage_34=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0435\u0441\u0442
+CorpusPage_35=1.\t\u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a 
+CorpusPage_36= '\u043f\u0430\u043f\u043a\u0430', \u0447\u0442\u043e\u0431\u044b 
+CorpusPage_37=\u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438.
+CorpusPage_38=2.\t\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445.
+CorpusPage_39=3.\t\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 
+CorpusPage_4=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440
+CorpusPage_40=\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0430,
+CorpusPage_41=\ \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u0437\u043d\u0430\u0447\u043e\u043a \u0434\u0438\u0441\u043a\u0435\u0442\u044b: 
+CorpusPage_42=4.\t\u0427\u0442\u043e\u0431\u044b
+CorpusPage_43=\u043d\u0430\u0447\u0430\u0442\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435,
+CorpusPage_44=\ \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0437\u043d\u0430\u0447\u043e\u043a: 
+CorpusPage_45=\u041f\u0418
+CorpusPage_46=\u041f\u0430\u043f\u043a\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438 \u043d\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0430 \u0444\u0430\u0439\u043b 'import.xml'. \u0421\u043e\u0437\u0434\u0430\u043d \u043d\u043e\u0432\u044b\u0439.
+CorpusPage_47=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 'import.xml' 
+CorpusPage_48=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430: 
+CorpusPage_49=N/A_Default
+CorpusPage_5=N/A_caract�res blancs s�parateurs
+CorpusPage_50=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u044f: 
+CorpusPage_51=\u0422\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0438 \u0442\u0435\u0441\u0442\u044b
+CorpusPage_52=\u0421\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438\u043c\u043f\u043e\u0440\u0442\u0430...
+CorpusPage_53=\u0418\u043c\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e
+CorpusPage_54=\u0418\u043c\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0431\u0443\u043a\u0432\u0443
+CorpusPage_55=\u0422\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0438 \u0442\u0435\u0441\u0442\u044b
+CorpusPage_6=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440
+CorpusPage_60=N/A_OK
+CorpusPage_61=Edit XSL stylesheet...
+CorpusPage_65=N/A_Cannot save import configuration. No source folder selected.
+CorpusPage_66=N/A_Cannot start import configuration. No source folder selected.
+CorpusPage_7=\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f
+CorpusPage_8=\u0418\u043c\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430*
+CorpusPage_9=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 - HTML
+CorrespondanceAnalysisEditorInput_0=\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
+CorrespondanceAnalysisEditorInput_1=\u0424\u0430\u043a\u0442. \u043f\u043b\u0430\u043d
+CorrespondanceAnalysisEditorInput_10=\u0424\u0410\u0421
+CorrespondanceAnalysisEditorInput_2=\u0413\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 propres
+CorrespondanceAnalysisEditorInput_26=\u041c\u0430\u0441\u0441\u0430
+CorrespondanceAnalysisEditorInput_27=\u0414\u0438\u0441\u0442
+CorrespondanceAnalysisEditorInput_29=\u041a\u043e\u043d\u0442
+CorrespondanceAnalysisEditorInput_3=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c 
+CorrespondanceAnalysisEditorInput_30=Cos\u00b2
+CorrespondanceAnalysisEditorInput_4=\u0424\u0430\u043a\u0442\u043e\u0440
+CorrespondanceAnalysisEditorInput_8=\u0418\u043d\u0444 \u0421\u0442\u0440\u043e\u0447\u043a\u0438
+CorrespondanceAnalysisEditorInput_9=\u0418\u043d\u0444 \u041a\u043e\u043b\u043e\u043d\u043a\u0438
+CreateFile_1=\u041d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b: {0}
+CreateFolder_1=\u041d\u043e\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430: {0}
+CreateFrequencyList_8=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u0438
+CreateMacro_0=N/A_Macro name
+CreateMacro_1=N/A_Please write the macro name
+CreatePartitionDialog_0=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435
+CreatePartitionDialog_1=\u041f\u0440\u043e\u0441\u0442\u043e\u0435
+CreatePartitionDialog_16=\u0417\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c\u0438
+CreatePartitionDialog_2=&\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: 
+CreatePartitionDialog_3=\u0421 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439
+CreatePartitionDialog_4=\u0421&\u0432\u043e\u0439\u0441\u0442\u0432\u043e: 
+CreatePartitionDialog_5=\u041f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0435
+CreatePartitionDialog_6=&\u0418\u043c\u044f: 
+CreatePartitionDialog_7=&\u0427\u0430\u0441\u0442\u044c 
+CreatePartitionDialog_8=\u041d\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 \u043d\u0438 \u043e\u0434\u043d\u0430 \u0447\u0430\u0441\u0442\u044c
+CreatePartitionDialog_9=\u0418\u043c\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043d\u0435 \u0432\u0432\u043e\u0434\u0438\u043b\u043e\u0441\u044c. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0438\u043c\u044f: {0}
+CreatePartition_0=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u043e {0}
+CreatePartition_2=** \u041e\u0448\u0438\u0431\u043a\u0430: \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043e
+CreatePartition_5=\u0413\u043e\u0442\u043e\u0432\u043e: {0} \u043f\u0443\u043d\u043a\u0442\u043e\u0432 \u043d\u0430 {1} \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439
+CreatePartition_55=N/A_Done: {0} items for {1} occurrences
+CreatePartition_6=\u0413\u043e\u0442\u043e\u0432\u043e: {0} \u0447\u0430\u0441\u0442\u0435\u0439
+CreatePartition_9=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432...
+CreateSubCorpus_0=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441 \u043d\u0435 \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d
+LastCQPError=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430 CQP: 
+CreateSubCorpus_2=N/A_Failed to get last CQP error: 
+CreateSubCorpus_begin=\u041d\u043e\u0432\u044b\u0439 &\u041f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+CreateSubCorpus_create=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u043e\u043a\u043e\u0440\u043f\u0443\u0441 \u0434\u043b\u044f {0}
+CreateSubcorpusDialog_0=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441
+CreateSubcorpusDialog_10=&\u0417\u0430\u043f\u0440\u043e\u0441: 
+CreateSubcorpusDialog_11=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0438\u043c\u044f
+CreateSubcorpusDialog_13=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441
+CreateSubcorpusDialog_14=\u041f\u043e\u043b\u0435 \u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c.
+CreateSubcorpusDialog_6=\u0417\u043d\u0430&\u0447\u0435\u043d\u0438\u0435: 
+CreateSubcorpusDialog_8=\u0418\u043c\u044f \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.
+CreateSubcorpus_7=\u0421\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0434\u043b\u044f {0}, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 {1}, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e {2} : {3}
+CreateSubcorpus_8=\u0413\u043e\u0442\u043e\u0432\u043e : {0} \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d 
+CreateSubcorpus_9=\u0421\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430 \u0434\u043b\u044f {0} \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 <{1}>
+DONE=\u0413\u043e\u0442\u043e\u0432\u043e: {0}
+DefineReferencePattern_0=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f
+DefineReferencePattern_1=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f &\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f
+DefineReferencePattern_2=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f
+DefineReferencePattern_3=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f &\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+DefineReferencePattern_4=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+DefineReferencePattern_5=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+DeleteFile_0=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c 
+DeleteFile_2=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0444\u0430\u0439\u043b 
+DeleteInCorporaView_1=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043a\u043e\u0440\u043f\u0443\u0441\u0430 {0}
+DeleteInCorporaView_2=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f {0}
+DeleteLines_0=\u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u0447\u043a\u0443
+DeleteLines_1=\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?
+DeleteObject_0=\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c {0}?
+DeleteObject_10={0} \u0443\u0434\u0430\u043b\u0435\u043d(\u043e)
+DeleteObject_3=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f
+DeleteObject_4=\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f {0} : {1}
+DeleteObject_5=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 {0}
+DiagnosticPreferencePage_1=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+DiagnosticPreferencePage_2=\u0427\u0438\u0441\u043b\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+DiagnosticPreferencePage_3=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u0438 \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443
+Diagnostique_0=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0435\u0434\u0438\u043d\u0438\u0446\u044b {0}
+Diagnostique_1=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e {0} \u0443\u0436\u0435 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0430. \u0425\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0412\u044b \u0435\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c?
+Diagnostique_10=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445
+Diagnostique_11=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043e\u043a\u043d\u0430
+Diagnostique_2=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0447\u0442\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 *informations* 
+Diagnostique_7=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u043a\u043d\u0430 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439
+Diagnostique_8=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0431\u0449\u0435\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438
+Diagnostique_9=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u044b\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\u0430\u0445
+DictionnaryEditor_1=\u0421\u043b\u043e\u0432\u0430\u0440\u044c:\n\t\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 {0}\n\t\u0417\u0430\u043f\u0440\u043e\u0441 {1}\n\t\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 {2}\n\tFmin {3}\n\tFmax {4}
+DictionnaryEditor_3=\u0421\u043b\u043e\u0432\u0430\u0440\u044c:\n\t\u041a\u043e\u0440\u043f\u0443\u0441 {0}\n\t\u0417\u0430\u043f\u0440\u043e\u0441 {1}\n\t\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 {2}\n\tFmin {3}\n\tFmax {4}
+ERROR_WHILE_LOADING_CONCORDANCE_LINE=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u0430: {0}
+ElementTreeLabelProvider_0=** \u041e\u0448\u0438\u0431\u043a\u0430: \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d 
+ElementTreeLabelProvider_1=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f 'org.w3c.Element'
+EmpantWidget_0=\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442: 
+EmpantWidget_1=\u0444\u043e\u0440\u043c\u0430
+EmpantWidget_2=\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430
+EmpantWidget_3=\u043e\u0442 -
+EmpantWidget_4=\u0434\u043e -
+EmpantWidget_5=\u0438 \u043e\u0442
+EmpantWidget_6=\u0434\u043e
+EmpantWidget_7=\u0432\u043a\u043b\u044e\u0430\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0443\u044e \u043c\u043e\u0442\u0438\u0432
+EmpantWidget_8=\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043b\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442
+EmpantWidget_9=\u0410\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u0440\u0430\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442
+Error_computing_specificities=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438: {0}
+Error_creating_partition=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f: {0}
+ExecuteGroovyScriptFromFile_2=\u0421\u043a\u0440\u0438\u043f\u0442 Groovy \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043f\u0430\u043f\u043a\u0435 
+ExecuteGroovyScript_0=\ \u043c\u0441
+ExecuteGroovyScript_1=N/A_Error during parameters initialisation
+ExecuteGroovyScript_2=N/A_The user canceled the script execution
+ExecuteRScript_1=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 
+ExecuteRScript_2=\u0413\u043e\u0442\u043e\u0432\u043e: 
+ExecuteRScript_3=\ \u043c\u0441
+ExecuteRText_0=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430... 
+ExecuteRText_1=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 R {0}: {1}
+ExecuteRText_2=\ \u043c\u0441
+ExecuteScriptImport_0=\u041d\u0430\u0447\u0430\u043b\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f
+ExecuteScriptImport_1=** \u0424\u0430\u0439\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u0430 {0} \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d
+ExecuteScriptImport_2=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043f\u0430\u043f\u043a\u0430 'corpora' \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442: 
+ExecuteScriptImport_3=N/A_Error: the folder {0} still exists. Cannot continue import. You can delete it manually and restart the import.
+ExecuteScriptImport_5=** \u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u043e.
+ExecuteScriptImport_6=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e.
+ExecuteScriptImport_7=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e: 
+ExecuteScriptImport_8=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+ExecuteScriptR_0=** \u0424\u0430\u0439\u043b \u0441\u043a\u0440\u0438\u043f\u0442\u0430 R {0} \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d
+ExecuteScriptR_1=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 R {0}: {1}
+ExecuteScript_3=** \u041d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0430\u0442\u043e\u0440\u0430 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 
+Exit_Menu_Label=\u0412\u044b\u0445\u043e\u0434
+Explorer_0=\u041f\u0430\u043f\u043a\u0430 {0} \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0430
+Explorer_1=N/A_Go to parent folder
+Explorer_2=N/A_Go to TXM home
+Explorer_3=TXM
+Explorer_4=\u21E7
+Explorer_5=\u21BB
+Explorer_6=N/A_Refresh
+Explorer_7=N/A_\u2302
+Explorer_8=N/A_Go to TXM home
+ExportCorpus_0=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u043f\u0443 {0}
+ExportCorpus_3=\u042d\u043a\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 
+ExportCorpus_4=\u0413\u043e\u0442\u043e\u0432\u043e, \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439 \u0444\u0430\u0439\u043b - {0} 
+ExportPreferencePage_1=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430
+ExportPreferencePage_18=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u043f\u043e\u043b\u0435\u0439
+ExportPreferencePage_19=\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c \u0442\u0435\u043a\u0441\u0442\u0430
+ExportPreferencePage_21=\u0424\u043e\u0440\u043c\u0430\u0442 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 R \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
+ExportPreferencePage_3=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432
+ExportPreferencePage_4=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435
+ExportResult_0=\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432
+ExportResult_1=N/A_Exporting...
+ExportResult_2=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b: 
+ExportResult_3=** \u042d\u043a\u0441\u043f\u043e\u0440\u0442: \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b {0}: {1}
+ExportResult_4=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u0432 
+ExportResult_5=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c {0}
+ExportResult_6=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 {0}: {1}
+ExportSVG_0=N/A_Exporting SVG...
+ExportSVG_2=N/A_Exporting with device: 
+FAILED_TO_PARSE_OPTIONS=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0446\u0438\u0438 TXM {0}: {1}
+FAILED_TO_SAVE_PREFERENCES=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438
+FactorialMapEditor_0=\u0424\u0430\u043a\u0442\u043e\u0440\u044b:  
+FactorialMapEditor_10=** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430: \u043e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u043b\u0430\u043d\u0430 \u0424\u0410\u0421
+FactorialMapEditor_11=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440
+FactorialMapEditor_13=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430
+FactorialMapEditor_4=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c: 
+FactorialMapEditor_5=\u043a\u043e\u043b\u043e\u043d\u043a\u0438
+FactorialMapEditor_6=\u0441\u0442\u0440\u043e\u043a\u0438
+FactorialMapEditor_8=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0444\u0430\u043a\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0430
+FileExplorerPreferencePage_0=\u0420\u0435\u0433. \u0432\u044b\u0440. \u0441\u043a\u0440\u044b\u0442\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432
+FileExplorerPreferencePage_1=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u044b\u0435 \u0444\u0430\u0439\u043b\u044b
+FileExplorerPreferencePage_2=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0438
+FileTreeContentProvider_1=** \u041f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a: \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435
+FileTreeContentProvider_2=\ \u041e\u0428\u0418\u0411\u041a\u0410 
+FileTreeContentProvider_3=\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u043e\u0448\u0438\u0431\u043a\u0438: '
+FileTreeContentProvider_4='
+FrequencyListEditorInput_0=\u0421\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0440\u043c
+FrequencyListEditorInput_1=Pareto
+FrequencyListEditorInput_2=\u0421\u043f\u0438\u0441\u043e\u043a \u0444\u043e\u0440\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c
+FrequencyListEditorInput_3=\u0424\u043e\u0440\u043c\u0430
+FrequencyListEditorInput_4=\u0427\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u044c
+FrequencyListEditorInput_5=\u0426\u0435\u043f\u043e\u0447\u043a\u0430 \u0437\u043d\u0430\u043a\u043e\u0432
+FrequencyListEditorInput_6=\u0426\u0435\u043b\u043e\u0435
+FrequencyListEditorInput_9=\u0422\u0438\u043f
+GenericMultiPageEditor_1=** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 {0}.
+GenericMultiPageEditor_3=** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430: \u0447\u0438\u0441\u043b\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u0432 RCP ({0}) \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0447\u0438\u0441\u043b\u0443 \u0432\u0432\u043e\u0434\u043e\u0432 ({1}).
+GetConcordancesDialog_0=** \u0414\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u043e\u0432: {0}
+GetConcordancesDialog_1=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0441\u0442\u0438 
+GetConcordancesDialog_13=\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+GetConcordancesDialog_14=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+GetConcordancesDialog_15=\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+GetConcordancesDialog_4=\u0421&\u0432\u043e\u0439\u0441\u0442\u0432\u043e : 
+GetConcordancesDialog_5=&\u041b\u0435\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0441\u043b\u043e\u0432\u0430) : 
+GetConcordancesDialog_6=&\u041f\u0440\u0430\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 (\u0441\u043b\u043e\u0432\u0430) : 
+GetConcordancesDialog_7=&\u0421\u0441\u044b\u043b\u043a\u0430: 
+GetConcordances_4=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0440\u0430\u0441\u0447\u0435\u0442\u0435 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u043e\u0432: {0}
+GraphicalLogger_0=** \u041e\u0448\u0438\u0431\u043a\u0430 {0}
+GroovyConsole_4=\n\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430.
+GroovyConsole_5=\u041e\u0448\u0438\u0431\u043a\u0430: 
+ImportDialog_0=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0430 - {0}
+ImportDialog_1=\u041f\u0430\u043f\u043a\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438
+ImportDialog_13=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043a\u043e\u0440\u043f\u0443\u0441 \u0432 \u0431\u0438\u043d\u0430\u0440\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435 \u0432 \u044d\u0442\u043e\u0439 \u043f\u0430\u043f\u043a\u0435
+ImportDialog_14=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430
+ImportDialog_16=\u0423\u0433\u0430\u0434\u0430\u0442\u044c
+ImportDialog_19=\u042f\u0437\u044b\u043a \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430
+ImportDialog_22=\u0412\u044b\u0431\u0440\u0430\u0442\u044c
+ImportDialog_23=\u041e\u043f\u0446\u0438\u0438
+ImportDialog_4=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u0431\u0443\u043a\u0432: 
+ImportDialog_5=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u044f\u0437\u044b\u043a: 
+ImportDialog_6=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438: 
+ImportFormEditor_0=** \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 {0} 
+ImportPreferencePage_0=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
+ImportSelectedText_0=\u0418\u043c\u043f\u043e\u0440\u0442 \u0442\u0435\u043a\u0441\u0442\u0430 \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u0431\u043c\u0435\u043d\u0430
+ImportSelectedText_1=clipboard
+ImportSelectedText_10=\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a 
+ImportSelectedText_12=\u0411\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d 
+ImportSelectedText_2=** \u0411\u0443\u0444\u0435\u0440 \u043e\u0431\u043c\u0435\u043d\u0430 \u043f\u0443\u0441\u0442
+ImportSelectedText_3=\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c
+ImportSelectedText_4=\u041a\u043e\u0440\u043f\u0443\u0441 {0} \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d
+ImportSelectedText_6=** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 'default' 
+InternalCorpusView_0=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0435
+InternalCorpusView_1=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c
+InternalCorpusView_2=** \u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u043e\u0448\u0438\u0431\u043a\u0430: getText {0}
+InternalViewEditor_1=\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0430...
+InternalViewEditor_10=\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0432\u0438\u0434: \u043e\u0448\u0438\u0431\u043a\u0430 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: 
+InternalViewEditor_11=OK
+InternalViewEditor_16=\u041e\u0448\u0438\u0431\u043a\u0430
+InternalViewEditor_2=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430...
+InternalViewEditor_25=\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441: 
+InternalViewEditor_3=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430
+InternalViewEditor_4=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: 
+InternalViewEditor_5=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b: 
+Invalid_analysis_property=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+JobHandler_0=N/A_Canceling...
+JobHandler_1=N/A_Canceling 
+JobHandler_2=N/A_\ canceling requested
+JobHandler_3=N/A_Failed to cancel 
+JobsTimer_12=\u0447., 
+JobsTimer_13=\ \u043c\u0438\u043d. \u0438 
+JobsTimer_15=\u041f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043e \u0437\u0430 {0} ({1}).
+JobsTimer_16=. (
+JobsTimer_17=\ \u043c\u0441)
+JobsTimer_19=\u041f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043e \u0437\u0430 {0}.
+JobsTimer_2=\ \u043c\u0441
+JobsTimer_20=Job: 
+JobsTimer_21=Exec: 
+JobsTimer_5=\ \u0441
+JobsTimer_9=\ \u043c\u0438\u043d. \u0438 
+LanguageSwitchHandler_0=\u042f\u0437\u044b\u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (LOCALE) \u043d\u0435 \u0431\u044b\u043b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d
+LanguageSwitchHandler_1=\u0424\u0430\u0439\u043b {0} \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d
+LanguageSwitchHandler_3=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u044f\u0437\u044b\u043a
+LanguageSwitchHandler_5=** \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044f\u044b\u0437\u043a\u0430: \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 URL {0}
+LanguageSwitchHandler_7=TXM.ini : 
+LexicalTableEditor_1=** \u041e\u0448\u0438\u0431\u043a\u0430: \u041d\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0447\u0438\u0441\u043b\u043e \u043a\u043e\u043b\u043e\u043d\u043e\u043a: \u0434\u043e 
+LexicalTableEditor_10=\u041e\u0431\u044a\u0435\u0434. \u0438\u043b\u0438 \u0423\u0434\u0430\u043b. \u043a\u043e\u043b\u043e\u043d\u043e\u043a
+LexicalTableEditor_11=\u041e\u0431\u044a\u0435\u0434. \u043a\u043e\u043b\u043e\u043d\u043e\u043a: {0}
+LexicalTableEditor_12=\u0423\u0434\u0430\u043b. \u043a\u043e\u043b\u043e\u043d\u043e\u043a: {0}
+LexicalTableEditor_13=\u041e\u0431\u044a\u0435\u0434. \u0438\u043b\u0438 \u0423\u0434\u0430\u043b. \u0441\u0442\u0440\u043e\u043a
+LexicalTableEditor_14=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443
+LexicalTableEditor_15=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445:  
+LexicalTableEditor_16=\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a
+LexicalTableEditor_18=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a
+LexicalTableEditor_2=, Fmin 
+LexicalTableEditor_3=, Fmax 
+LexicalTableEditor_4=\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c
+LexicalTableEditor_5=\u041e\u0441\u0442\u0430\u0432\u0438\u0442\u044c {0} \u0441\u0442\u0440\u043e\u043a, Fmin {1}
+LexicalTableEditor_6=Fmin :
+LexicalTableEditor_7=\ \u043f\u043e\u0441\u043b\u0435  
+LexicalTableEditor_8=\u0427\u0438\u0441\u043b\u043e \u0441\u0442\u0440\u043e\u043a 
+LexicalTablePreferencePage_0=\u0421\u043b\u043e\u0432\u0430\u0440\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430
+LexicalTablePreferencePage_1=\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u044c
+LexicalTable_1=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+LineLabelProvider_1=\u041d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c
+LocalePreferencePage_1=\u041a\u043e\u043d\u0444\u0438\u0433\u0440\u0443\u0440\u0430\u0446\u0438\u044f \u044f\u0437\u044b\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430
+LocalePreferencePage_2=\u042f\u0437\u044b\u043a \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 
+MacrosExplorer_0=N/A_New macro
+MacrosExplorer_1=N/A_Create a new macro from a template
+MainPage_0=\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
+MainPage_1=\u0413\u043b\u0430\u0432\u043d\u044b\u0439
+MainPage_10=\t\u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0443 \u0441\u043d\u0438\u0437\u0443.\n
+MainPage_11=3-\t\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u043d\u0430\u0447\u043a\u0430 \u0434\u0438\u0441\u043a\u0435\u0442\u044b.\n
+MainPage_12=4-\t\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u043d\u0430 \u0437\u0435\u043b\u0451\u043d\u0443\u044e \u0441\u0442\u0440\u0435\u043b\u043a\u0443.
+MainPage_13=\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c
+MainPage_14=\u041a\u043e\u0440\u043f\u0443\u0441\u0430
+MainPage_15=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441
+MainPage_17=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+MainPage_18=\u0412\u0445\u043e\u0434\u043d\u0430\u044f \u0441\u0442\u0438\u043b\u0435\u0432\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 XSL
+MainPage_19=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u043e\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438
+MainPage_2=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 {0}
+MainPage_20=\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u044f\u0437\u044b\u043a
+MainPage_22=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441
+MainPage_23=\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430
+MainPage_25=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+MainPage_27=\u0413\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0438
+MainPage_28=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438
+MainPage_29=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443
+MainPage_3=\u041f\u0430\u043f\u043a\u0430 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c\u0438: 
+MainPage_30=\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u0438\u0437 \u043a\u043e\u0440\u043f\u0443\u0441\u0430: 
+MainPage_31=\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 2 \u043a\u043e\u0440\u043f\u0443\u0441\u0430:
+MainPage_33=seg
+MainPage_34=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443
+MainPage_36=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u043e\u043c\u0435\u0440 \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438
+MainPage_38=\u0423\u0431\u0440\u0430\u0442\u044c \u0433\u0438\u043f\u0435\u0440\u0441\u0441\u044b\u043b\u043a\u0443 \u2116
+MainPage_39=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e
+MainPage_4=\u0418\u043c\u044f \u043a\u043e\u0440\u043f\u0443\u0441\u0430 (\u0431\u0430\u0437\u044b)
+MainPage_40=\u041f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u0440\u043f\u0443\u0441
+MainPage_42=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f
+MainPage_44=* \n(\u0438\u043c\u044f \u0430\u0440\u0445\u0438\u0432\u0430 \u0431\u0435\u0437 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u0440\u043f\u0443\u0441)
+MainPage_45=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
+MainPage_46=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c 
+MainPage_47=N/A_
+MainPage_49=N/A_base name is mandatory
+MainPage_5=N/A_Opening...
+MainPage_50=N/A_refresh links table
+MainPage_52=N/A_The source directory does not contain import.xml
+MainPage_53=N/A_Sorry, 'the import.xml' file could not been created
+MainPage_54=N/A_Load params from: 
+MainPage_55=N/A_Params: 
+MainPage_6=N/A_Saving...
+MainPage_7=N/A_Starting...
+MainPage_8=N/A_1-\tClick on the 'folder' icon to choose the source directory\n
+MainPage_9=N/A_2-\tIf you want to add details such as default subcorpus, exemple queries or types of word properties,\n
+MergeCols_1=\u041d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f
+MergeCols_2=\u0418\u043c\u044f \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043b\u043e\u043d\u043a\u0438, \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c
+MergeCols_5=\u0418\u043c\u0435\u043d\u0430: 
+MergeCols_6=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e.
+MergeDeleteDialog_0=\u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c
+MergeDeleteDialog_1=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c/\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+MergeDeleteDialog_4=\u0438\u043c\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
+MergeLines_2=\u041d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u043c\u044f \u043d\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f
+MetadataPage_1=\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435
+MetadataPage_2=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445
+MetadataPage_3=Refresh
+MetadataPage_4=\u0417\u0430\u0433\u043b\u0430\u0432\u0438\u044f \u043a\u043e\u043b\u043e\u043d\u043e\u043a \u0432 \u0444\u0430\u0439\u043b\u0435 \u0441 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c\u0438 
+MetadataPage_5=\u0418\u043d\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0442\u0435\u043a\u0441\u0442\u0430
+MetadataPage_7=No metadata file {0}
+MultipleValueTreeDialog_0=\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435: 
+NavigationWidget_0=N/A_Error while getting current position value : 
+ObjectExplorer_0=\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f: 
+ObjectExplorer_10=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+ObjectExplorer_12=\u041d\u0430\u0431\u0440\u0430\u0442\u044c \u0438\u043c\u044f \u0443\u0434\u0430\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+ObjectExplorer_15=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c
+ObjectExplorer_2=\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435
+ObjectExplorer_21=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0443 \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432
+ObjectExplorer_26=\u0418\u043c\u044f
+ObjectExplorer_27=\u041a\u043b\u044e\u0447
+ObjectExplorer_3=\u041d\u043e\u0432\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+ObjectExplorer_4=\u0418\u043c\u044f \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+ObjectExplorer_5=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430
+ObjectExplorer_7=\u043d\u043e\u0432\u043e\u0435 \u0438\u043c\u044f
+ObjectExplorer_9=
+ObjectSelectionDialog_0=\u0421\u0435\u043b\u0435\u043a\u0442\u043e\u0440 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439
+ObjectSelectionDialog_3=\u041d\u0430\u0439\u0434\u0435\u043d\u043e {0} \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439
+ObjectSelectionDialog_5=\u041d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435: {0}
+ObjectSelector_0=\u041e\u0431\u044a\u0435\u043a\u0442: 
+ObjectSelector_1=\u0412\u044b\u0431\u043e\u0440
+OpenBiblio_1=** \u0412 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u043d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 {0}
+OpenBiblio_2=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442
+OpenBiblio_7=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0442\u0435\u043a\u0441\u0442 {0} \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {1}
+OpenBiblio_9=** \u041d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u0442\u0435\u043a\u0441\u0442\u0430 {0}
+OpenBrowser_0=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 
+OpenBrowser_1=. URL
+OpenEdition_0=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0447\u0430\u0441\u0442\u044c
+OpenEdition_1=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u0437\u0434\u0430\u043d\u0438\u0435 {0}
+OpenEdition_3=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0438\u0437\u0434\u0430\u043d\u0438\u044f {0} 
+OpenEdition_5=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0441 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c {0} \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 \u0438\u043b\u0438
+OpenEdition_7=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u0438\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 
+OpenEdition_8=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u0437\u0434\u0430\u043d\u0438\u044f 
+OpenEmptyEditor_2=** \u0411\u0438\u0431\u043b\u0438\u043e\u0433\u0440\u0430\u0444\u0438\u044f: \u043d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0439\u0442\u0438 \u043f\u0430\u043f\u043a\u0443 {0}
+OpenGraph_8=** \u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u043a\u0442\u0440\u044b\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a {0}
+OpenParaBrowser_0=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u041f\u0430\u0440\u0430\u0431\u0440\u0430\u0443\u0437\u0435\u0440//
+OpenSVGGraph_0=\u0413\u0440\u0430\u0444\u0438\u043a SVG 
+OpenTXMUserPreferences_0=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e
+OpenURI_0=** OpenURL : \u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0442\u043e\u043b \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f
+OpenURI_1=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 {0}
+ParaBrowserEditor_11=ParaBrowser : get next({0}) struct {1} paraid {2} value {3}
+ParaBrowserEditor_18=-\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a 
+ParaBrowserEditor_19=-\u041e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435!!!!! NEXT - 
+ParaBrowserEditor_21=_
+ParaBrowserEditor_22=\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440
+ParaBrowserEditor_3=\u0421\u0441\u044b\u043b\u043a\u0430 : 
+ParaBrowserEditor_4=\u0421\u0441\u044b\u043b\u043a\u0438
+ParaBrowserEditor_5=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430
+ParaBrowserEditor_9=\u0421\u0441\u044b\u043b\u043a\u0438: {0} : {1}
+ParametersDialog_0={0} parameters input
+ParametersDialog_1=N/A_Run
+ParametersDialog_10=N/A_Unknowed widget name: '
+ParametersDialog_11=N/A_(* mandatory fields)
+ParametersDialog_12=N/A_** Error : missing value: 
+ParametersDialog_13=N/A_** Error : format error: 
+ParametersDialog_14=N/A_Error in @Option name declaration: 
+ParametersDialog_15=N/A_Error: the bean is not a groovy.lang.Script object
+ParametersDialog_17=N/A_Error: the ''monitor'' (JobHandler class) binding is missing. Got\: {0}.
+PartitionComposer_0=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: 
+PartitionComposer_11=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
+PartitionComposer_2=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f: 
+PartitionComposer_3=\u041d\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c
+PartitionComposer_5=\u0427\u0430\u0441\u0442\u044c
+PartitionComposer_6=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u0441\u0435 \u0447\u0430\u0441\u0442\u0438
+PartitionComposer_8=\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a: 
+PartitionComposer_9=\u041d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c
+PartsSize_0=N/A_\n Sorted by size
+PartsSize_10=\u0420\u0430\u0437\u043c\u0435\u0440\u044b \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f {0} \u043a\u043e\u0440\u043f\u0443\u0441\u0430 {1} \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b
+PartsSize_18=\u0420\u0430\u0437\u043c\u0435\u0440\u044b: {0}
+PartsSize_2=N/A_Number of words per part
+PasteFile_1=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438  
+PasteFile_3=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c
+PasteFile_4= : 
+Preferences_Menu_Label=\u041e\u043f\u0446\u0438\u0438
+ProgressionForm_0=N/A_Type :
+ProgressionForm_1=N/A_cumulatif
+ProgressionForm_10=N/A_R�p�t�
+ProgressionForm_11=N/A_N&&B
+ProgressionForm_12=N/A_REQUETES :
+ProgressionForm_13=N/A_ajouter
+ProgressionForm_14=N/A_supprimer
+ProgressionForm_2=N/A_densit�
+ProgressionForm_3=N/A_Echelle
+ProgressionForm_5=N/A_Options d'affichage
+ProgressionForm_6=N/A_Unit� structurelle :
+ProgressionForm_7=N/A_Propri�t� :
+ProgressionForm_8=N/A_Exp. R�g. :
+ProgressionForm_9=N/A_Syles de ligne diff�rents
+PropertiesSelector_0=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 {0} ({1})
+PropertiesSelector_1=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430: 
+PropertiesSelector_2=\u041f\u0440\u0430\u0432\u0438\u0442\u044c
+PropertySelector_0=\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e
+PurgeCorpora_0=\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e! \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u0441\u0435\u0445 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?
+PurgeCorpora_1=\u0423\u0434\u0430\u043b\u044f\u0435\u043c\u044b\u0435 \u043a\u043e\u0440\u043f\u0443\u0441\u0430 
+PurgeCorpora_10=\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430
+PurgeCorpora_12=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b
+PurgeCorpora_13=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e: 
+PurgeCorpora_2=** \u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435! \u043d\u0435 \u0431\u044b\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u043a\u043e\u0440\u043f\u0443\u0441\u0430: 
+PurgeCorpora_3=\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e! \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u0432\u0441\u0435\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?
+PurgeCorpora_4=** \u041e\u0448\u0438\u0431\u043a\u0430: \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f 'TXMHOME' \u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u0430 (\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e -  '$HOME/TXM'). \u0420\u0430\u0431\u043e\u0442\u0430 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430.
+PurgeCorpora_5=\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432
+PurgeCorpora_7=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043e\u0440\u043f\u0443\u0441\u0430
+PurgeCorpora_9=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0440\u0435\u0433\u0438\u0441\u0442\u0440
+QueriesView_1=\u042d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451
+QueriesView_10=\u043e\u0448\u0438\u0431\u043a\u0430: 
+QueriesView_5=\u0417\u0430\u043f\u0440\u043e\u0441\u044b:\n
+QueryAssistDialog_0=\u041c\u0430\u0441\u0442\u0435\u0440 \u0417\u0430\u043f\u0440\u043e\u0441\u043e\u0432
+QueryAssistDialog_1=\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e
+QueryAssistDialog_10=\u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441
+QueryAssistDialog_11=\u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441
+QueryAssistDialog_12=\u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430
+QueryAssistDialog_13=\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442
+QueryAssistDialog_2=\u042f \u0438\u0449\u0443: 
+QueryAssistDialog_3= \u0441\u043b\u043e\u0432\u043e
+QueryAssistDialog_32=\u0437\u0430 \u043d\u0438\u043c 
+QueryAssistDialog_33=\u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 0 \u0441\u043b\u043e\u0432
+QueryAssistDialog_34=\u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 1 \u0441\u043b\u043e\u0432\u0430
+QueryAssistDialog_8=- \u0421\u043b\u043e\u0432\u043e \u2116
+QueryIndexEditor_0=N/A_Query Index of 
+QueryIndexEditor_1=N/A_replacing line: 
+QueryIndexEditor_10=N/A_queries
+QueryIndexEditor_11=N/A_QueryIndex tooltip
+QueryIndexEditor_2=N/A_Failed to add line with query: 
+QueryIndexEditor_3=N/A_Line added.
+QueryIndexEditor_4=N/A_Load from a file
+QueryIndexEditor_5=N/A_*.properties
+QueryIndexEditor_6=N/A_Cannot read from file: 
+QueryIndexEditor_7=N/A_Link to concordance
+QueryIndexEditor_8=N/A_Link to progression
+QueryIndexEditor_9=N/A_delete lines
+RPreferencePage_0=N/A_Run RServe in debug mode
+RPreferencePage_1=N/A_Port (default is 6311)
+RPreferencePage_2=\u041f\u0443\u0442\u044c \u043a \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u043e\u043c\u0443 &\u0444\u0430\u0439\u043b\u0443 R
+RPreferencePage_3=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435
+RPreferencePage_4=\u0410\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430
+RPreferencePage_5=\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c
+RPreferencePage_6=\u041f\u0430\u0440\u043e\u043b\u044c
+RPreferencePage_7=\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 R \u0447\u0435\u0440\u0435\u0437 \u0444\u0430\u0439\u043b
+RVariablesView_1=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435
+RVariablesView_2=\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u043e\u0431 \u043e\u0446\u0435\u043d\u043a\u0430\u0445
+RVariablesView_9=\u0438\u043c\u044f TXM {0} >> \u0438\u043c\u044f R {1}
+ReferencerEditor_0=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u043a <{0}> \u0432 {1} \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c {2} \u043f\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0443 {3}
+ReferencerEditor_10=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432
+ReferencerEditor_11=\u0421\u0441\u044b\u043b\u043a\u0438
+ReferencerEditor_12=\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u043f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c
+ReferencerEditor_13=\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430
+ReferencerEditor_17=\u041f\u043e\u043a\u0430\u0437 \u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 
+ReferencerEditor_19=\u041f\u043e\u043a\u0430\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 
+ReferencerEditor_21=\u041f\u043e\u043a\u0430\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 
+ReferencerEditor_23=\u041f\u043e\u043a\u0430\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 
+ReferencerEditor_25=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043e\u043d\u043a\u043e\u0440\u0434\u0430\u043d\u0441\u0430
+ReferencerEditor_5=\u0420\u0430\u0441\u0447\u0435\u0442 \u0441\u0441\u044b\u043b\u043e\u043a {0}
+ReferencerEditor_6=\u0428\u0430\u0431\u043b\u043e\u043d \u0441\u0441\u044b\u043b\u043e\u043a 
+ReferencerEditor_7=\u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430
+ReferencerEditor_8=\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0439
+ReferencerEditor_9=\u0415\u0434\u0438\u043d\u0438\u0446\u044b
+ReferencerPreferencePage_2=\u0421\u0441\u044b\u043b\u043a\u0438
+ReferencerPreferencePage_3=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0441\u0442\u0438
+RenameFile_0=\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b
+RenameFile_2=\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437: 
+RenameFile_3=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c 
+ProgressionDialog_0=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0438 
+ProgressionDialog_1=\u0422\u0438\u043f \u0433\u0440\u0430\u0444\u0430: 
+ProgressionDialog_10=\u041f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u044f: \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435: 
+ProgressionDialog_11=\u041c\u0430\u0441\u0448\u0442\u0430\u0431 \u043f\u043e\u043b\u043e\u0441
+ProgressionDialog_13=\u041e\u043f\u0446\u0438\u0438 \u0432\u0438\u0434\u0430
+ProgressionDialog_14=\u0420\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u043a
+ProgressionDialog_15=\u041f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f
+ProgressionDialog_16=\u0427/\u0411
+ProgressionDialog_17=\u041e\u0448\u0438\u0431\u043a\u0430: \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u043e\u043b\u043e\u0441\u044b: 
+ProgressionDialog_2=\u043a\u0443\u043c\u0443\u043b\u044f\u0442\u0438\u0432\u043d\u044b\u0439
+ProgressionDialog_3=\u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c
+ProgressionDialog_4=\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430: 
+ProgressionDialog_5=\u0443\u0434\u0430\u043b\u0438\u0442\u044c
+ProgressionDialog_7=\u0420\u0435\u0433. \u0412\u044b\u0440.: 
+ProgressionDialog_8=\u0417\u0430\u043f\u0440\u043e\u0441\u044b: 
+ProgressionDialog_9=\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c
+ProgressionEditorInput_0=PROGRESSION NAME
+RestartTXM_0=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0438\u0434\u043e\u0432...
+RestartTXM_1=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c TXM
+RunGroovyScript_0=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430
+RunGroovyScript_1=&\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+RunGroovyScript_2=\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442
+RunGroovyScript_3=*.groovy
+RunGroovyScript_4=\u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 groovy : {0}
+RunGroovyScript_8=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 groovy : {0}
+RunGroovyScript_9=\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430
+SVGGraphicEditor_1=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.
+SaveAs_2=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c 
+ScriptPreferencePage_0=\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u0441\u0435\u0441\u0441\u0438\u0438 
+ScriptPreferencePage_3=&\u041a\u043e\u0440\u043d\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430
+SendToR_0=\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e R: 
+SendToR_3=\u041f\u043e\u0438\u0441\u043a \u0432\u0438\u0434\u043e\u0432...
+SetContextSize_1=\u0417\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 &\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0432
+SetContextSize_2=\u0417\u0430\u0434\u0430\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0432
+SetContextSize_3=\u0420\u0430\u0437\u043c\u0435\u0440 \u043b\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430
+SetContextSize_4=\u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u0440\u0430\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430
+SetEncoding_0=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443
+SetEncoding_1=\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443.\n\n\t\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430: 
+SetEncoding_2=\n\t\u041a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e:  
+SetLineNumber_0=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435
+SetLineNumber_1=\u2116 \u0441\u0442\u0440\u043e\u043a\u0438
+SetSortProperty_1=\u0417\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e &\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+SetSortProperty_2=\u0417\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438
+SetSortProperty_3=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 
+ShowSelected_4=\u041f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e 'LANG'
+ShowSvgHelp_0=\u041a\u043e\u043c\u0430\u043d\u0434\u044b SVG
+ShowSvgHelp_1=\u041f\u0435\u0440\u0435\u0432\u043e\u0434: Shift + \u041b\u0435\u0432\u044b\u0439 \u0449\u0435\u043b\u0447\u043e\u043a + \u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c\n
+ShowSvgHelp_2=\u041c\u0430\u0441\u0448\u0442\u0430\u0431 +/- : Shift + \u041f\u0440\u0430\u0432\u044b\u0439 \u0449\u0435\u043b\u0447\u043e\u043a + \u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c\n
+ShowSvgHelp_3=\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f: Ctrl + \u041b\u0435\u0432\u044b\u0439 \u0449\u0435\u043b\u0447\u043e\u043a + \u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c\n
+ShowSvgHelp_4=\u041f\u043e\u0432\u043e\u0440\u043e\u0442: Ctrl + \u041f\u0440\u0430\u0432\u044b\u0439 \u0449\u0435\u043b\u0447\u043e\u043a + \u041f\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u044c\n
+ShowSvgHelp_5=\u0418\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: F5
+SingularValuesEditor_0=\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u044b\u0439 \u0432\u0432\u043e\u0434
+SortPropertySelection_0=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 
+Structure_field_not_empty=\u041f\u043e\u043b\u0435 \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c.
+Submit_0=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
+TXMCqpServerWatcher_0=\u041f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430
+TXMCqpServerWatcher_1=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435, \u043f\u043e\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f...
+TXMRServeWatcher_0=\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430
+TXMRServeWatcher_1=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435, \u043f\u043e\u043a\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f...
+TXMRServeWatcher_2=Ok
+TXMRServeWatcher_3=\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0438\u0434\u0430 \u043a\u043e\u0440\u043f\u0443\u0441\u043e\u0432...
+TXMRServeWatcher_4=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435...
+TablableVector_0=\u041e\u0431\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.
+TableEditor_0=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0441 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439
+TableKeyListener_1=\u041d\u0430\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430
+TableKeyListener_6=\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438: \n
+TableSorter_0=\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043b\u043e\u043d\u043a\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u0435\u043b\u0438\u043a.
+TextometriePreferencePage_0=N/A_Automatically find new updates and notify me
+TextometriePreferencePage_1=N/A_General preferences backup
+TextometriePreferencePage_14=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 
+TextometriePreferencePage_15=\u042d\u043a\u0441\u043f\u043e\u0440\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 \u0444\u0430\u0439\u043b
+TextometriePreferencePage_18=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u0437 
+TextometriePreferencePage_19=\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043e\u043a\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0447\u0442\u043e\u0431\u044b TXM \u043c\u043e\u0433\u043b\u0430 \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c
+TextometriePreferencePage_2=N/A_Automatic updates
+TextometriePreferencePage_20=\u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437 \u0444\u0430\u0439\u043b\u0430
+TreeTaggerPreferencePage_0=N/A_Don't normalize apostrophes to ' 
+TreeTaggerPreferencePage_1=\u041f\u0443\u0442\u044c \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 TreeTagger
+TreeTaggerPreferencePage_2=\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0441 \u044f\u0437\u044b\u043a\u043e\u0432\u044b\u043c\u0438 \u043c\u043e\u0434\u0435\u043b\u0430\u043c\u0438 \u0434\u043b\u044f TreeTagger
+TreeTaggerPreferencePage_3=\u041e\u043f\u0446\u0438\u0438 [\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044c '  ' (2 \u043f\u0440\u043e\u0431\u0435\u043b\u0430)]
+TxmBrowser_0=\u041d\u0430\u0447\u0430\u043b\u043e
+TxmBrowser_10=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0442\u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0432 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u043d\u044e \u041e\u0431\u0449\u0438\u0435 / \u0412\u0435\u0431 \u0431\u0440\u0430\u0443\u0437\u0435\u0440
+TxmBrowser_11=\u041d\u0435\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430
+TxmBrowser_12=\u041d\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430
+TxmBrowser_5=\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
+TxmBrowser_6=\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
+TxmBrowser_7=\u0412 \u043a\u043e\u043d\u0435\u0446
+TxmBrowser_8=\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442
+TxmBrowser_9=\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0442\u0435\u043a\u0441\u0442
+TxmCommand_1=\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f
+TxtEditor_0=\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440: 
+TxtEditor_1=\u041d\u0430\u0439\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430 
+UIParameterException_0=N/A_Error  
+UserPreferencePage_0=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f
+UserPreferencePage_3=\u041d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430
+ViewPropertySelectionDialog_0=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432
+ViewPropertySelection_0=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432
+IndexEditor_0=\u0417\u0430\u043f\u0440\u043e\u0441 \u043f\u0443\u0441\u0442
+IndexEditor_1=** \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441
+IndexEditor_10=N/A_Failed to get last CQP error: 
+IndexEditor_17=\u0418\u043d\u0434\u0435\u043a\u0441:\n\t\u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 {0}\n\t\u0417\u0430\u043f\u0440\u043e\u0441 {1}\n\t\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_18=\u0418\u043d\u0434\u0435\u043a\u0441:\n\t\u041a\u043e\u0440\u043f\u0443\u0441 {0}\n\t\u0417\u0430\u043f\u0440\u043e\u0441 {1}\n\t\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_2=\u0418\u043d\u0434\u0435\u043a\u0441 <{0}> \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c {1} \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {2}
+IndexEditor_20=\u0418\u043d\u0434\u0435\u043a\u0441 <{0}> \u0441\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e\u043c {1} \u0432 \u043a\u043e\u0440\u043f\u0443\u0441\u0435 {2}
+IndexEditor_22=\u041d\u0435 \u0443\u0434\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u043d\u0434\u0435\u043a\u0441\u0430
+IndexEditor_25=, fmin 
+IndexEditor_26=, fmax 
+IndexEditor_27=t 
+IndexEditor_28=, v 
+IndexEditor_29=\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u043d\u0434\u0435\u043a\u0441\u0430
+IndexEditor_3=\u0417\u0430\u043f\u0440\u043e\u0441: 
+IndexEditor_31=\u041d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430
+IndexEditor_33=\u0420\u0430\u0441\u0447\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430
+IndexEditor_36=\u041a\u043e\u043b\u043e\u043d\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435
+IndexEditor_37=\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430.
+IndexEditor_4=&\u0418\u0441\u043a\u0430\u0442\u044c
+IndexEditor_5=Fmin : 
+IndexEditor_6=Fmax : 
+IndexEditor_7=Vmax : 
+IndexEditor_8=\u0427\u0438\u0441\u043b\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435: 
+IndexEditor_9=\u041f\u043e\u0440\u043e\u0433\u0438: 
+IndexToCooccurrence_0=** \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043d\u0438\u0438 \u0418\u043d\u0434\u0435\u043a\u0441\u0430 \u0438 \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c\u043e\u0441\u0442\u0438
+IndexToLexicalTable_0=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u043d\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u0438\u0437 \u0418\u043d\u0434\u0435\u043a\u0441\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u041a\u043e\u0440\u043f\u0443\u0441\u0435
+WordCloudPreferencePage_0=N/A_Maximum number of words
+WordCloudPreferencePage_1=N/A_Minimal frequency
+WordCloudPreferencePage_2=N/A_Percents of rotated words
+WordCloudPreferencePage_3=N/A_Random color order

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/jface/DoubleFieldEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/jface/DoubleFieldEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/jface/DoubleFieldEditor.java	(revision 122)
@@ -0,0 +1,73 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.jface;
+
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.swt.widgets.Composite;
+
+// TODO: Auto-generated Javadoc
+/**
+ * extends the StringField Editor to manage double values @ author mdecorde.
+ */
+public class DoubleFieldEditor extends StringFieldEditor {
+
+	/**
+	 * Instantiates a new double field editor.
+	 *
+	 * @param minscore the minscore
+	 * @param string the string
+	 * @param fieldEditorParent the field editor parent
+	 */
+	public DoubleFieldEditor(String minscore, String string,
+			Composite fieldEditorParent) {
+		super(minscore, string, fieldEditorParent);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.StringFieldEditor#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		try {
+			Double.parseDouble(this.getStringValue());
+			//System.out.println("isValid"); //$NON-NLS-1$
+		} catch (Exception e) {
+			return false;
+		} 
+		return true;
+	}
+
+	/**
+	 * Gets the double value.
+	 *
+	 * @return the double value
+	 */
+	public double getDoubleValue() {
+		return Double.parseDouble(this.getStringValue());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/jface/DoubleFieldEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TxmPreferences.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TxmPreferences.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TxmPreferences.java	(revision 122)
@@ -0,0 +1,406 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Arrays;
+import java.util.Properties;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Manage TXM configuration prefs: set, remove and get.
+ *
+ * @author mdecorde
+ */
+public class TxmPreferences {
+
+	
+	public static final String SCOPE = "instance"; //$NON-NLS-1$
+	
+	/**
+	 * print TxmPreferences in the console.
+	 */
+	public static void dump() {
+		try {
+			IPreferencesService service = Platform.getPreferencesService();
+			System.out.println("root:"); //$NON-NLS-1$
+			for (String children : service.getRootNode().childrenNames()) {
+				System.out.println(" scope: " + children); //$NON-NLS-1$
+				String[] subchildren = service.getRootNode().node(children).childrenNames();
+				Arrays.sort(subchildren);
+				for (String children2 : subchildren) {
+					System.out.println("  node: "+ children2); //$NON-NLS-1$
+					if (children2.equals(Application.PLUGIN_ID)) {
+						String[] keys = service.getRootNode().node(children).node(children2).keys();
+						Arrays.sort(keys);
+						for (String key2 : keys) {
+							System.out.println(
+									"   " + key2 + " = " + service.getRootNode().node(children).node(children2).get(key2, null)); //$NON-NLS-1$ //$NON-NLS-2$
+						}
+					}
+				}
+			}
+		} catch (Exception e) {
+			System.err.println(e);
+		}
+	}
+	
+	public static Preferences getPreferences() {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode().node(SCOPE).node(Application.PLUGIN_ID);
+	}
+
+	/**
+	 * read a UTF-8 tabulated file key1=value1 key2=value2.
+	 *
+	 * @param file the file
+	 */
+	public static void importFromFile(File file) {
+		importFromFile(file, "UTF-8", false); //$NON-NLS-1$
+	}
+
+	/**
+	 * read a tabulated file key1=value1 key2=value2.
+	 *
+	 * @param file the file
+	 * @param encoding the encoding
+	 */
+	public static boolean importFromFile(File file, String encoding, boolean javaproperties) {
+		boolean ret = true;
+		BufferedReader input = null;
+		try {
+			//System.out.println("importFromFile: "+file+" encoding: "+encoding);
+			input = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
+
+			if (javaproperties) {
+				Properties prop = new Properties();
+				prop.load(input);
+				for (Object key : prop.keySet()) {
+					//System.out.println("prop: "+key.toString()+"="+prop.get(key).toString());
+					TxmPreferences.set(key.toString(), prop.get(key).toString());
+				}
+			} else {
+				String line = input.readLine();
+				while (line != null) {
+					String[] split = line.split("=", 2); //$NON-NLS-1$
+					if (split.length == 2) {
+						//System.out.println("Set preference: "+line);
+						TxmPreferences.set(split[0], split[1]);
+					}
+					line = input.readLine();
+				}
+			}
+		} catch (Exception e) {
+			System.err.println(e);
+			ret = false;
+		} finally {
+			if (input != null)
+				try {
+					input.close();
+				} catch (IOException e) {org.txm.rcpapplication.utils.Logger.printStackTrace(e);}
+		}
+		return ret;
+	}
+
+	/**
+	 * set a property which value is a String.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, String value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode().node(SCOPE).node(Application.PLUGIN_ID).put(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a boolean.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, boolean value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putBoolean(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a double.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, double value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putDouble(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a float.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, float value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putFloat(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a int.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, int value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putInt(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a long.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, long value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putLong(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * set a property which value is a byte array.
+	 *
+	 * @param key the key
+	 * @param value the value
+	 */
+	public static void set(String key, byte[] value) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).putByteArray(key, value); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * get a property as a String.
+	 *
+	 * @param key the key
+	 * @return the string
+	 */
+	public static String get(String key) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).get(key, null); //$NON-NLS-1$
+	}
+
+	/**
+	 * get a property as a String.
+	 *
+	 * @param key the key
+	 * @return the string
+	 */
+	public static String get(String key, String def) {
+		String rez = get(key);
+		if (rez == null) rez = def;
+		return rez;
+	}
+
+	/**
+	 * get a property as a Boolean.
+	 *
+	 * @param key the key
+	 * @return the boolean
+	 */
+	public static Boolean getBoolean(String key) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).getBoolean(key, false); //$NON-NLS-1$
+	}
+
+	/**
+	 * get a property as a Boolean.
+	 *
+	 * @param key the key
+	 * @param defaultvalue the defaultvalue
+	 * @return the boolean
+	 */
+	public static Boolean getBoolean(String key, boolean defaultvalue) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).getBoolean(key, defaultvalue); //$NON-NLS-1$
+	}
+
+	/**
+	 * get a property as a Double.
+	 *
+	 * @param key the key
+	 * @return the double
+	 */
+	public static Double getDouble(String key) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).getDouble(key, 0.0d); //$NON-NLS-1$
+	}
+
+	/**
+	 * get a property as a Integer.
+	 *
+	 * @param key the key
+	 * @return the int
+	 */
+	public static Integer getInt(String key) {
+		return getInt(key, 0);
+	}
+
+	/**
+	 * Gets the int.
+	 *
+	 * @param key the key
+	 * @param i the i
+	 * @return the int
+	 */
+	public static int getInt(String key, int i) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).getInt(key, i); //$NON-NLS-1$
+	}
+
+
+	/**
+	 * Gets the float.
+	 *
+	 * @param key the key
+	 * @param def the def
+	 * @return the float
+	 */
+	public static float getFloat(String key, float def) {
+		IPreferencesService service = Platform.getPreferencesService();
+		return service.getRootNode()
+				.node(SCOPE).node(Application.PLUGIN_ID).getFloat(key, def); //$NON-NLS-1$
+	}
+
+	/**
+	 * remove a property.
+	 *
+	 * @param key the key
+	 */
+	public static void remove(String key) {
+		IPreferencesService service = Platform.getPreferencesService();
+		service.getRootNode()
+		.node(SCOPE).node(Application.PLUGIN_ID).remove(key); //$NON-NLS-1$
+		try {
+			service.getRootNode().flush();
+		} catch (BackingStoreException e) {
+			System.err.println(e);
+		}
+	}
+
+	/**
+	 * return all stored properties.
+	 *
+	 * @return the properties
+	 */
+	public static Properties getProperties() {
+		return org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+				.getProperties();
+	}
+
+	/**
+	 * Gets the string.
+	 *
+	 * @param key the key
+	 * @param defaultvalue the defaultvalue
+	 * @return the string
+	 */
+	public static String getString(String key, String defaultvalue) {
+		String ret = get(key);
+		if (ret == null)
+			return defaultvalue;
+		return ret;
+	}
+
+	public static String[] getAllKeys() {
+		IPreferencesService service = Platform.getPreferencesService();
+		Preferences prefs = service.getRootNode().node(SCOPE).node(Application.PLUGIN_ID); //$NON-NLS-1$
+		try {
+			return prefs.keys();
+		} catch (BackingStoreException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return new String[0];
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TxmPreferences.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.po
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.po	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.po	(revision 122)
@@ -0,0 +1,4870 @@
+#. extracted from messages_fr.properties
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-09-07 14:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Translate Toolkit 1.5.3\n"
+
+#: About_Menu_Label
+msgid "À propos de TXM..."
+msgstr ""
+
+#: AdapterFactory_0
+msgid "N/A_Warning: the corpus "
+msgstr ""
+
+#: AdapterFactory_1
+msgid "N/A_ is corrupted. Some commands won't work correctly."
+msgstr ""
+
+#: AddBase_0
+msgctxt "AddBase_0"
+msgid "corpora"
+msgstr ""
+
+#: AddBase_1
+msgid "Ajouter une Base : "
+msgstr ""
+
+#: AddBase_10
+msgctxt "AddBase_10"
+msgid "TXM prêt."
+msgstr ""
+
+#: AddBase_11
+msgid "Échec de la copie du fichier de registre : "
+msgstr ""
+
+#: AddBase_12
+msgid " vers"
+msgstr ""
+
+#: AddBase_16
+msgid ""
+"Impossible d'affecter la propriété 'LANG' de la structure 'txmcorpus' : "
+msgstr ""
+
+#: AddBase_17
+msgid "N/A_Cannot read the file "
+msgstr ""
+
+#: AddBase_19
+msgid "N/A_Warning"
+msgstr ""
+
+#: AddBase_2
+msgid "Échec du chargement de la base à partir du répertoire : "
+msgstr ""
+
+#: AddBase_20
+msgid "N/A_The "
+msgstr ""
+
+#: AddBase_21
+msgid "N/A_ directory already exists. Do you want to replace it ?"
+msgstr ""
+
+#: AddBase_22
+msgctxt "AddBase_22"
+msgid "N/A_This file is not a TXM file: "
+msgstr ""
+
+#: AddBase_23
+msgid " n'a pas de propriété 'LANG' associée à 'txmcorpus'"
+msgstr ""
+
+#: AddBase_24
+msgid "impossible de charger la base "
+msgstr ""
+
+#: AddBase_25
+msgctxt "AddBase_25"
+msgid "N/A_A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+
+#: AddBase_26
+msgid ""
+"Impossible de charger à partir de ce répertoire : \n"
+"nous ne trouvons pas les éléments nécessaires"
+msgstr ""
+
+#: AddBase_27
+msgid "N/A_Load binary corpus"
+msgstr ""
+
+#: AddBase_28
+msgid "N/A_Unziping binary corpus"
+msgstr ""
+
+#: AddBase_29
+msgid "N/A_Unziping "
+msgstr ""
+
+#: AddBase_3
+msgid "Saisissez le nom de la base"
+msgstr ""
+
+#: AddBase_30
+msgctxt "AddBase_30"
+msgid "N/A_ in "
+msgstr ""
+
+#: AddBase_31
+msgctxt "AddBase_31"
+msgid "N/A_Could not dezip binary corpus: "
+msgstr ""
+
+#: AddBase_32
+msgid "N/A_Load the corpus in the toolbox"
+msgstr ""
+
+#: AddBase_33
+msgid "N/A_Restarting the toolbox"
+msgstr ""
+
+#: AddBase_34
+msgid "N/A_TXM workspace is not initialized, restart TXM."
+msgstr ""
+
+#: AddBase_36
+msgid "N/A_registry"
+msgstr ""
+
+#: AddBase_37
+msgid "N/A_TXM regsitry directory not set: "
+msgstr ""
+
+#: AddBase_38
+msgid "N/A_The copy of the registry file '"
+msgstr ""
+
+#: AddBase_39
+msgid "N/A_' failed"
+msgstr ""
+
+#: AddBase_4
+msgctxt "AddBase_4"
+msgid "projet : "
+msgstr ""
+
+#: AddBase_5
+msgid "nouvelle base : "
+msgstr ""
+
+#: AddBase_6
+msgid "registry"
+msgstr ""
+
+#: AddBase_7
+msgid "Échec de la modification du fichier de registre : "
+msgstr ""
+
+#: AddBase_8
+msgctxt "AddBase_8"
+msgid "Redémarrage de la plateforme TXM..."
+msgstr ""
+
+#: AddBase_9
+msgctxt "AddBase_9"
+msgid "TXM prêt."
+msgstr ""
+
+#: AddProject_3
+msgid "Saisissez le nom du projet"
+msgstr ""
+
+#: AddProject_4
+msgid "Projet : "
+msgstr ""
+
+#: AddProject_5
+msgid "nouveau projet : "
+msgstr ""
+
+#: AddScript_2
+msgctxt "AddScript_2"
+msgid "base : "
+msgstr ""
+
+#: AddScript_3
+msgid "type : "
+msgstr ""
+
+#: AddScript_4
+msgid "nouveau script : "
+msgstr ""
+
+#: AddText_2
+msgctxt "AddText_2"
+msgid "base : "
+msgstr ""
+
+#: AddText_4
+msgid "nouveau texte : "
+msgstr ""
+
+#: AdvancePreferencePage_0
+msgid "Préférences avancées de TXM"
+msgstr ""
+
+#: AdvancePreferencePage_1
+msgid "Dossier d'installation de TXM"
+msgstr ""
+
+#: AdvancePreferencePage_12
+msgid "Niveau de commentaire"
+msgstr ""
+
+#: AdvancePreferencePage_13
+msgid "Commentaires dans la console"
+msgstr ""
+
+#: AdvancePreferencePage_14
+msgid "Commentaires dans un fichier"
+msgstr ""
+
+#: AdvancePreferencePage_2
+msgid "Répertoire utilisateur TXM"
+msgstr ""
+
+#: Analysis_property
+msgid "&Propriétés d'analyse : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_0
+msgctxt "ApplicationWorkbenchAdvisor_0"
+msgid "Initialisation de la plateforme..."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_1
+msgctxt "ApplicationWorkbenchAdvisor_1"
+msgid "Initialisation de la plateforme..."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_11
+msgid "Chargement des corpus d'exemple "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_12
+msgid "N/A_TXMHOME was set but not created: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_13
+msgid "N/A_Could not create TXMHOME directory  : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_14
+msgid "N/A_Failed to copy TXM files from TXMINSTALL DIR to TXMHOME"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_15
+msgctxt "ApplicationWorkbenchAdvisor_15"
+msgid "corpora"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_16
+msgid ""
+"Impossible d'initialiser le répertoire de travail de TXM à partir du "
+"répertoire d'installation (TXMINSTALL)"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_17
+msgid " n'a pas de propriété 'lang' renseignée"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_19
+msgid "Impossible de configurer les paramètres du logiciel TreeTagger"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_2
+msgid "Chargement des préférences d'installation de TXM"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_22
+msgid "N/A_The UI locale has been set to "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_23
+msgid "N/A_, changes will be applied at next startup"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_24
+msgid "N/A_Restart TXM to apply language changes."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_25
+msgid "Lecture des préférences depuis le chemin d'installation : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_26
+msgid "../install.prefs"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_3
+msgid "Vérification de la présence du répertoire de travail"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_31
+msgid "N/A_Failed to create TXM default.xml workspace"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_32
+msgid "TreeTagger n'est pas installé, ou les chemins d'accès sont incorrects."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_33
+msgid ""
+"Les chemins d'accès à TreeTagger ont été réglés à des valeurs par défaut."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_39
+msgid "N/A_Missing folder in TXM install dir: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_4
+msgid "Vérification de l'installation de TreeTagger"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_40
+msgid "N/A_Failed to copy TXM files from TXMINSTALL DIR to TXMHOME : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_41
+msgid "N/A_Failed to set preferences : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_45
+msgid "N/A_Cannot read file "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_47
+msgctxt "ApplicationWorkbenchAdvisor_47"
+msgid "N/A_This file is not a TXM file: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_48
+msgctxt "ApplicationWorkbenchAdvisor_48"
+msgid "N/A_A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_49
+msgid "N/A_Unzip "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_5
+msgid "Sortie standard"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_50
+msgctxt "ApplicationWorkbenchAdvisor_50"
+msgid "N/A_ in "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_51
+msgctxt "ApplicationWorkbenchAdvisor_51"
+msgid "N/A_Could not dezip binary corpus: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_52
+msgid "N/A_Failed to load example corpora: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_6
+msgid "Corpus "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_7
+msgid ""
+"Création de l'espace de travail utilisateur de TXM.\n"
+"Chargement des corpus d'exemple."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_8
+msgid "Chemin d'installation : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_9
+msgid "Échec de lecture du fichier des préférences d'installation"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_init
+msgid "Démarrage..."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_init_failed
+msgid ""
+"Le démarrage de la plateforme a été interrompu, veuillez régler les "
+"préférences de TXM (dans le menu 'Fichier>Préférences')"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_ready
+msgid "Prêt."
+msgstr ""
+
+#: ApplicationWorkbenchWindowAdvisor_statusready
+msgid "Démarrage en cours..."
+msgstr ""
+
+#: ApplicationWorkbenchWindowAdvisor_title
+msgctxt "ApplicationWorkbenchWindowAdvisor_title"
+msgid "TXM"
+msgstr ""
+
+#: Application_1
+msgid "java.version"
+msgstr ""
+
+#: Application_6
+msgid ""
+"Vous devez installer une version de Java au moins égale à 1.6 avant de "
+"lancer TXM, la version courante de Java sur cette machine est "
+msgstr ""
+
+#: AssistedQueryWidget_0
+msgid "Ouvrir l'assistant de requêtes"
+msgstr ""
+
+#: BackToText_0
+msgid "Afficher en plein texte"
+msgstr ""
+
+#: BasesView_1
+msgctxt "BasesView_1"
+"BasesView_1"
+msgid ""
+msgstr ""
+
+#: BasesView_2
+msgctxt "BasesView_2"
+msgid ""
+msgstr ""
+
+#: CAHPreferencePage_0
+msgid "N/A_Display graphics in 2D"
+msgstr ""
+
+#: CAHPreferencePage_1
+msgctxt "CAHPreferencePage_1"
+msgid "N/A_Classification"
+msgstr ""
+
+#: CAHPreferencePage_2
+msgctxt "CAHPreferencePage_2"
+msgid "N/A_Number of cluster"
+msgstr ""
+
+#: CAHPreferencePage_3
+msgctxt "CAHPreferencePage_3"
+msgid "N/A_Method"
+msgstr ""
+
+#: CAHPreferencePage_4
+msgctxt "CAHPreferencePage_4"
+msgid "N/A_Metric"
+msgstr ""
+
+#: CANT_CREATE_GRAPHIC
+msgid "Impossible de créer le graphique"
+msgstr ""
+
+#: CAPreferencePage_0
+msgid "Format de la colonne Qualité"
+msgstr ""
+
+#: CAPreferencePage_1
+msgid "Format de la colonne Contribution"
+msgstr ""
+
+#: CAPreferencePage_2
+msgctxt "CAPreferencePage_2"
+msgid "AFC"
+msgstr ""
+
+#: CAPreferencePage_3
+msgid "Afficher les colonnes dans le graphique du plan factoriel"
+msgstr ""
+
+#: CAPreferencePage_4
+msgid "Afficher les lignes dans le graphique du plan factoriel"
+msgstr ""
+
+#: CAPreferencePage_5
+msgid "Format de la colonne Masse"
+msgstr ""
+
+#: CAPreferencePage_6
+msgid "Format de la colonne Distance"
+msgstr ""
+
+#: CAPreferencePage_7
+msgid "Format de la colonne Cos²"
+msgstr ""
+
+#: CAPreferencePage_8
+msgid "Format de la colonne Coord"
+msgstr ""
+
+#: CQPPreferenceInitializer_0
+msgid "localhost"
+msgstr ""
+
+#: CQPPreferenceInitializer_1
+msgid "anonymous"
+msgstr ""
+
+#: CQPPreferenceInitializer_6
+msgid " -b 1000000"
+msgstr ""
+
+#: CQPPreferencePage_0
+msgid "Configuration du serveur CWB"
+msgstr ""
+
+#: CQPPreferencePage_10
+msgid "Le &Serveur CWB est distant : "
+msgstr ""
+
+#: CQPPreferencePage_11
+msgid "Serveur CWB distant : &Hôte : "
+msgstr ""
+
+#: CQPPreferencePage_12
+msgid "Serveur CWB : &Port : "
+msgstr ""
+
+#: CQPPreferencePage_13
+msgid "Serveur CWB : &Login : "
+msgstr ""
+
+#: CQPPreferencePage_14
+msgid "Serveur CWB : &Mot de passe: "
+msgstr ""
+
+#: CQPPreferencePage_15
+msgid "Chemin vers l'&exécutable du serveur (programme cqpserver)"
+msgstr ""
+
+#: CQPPreferencePage_16
+msgid "Chemin vers le répertoire de &Registre du serveur CWB"
+msgstr ""
+
+#: CQPPreferencePage_17
+msgid "Chemin vers le fichier d'initialisation du serveur CWB"
+msgstr ""
+
+#: CQPPreferencePage_18
+msgid "Options additionnelles pour le serveur CWB : "
+msgstr ""
+
+#: Cannot_ask_simple_when_advance
+msgid ""
+"Ne peut pas demanderCannot ask for the simple tab when the user has selected "
+"the advanced tab"
+msgstr ""
+
+#: ClassificationPreferencePage_1
+msgctxt "ClassificationPreferencePage_1"
+msgid "N/A_Classification"
+msgstr ""
+
+#: ClassificationPreferencePage_2
+msgctxt "ClassificationPreferencePage_2"
+msgid "N/A_Number of cluster"
+msgstr ""
+
+#: ClassificationPreferencePage_3
+msgctxt "ClassificationPreferencePage_3"
+msgid "N/A_Method"
+msgstr ""
+
+#: ClassificationPreferencePage_4
+msgctxt "ClassificationPreferencePage_4"
+msgid "N/A_Metric"
+msgstr ""
+
+#: ColRowInfosLabelProvider_11
+msgctxt "ColRowInfosLabelProvider_11"
+msgid "Dist"
+msgstr ""
+
+#: ColRowInfosLabelProvider_13
+msgctxt "ColRowInfosLabelProvider_13"
+msgid "Cos²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_17
+msgctxt "ColRowInfosLabelProvider_17"
+msgid "Cont"
+msgstr ""
+
+#: ColRowInfosLabelProvider_19
+msgctxt "ColRowInfosLabelProvider_19"
+msgid "Qual"
+msgstr ""
+
+#: ColRowInfosLabelProvider_22
+msgctxt "ColRowInfosLabelProvider_22"
+msgid "Mass"
+msgstr ""
+
+#: ColRowInfosLabelProvider_23
+msgctxt "ColRowInfosLabelProvider_23"
+msgid "Chi²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_24
+msgctxt "ColRowInfosLabelProvider_24"
+msgid "Dist"
+msgstr ""
+
+#: ColRowInfosLabelProvider_25
+msgctxt "ColRowInfosLabelProvider_25"
+msgid "Cos²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_27
+msgctxt "ColRowInfosLabelProvider_27"
+msgid "Cont"
+msgstr ""
+
+#: ColRowInfosLabelProvider_28
+msgctxt "ColRowInfosLabelProvider_28"
+msgid "Qual"
+msgstr ""
+
+#: ColRowInfosLabelProvider_7
+msgctxt "ColRowInfosLabelProvider_7"
+msgid "Mass"
+msgstr ""
+
+#: ColRowInfosLabelProvider_9
+msgctxt "ColRowInfosLabelProvider_9"
+msgid "Chi²"
+msgstr ""
+
+#: ColsRowsInfosEditor_0
+msgctxt "ColsRowsInfosEditor_0"
+msgid "Entrée erronée"
+msgstr ""
+
+#: ColsRowsInfosEditor_1
+msgctxt "ColsRowsInfosEditor_1"
+msgid "Tri terminé."
+msgstr ""
+
+#: ColsRowsInfosEditor_2
+msgid "Infos: "
+msgstr ""
+
+#: ColsRowsInfosEditor_3
+msgctxt "ColsRowsInfosEditor_3"
+msgid "N/A_Sorting column"
+msgstr ""
+
+#: ComplexSortSelector_0
+msgid "Clés de tri : "
+msgstr ""
+
+#: ComplexSortSelector_1
+msgid "Tri multiple : "
+msgstr ""
+
+#: ComplexSortSelector_5
+msgid "Erreur pendant le tri : "
+msgstr ""
+
+#: ComplexSortSelector_6
+msgid "par défaut"
+msgstr ""
+
+#: ComplexSort_0
+msgid "N/A_Opening complex sort dialog"
+msgstr ""
+
+#: ComplexSort_1
+msgid "&Tri multiple"
+msgstr ""
+
+#: ComplexSort_10
+msgid "Le comparateur est invalide"
+msgstr ""
+
+#: ComplexSort_11
+msgctxt "ComplexSort_11"
+msgid "Il faut sélectionner au moins deux comparateurs."
+msgstr ""
+
+#: ComplexSort_12
+msgid "N/A_Adding to selection"
+msgstr ""
+
+#: ComplexSort_14
+msgid "N/A_Remove from selection"
+msgstr ""
+
+#: ComplexSort_16
+msgid "N/A_Moving up the selection"
+msgstr ""
+
+#: ComplexSort_18
+msgid "N/A_Moving down the selection"
+msgstr ""
+
+#: ComplexSort_2
+msgid "Définir et utiliser un tri multiple"
+msgstr ""
+
+#: ComplexSort_3
+msgid "Sélectionnez un tri multiple"
+msgstr ""
+
+#: ComplexSort_4
+msgid "&Nouveau"
+msgstr ""
+
+#: ComplexSort_5
+msgctxt "ComplexSort_5"
+msgid "Créer une nouvelle méthode de tri"
+msgstr ""
+
+#: ComplexSort_6
+msgctxt "ComplexSort_6"
+msgid "Nom : "
+msgstr ""
+
+#: ComplexSort_8
+msgctxt "ComplexSort_8"
+msgid "Le champ Nom est invalide."
+msgstr ""
+
+#: ComplexSort_9
+msgctxt "ComplexSort_9"
+msgid "Le champ Nom est obligatoire."
+msgstr ""
+
+#: ComplexSubcorpusPanel_0
+msgid "Sélectionner"
+msgstr ""
+
+#: ComplexSubcorpusPanel_1
+msgid "tous les critères"
+msgstr ""
+
+#: ComplexSubcorpusPanel_15
+msgctxt "ComplexSubcorpusPanel_15"
+msgid "contient"
+msgstr ""
+
+#: ComplexSubcorpusPanel_16
+msgid "ne contient pas"
+msgstr ""
+
+#: ComplexSubcorpusPanel_19
+msgctxt "ComplexSubcorpusPanel_19"
+msgid ""
+msgstr ""
+
+#: ComplexSubcorpusPanel_2
+msgid "certains critères"
+msgstr ""
+
+#: ComplexSubcorpusPanel_3
+msgid "Structure "
+msgstr ""
+
+#: ComplexSubcorpusPanel_4
+msgid "Requête "
+msgstr ""
+
+#: ComplexSubcorpusPanel_5
+msgid "Rafraichir"
+msgstr ""
+
+#: CompositeSorterCreationDialog_0
+msgctxt "CompositeSorterCreationDialog_0"
+msgid "Créer une nouvelle méthode de tri"
+msgstr ""
+
+#: CompositeSorterCreationDialog_1
+msgctxt "CompositeSorterCreationDialog_1"
+msgid "Nom : "
+msgstr ""
+
+#: CompositeSorterCreationDialog_3
+msgctxt "CompositeSorterCreationDialog_3"
+msgid "Le champ Nom est invalide."
+msgstr ""
+
+#: CompositeSorterCreationDialog_4
+msgctxt "CompositeSorterCreationDialog_4"
+msgid "Le champ Nom est obligatoire."
+msgstr ""
+
+#: CompositeSorterCreationDialog_5
+msgid "Le comparateur est invalide."
+msgstr ""
+
+#: CompositeSorterCreationDialog_6
+msgctxt "CompositeSorterCreationDialog_6"
+msgid "Il faut sélectionner au moins deux comparateurs."
+msgstr ""
+
+#: ComputeCAH_0
+msgid "N/A_Compute Classification"
+msgstr ""
+
+#: ComputeCAH_1
+msgid "N/A_Show graphic"
+msgstr ""
+
+#: ComputeCAH_2
+msgid "N/A_Error: temporary file created cannot be written: "
+msgstr ""
+
+#: ComputeCAH_3
+msgctxt "ComputeCAH_3"
+msgid "N/A_Classification"
+msgstr ""
+
+#: ComputeCAH_4
+msgctxt "ComputeCAH_4"
+msgid "N/A_Number of cluster"
+msgstr ""
+
+#: ComputeCAH_5
+msgctxt "ComputeCAH_5"
+msgid "N/A_Cols"
+msgstr ""
+
+#: ComputeCAH_6
+msgctxt "ComputeCAH_6"
+msgid "N/A_Rows"
+msgstr ""
+
+#: ComputeClassification_0
+msgid "N/A_create Classification"
+msgstr ""
+
+#: ComputeClassification_1
+msgid "N/A_draw Classification"
+msgstr ""
+
+#: ComputeClassification_3
+msgid "N/A_Classification parameters"
+msgstr ""
+
+#: ComputeClassification_4
+msgid "N/A_N cluster"
+msgstr ""
+
+#: ComputeClassification_5
+msgctxt "ComputeClassification_5"
+msgid "N/A_Cols"
+msgstr ""
+
+#: ComputeClassification_6
+msgctxt "ComputeClassification_6"
+msgid "N/A_Rows"
+msgstr ""
+
+#: ComputeConcordance_0
+msgid "Ouverture de la fenêtre de concordance"
+msgstr ""
+
+#: ComputeCoocFromLines_0
+msgid "Calcul des cooccurrents en cours"
+msgstr ""
+
+#: ComputeCoocFromLines_1
+msgid "Ouverture du tableau des cooccurrents"
+msgstr ""
+
+#: ComputeCooccurrences_0
+msgid "Chargement du tableau des cooccurrents"
+msgstr ""
+
+#: ComputeCooccurrences_1
+msgid "impossible de calculer les cooccurrents de la sélection"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_0
+msgid "Analyse factorielle des correspondances"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_1
+msgid "Propriétés d'analyse : "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_2
+msgid "N Lignes max :"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_3
+msgid "fréq. min. : "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_0
+msgctxt "ComputeCorrespondanceAnalysis_0"
+msgid "Calcul de l'analyse factorielle des correspondances"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_1
+msgid "Fin : "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_10
+msgctxt "ComputeCorrespondanceAnalysis_10"
+msgid "Mise à jour des corpus..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_11
+msgid " valeurs propres"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_12
+msgctxt "ComputeCorrespondanceAnalysis_12"
+msgid "Mise à jour des corpus..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_13
+msgid ""
+"Impossible de calculer l'analyse factorielle des correspondances avec moins "
+"de 4 colonnes "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_14
+msgid "Ouverture des résultats de l'analyse factorielle des correspondances"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_15
+msgid "N/A_create CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_16
+msgid "N/A_get LexicalTable CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_17
+msgid "N/A_compute CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_2
+msgctxt "ComputeCorrespondanceAnalysis_2"
+msgid " avec "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_3
+msgctxt "ComputeCorrespondanceAnalysis_3"
+msgid "Erreur"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_4
+msgid "Impossible de calculer l'analyse factorielle avec seulement "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_5
+msgid " parties (minimum  4)."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_6
+msgid "OK"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_7
+msgctxt "ComputeCorrespondanceAnalysis_7"
+msgid "Chargement des résultats de l'analyse factorielle..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_8
+msgctxt "ComputeCorrespondanceAnalysis_8"
+msgid "Chargement des résultats de l'analyse factorielle..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_9
+msgid "Erreur lors du calcul de l'analyse factorielle des correspondances"
+msgstr ""
+
+#: ComputeFrequencyList_0
+msgctxt "ComputeFrequencyList_0"
+msgid "Calcul des fréquences"
+msgstr ""
+
+#: ComputeFrequencyList_1
+msgid "Chargement des fréquences..."
+msgstr ""
+
+#: ComputeFrequencyList_2
+msgctxt "ComputeFrequencyList_2"
+msgid "> dans le corpus "
+msgstr ""
+
+#: ComputeFrequencyList_3
+msgctxt "ComputeFrequencyList_3"
+msgid ""
+msgstr ""
+
+#: ComputeFrequencyList_4
+msgid " pour "
+msgstr ""
+
+#: ComputeFrequencyList_5
+msgid " occurrences (T)"
+msgstr ""
+
+#: ComputeFrequencyList_6
+msgid "Lexique : "
+msgstr ""
+
+#: ComputeFrequencyList_7
+msgctxt "ComputeFrequencyList_7"
+msgid "Terminé : "
+msgstr ""
+
+#: ComputeFrequencyList_8
+msgctxt "ComputeFrequencyList_8"
+msgid " résultats"
+msgstr ""
+
+#: ComputeIndexFromLines_0
+msgid "Envoyer la sélection vers la commande Index"
+msgstr ""
+
+#: ComputeLexicalTable_0
+msgctxt "ComputeLexicalTable_0"
+msgid "Calcul de la table lexicale"
+msgstr ""
+
+#: ComputeLexicalTable_1
+msgid " avec la propriété : "
+msgstr ""
+
+#: ComputeLexicalTable_10
+msgctxt "ComputeLexicalTable_10"
+msgid "Ouverture de la table lexicale"
+msgstr ""
+
+#: ComputeLexicalTable_11
+msgctxt "ComputeLexicalTable_11"
+msgid "N/A_Use all occurrences"
+msgstr ""
+
+#: ComputeLexicalTable_12
+msgctxt "ComputeLexicalTable_12"
+msgid "N/A_User index occrrences"
+msgstr ""
+
+#: ComputeLexicalTable_13
+msgctxt "ComputeLexicalTable_13"
+msgid "N/A_Select which margins you want to use"
+msgstr ""
+
+#: ComputeLexicalTable_16
+msgctxt "ComputeLexicalTable_16"
+msgid "N/A_Use all occurrences"
+msgstr ""
+
+#: ComputeLexicalTable_2
+msgctxt "ComputeLexicalTable_2"
+msgid "Calcul de la table lexicale"
+msgstr ""
+
+#: ComputeLexicalTable_3
+msgctxt "ComputeLexicalTable_3"
+msgid "N/A_Opening marge configuration dialog"
+msgstr ""
+
+#: ComputeLexicalTable_4
+msgctxt "ComputeLexicalTable_4"
+msgid "Ouverture de la table lexicale"
+msgstr ""
+
+#: ComputeLexicalTable_5
+msgid ""
+"Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"corpus"
+msgstr ""
+
+#: ComputeLexicalTable_6
+msgid ""
+"Les vocabulaires doivent être composés de la même combinaison de propriétés "
+": "
+msgstr ""
+
+#: ComputeLexicalTable_7
+msgid "Les vocabulaires doivent avoir la même partition : "
+msgstr ""
+
+#: ComputeLexicalTable_8
+msgid "Calcul de la table lexicale à partir des lexiques"
+msgstr ""
+
+#: ComputeLexicalTable_9
+msgid "N/A_LexicalTable dialog, failed to get corpus size : "
+msgstr ""
+
+#: ComputeReferencer_0
+msgid "Ouverture du résultat du Référenceur"
+msgstr ""
+
+#: ComputeReferencer_1
+msgctxt "ComputeReferencer_1"
+msgid "N/A_Failed to open referencer editor : "
+msgstr ""
+
+#: ComputeProgression_0
+msgid "Rép: "
+msgstr ""
+
+#: ComputeProgression_1
+msgid "progression.svg"
+msgstr ""
+
+#: ComputeProgression_10
+msgid "Ouverture de la progression"
+msgstr ""
+
+#: ComputeProgression_11
+msgid "dossier : "
+msgstr ""
+
+#: ComputeProgression_12
+msgid "Terminé : nombre de positions  "
+msgstr ""
+
+#: ComputeProgression_13
+msgid "Échec du calcul de la progression : "
+msgstr ""
+
+#: ComputeProgression_14
+msgid "N/A_Error: the temporary file "
+msgstr ""
+
+#: ComputeProgression_2
+msgid "Calcul de la progression "
+msgstr ""
+
+#: ComputeProgression_3
+msgid " dans le corpus "
+msgstr ""
+
+#: ComputeProgression_4
+msgid "Calcul de la progression dans "
+msgstr ""
+
+#: ComputeProgression_5
+msgid " avec les requêtes : "
+msgstr ""
+
+#: ComputeProgression_6
+msgid ", l'unité de structure : "
+msgstr ""
+
+#: ComputeProgression_7
+msgid ", la propriété : "
+msgstr ""
+
+#: ComputeProgression_8
+msgid ", cumulatif : "
+msgstr ""
+
+#: ComputeProgression_9
+msgid "N/A_ cannot be written !"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_0
+msgid "Erreur : Fenêtre de dialogue 'Calcul Spécificités'"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_1
+msgid "N/A_Regex syntax error: "
+msgstr ""
+
+#: ComputeSpecificitiesDialog_3
+msgid "Focus: "
+msgstr ""
+
+#: ComputeSpecificitiesDialog_4
+msgid "Focus de partie : "
+msgstr ""
+
+#: ComputeSpecificitiesDialog_9
+msgid "Pas de filtrage de partie disponible"
+msgstr ""
+
+#: ComputeSpecificities_0
+msgid "Calcul des spécificités sur "
+msgstr ""
+
+#: ComputeSpecificities_1
+msgid "&Specificités"
+msgstr ""
+
+#: ComputeSpecificities_10
+msgid "Calcul des spécificités du sous-corpus  "
+msgstr ""
+
+#: ComputeSpecificities_11
+msgctxt "ComputeSpecificities_11"
+msgid " avec le corpus "
+msgstr ""
+
+#: ComputeSpecificities_12
+msgid ". Propriétés : "
+msgstr ""
+
+#: ComputeSpecificities_13
+msgctxt "ComputeSpecificities_13"
+msgid "Terminé : "
+msgstr ""
+
+#: ComputeSpecificities_2
+msgctxt "ComputeSpecificities_2"
+msgid " ("
+msgstr ""
+
+#: ComputeSpecificities_3
+msgid ") avec le focus : "
+msgstr ""
+
+#: ComputeSpecificities_4
+msgid " et le focus de partition : "
+msgstr ""
+
+#: ComputeSpecificities_5
+msgid "Terminé : a trouvé"
+msgstr ""
+
+#: ComputeSpecificities_6
+msgctxt "ComputeSpecificities_6"
+msgid " résultats"
+msgstr ""
+
+#: ComputeSpecificities_7
+msgctxt "ComputeSpecificities_7"
+msgid "Chargement du tableau des spécificités..."
+msgstr ""
+
+#: ComputeSpecificities_9
+msgctxt "ComputeSpecificities_9"
+msgid "Mise à jour des corpus..."
+msgstr ""
+
+#: ComputeSpecifities_0
+msgctxt "ComputeSpecifities_0"
+msgid "Chargement du tableau des spécificités..."
+msgstr ""
+
+#: ComputeSpecifities_10
+msgid "Ouverture du tableau de résultats des spécificités"
+msgstr ""
+
+#: ComputeSpecifities_11
+msgid " une table lexicale"
+msgstr ""
+
+#: ComputeSpecifities_2
+msgctxt "ComputeSpecifities_2"
+msgid "Mise à jour de la vue des corpus..."
+msgstr ""
+
+#: ComputeSpecifities_3
+msgid "Calcul des spécificités sur le sous-corpus   "
+msgstr ""
+
+#: ComputeSpecifities_4
+msgctxt "ComputeSpecifities_4"
+msgid " avec le corpus "
+msgstr ""
+
+#: ComputeSpecifities_5
+msgid ".Propriété : "
+msgstr ""
+
+#: ComputeSpecifities_6
+msgid "Terminé "
+msgstr ""
+
+#: ComputeVocabulary_0
+msgid "Ouverture des résultats de l'index"
+msgstr ""
+
+#: Compute_Specificities
+msgid "Calcul des Specificités."
+msgstr ""
+
+#: ConcordancerPreferencePage_3
+msgid "Paramètres des Concordances "
+msgstr ""
+
+#: ConcordancerPreferencePage_4
+msgid "Nombre de lignes par &Page : "
+msgstr ""
+
+#: ConcordancerPreferencePage_5
+msgid "Longueur en mots du contexte &Gauche"
+msgstr ""
+
+#: ConcordancerPreferencePage_6
+msgid "Longueur en mots du contexte &Droit"
+msgstr ""
+
+#: ConcordancesEditorContributor_0
+msgid "Concordance"
+msgstr ""
+
+#: ConcordancesEditor_0
+msgctxt "ConcordancesEditor_0"
+msgid "Une erreur est survenue lors du calcul de la concordance."
+msgstr ""
+
+#: ConcordancesEditor_1
+msgid "Référence"
+msgstr ""
+
+#: ConcordancesEditor_10
+msgid " sur "
+msgstr ""
+
+#: ConcordancesEditor_11
+msgid "|<"
+msgstr ""
+
+#: ConcordancesEditor_12
+msgid "<"
+msgstr ""
+
+#: ConcordancesEditor_13
+msgid ">"
+msgstr ""
+
+#: ConcordancesEditor_14
+msgid ">|"
+msgstr ""
+
+#: ConcordancesEditor_15
+msgctxt "ConcordancesEditor_15"
+msgid "&Requête : "
+msgstr ""
+
+#: ConcordancesEditor_16
+msgid "&Pivot: "
+msgstr ""
+
+#: ConcordancesEditor_17
+msgctxt "ConcordancesEditor_17"
+msgid "Terminé : "
+msgstr ""
+
+#: ConcordancesEditor_18
+msgid "&Editer"
+msgstr ""
+
+#: ConcordancesEditor_19
+msgid " occurrences"
+msgstr ""
+
+#: ConcordancesEditor_2
+msgid "Contexte gauche"
+msgstr ""
+
+#: ConcordancesEditor_20
+msgid "Chargement des informations sur la ligne..."
+msgstr ""
+
+#: ConcordancesEditor_21
+msgctxt "ConcordancesEditor_21"
+msgid "&Chercher"
+msgstr ""
+
+#: ConcordancesEditor_22
+msgctxt "ConcordancesEditor_22"
+msgid "Une erreur est survenue lors du calcul de la concordance."
+msgstr ""
+
+#: ConcordancesEditor_23
+msgid "BackToText : Projet"
+msgstr ""
+
+#: ConcordancesEditor_24
+msgctxt "ConcordancesEditor_24"
+msgid " n'existe pas"
+msgstr ""
+
+#: ConcordancesEditor_25
+msgid "BackToText : Base "
+msgstr ""
+
+#: ConcordancesEditor_26
+msgid "Projet id "
+msgstr ""
+
+#: ConcordancesEditor_27
+msgid "BackToText : Text"
+msgstr ""
+
+#: ConcordancesEditor_28
+msgid " Base id "
+msgstr ""
+
+#: ConcordancesEditor_29
+msgid "Page non trouvée... pour "
+msgstr ""
+
+#: ConcordancesEditor_3
+msgid "Pivot"
+msgstr ""
+
+#: ConcordancesEditor_30
+msgid "BackToText : L'édition par défault est introuvable"
+msgstr ""
+
+#: ConcordancesEditor_31
+msgid " Text id "
+msgstr ""
+
+#: ConcordancesEditor_32
+msgid "Objets recupérés"
+msgstr ""
+
+#: ConcordancesEditor_33
+msgctxt "ConcordancesEditor_33"
+msgid "trier par : "
+msgstr ""
+
+#: ConcordancesEditor_34
+msgid "Chargement de la concordance"
+msgstr ""
+
+#: ConcordancesEditor_37
+msgid "N/A_Sorting reference column"
+msgstr ""
+
+#: ConcordancesEditor_38
+msgid "N/A_Hide settings"
+msgstr ""
+
+#: ConcordancesEditor_39
+msgid "N/A_Show settings"
+msgstr ""
+
+#: ConcordancesEditor_4
+msgid "Contexte droit"
+msgstr ""
+
+#: ConcordancesEditor_41
+msgid "N/A_Sorting left context olumn"
+msgstr ""
+
+#: ConcordancesEditor_42
+msgid "Le corpus"
+msgstr ""
+
+#: ConcordancesEditor_43
+msgid " n'a pas de références par défaut : "
+msgstr ""
+
+#: ConcordancesEditor_45
+msgid "N/A_Sorting keyword column"
+msgstr ""
+
+#: ConcordancesEditor_46
+msgid "Impossible d'afficher en plein texte : "
+msgstr ""
+
+#: ConcordancesEditor_48
+msgid "N/A_Sorting right context column"
+msgstr ""
+
+#: ConcordancesEditor_5
+msgid "Concordance de <"
+msgstr ""
+
+#: ConcordancesEditor_50
+msgid "N/A_Opening corpus edition"
+msgstr ""
+
+#: ConcordancesEditor_51
+msgctxt "ConcordancesEditor_51"
+msgid "Tri terminé."
+msgstr ""
+
+#: ConcordancesEditor_52
+msgctxt "ConcordancesEditor_52"
+msgid "un résultat"
+msgstr ""
+
+#: ConcordancesEditor_53
+msgid "pas de résultat"
+msgstr ""
+
+#: ConcordancesEditor_55
+msgid "N/A_Opening view property dialog"
+msgstr ""
+
+#: ConcordancesEditor_56
+msgid "N/A_Start computing concordance"
+msgstr ""
+
+#: ConcordancesEditor_6
+msgctxt "ConcordancesEditor_6"
+msgid " ("
+msgstr ""
+
+#: ConcordancesEditor_7
+msgctxt "ConcordancesEditor_7"
+msgid "> dans le corpus "
+msgstr ""
+
+#: ConcordancesEditor_8
+msgid "Affichage des occurrences "
+msgstr ""
+
+#: ConcordancesEditor_9
+msgid " à "
+msgstr ""
+
+#: CoocPreferencePage_0
+msgid "Format de l'indice (par défault 0.0000E00)"
+msgstr ""
+
+#: CoocPreferencePage_1
+msgid "Seuil minimum de fréquence du cooccurrent"
+msgstr ""
+
+#: CoocPreferencePage_2
+msgid "Seuil minimum de fréquence de cooccurrences"
+msgstr ""
+
+#: CoocPreferencePage_3
+msgid "Seuil minimum de l'indice de cooccurrences"
+msgstr ""
+
+#: CoocPreferencePage_5
+msgid "N/A_Cooccurrences"
+msgstr ""
+
+#: CooccurrenceEditorInput_0
+msgid "Cooccurrences"
+msgstr ""
+
+#: CooccurrencesEditor_0
+msgctxt "CooccurrencesEditor_0"
+msgid "trier par : "
+msgstr ""
+
+#: CooccurrencesEditor_1
+msgctxt "CooccurrencesEditor_1"
+msgid "Requête : "
+msgstr ""
+
+#: CooccurrencesEditor_10
+msgid "Cofréquence"
+msgstr ""
+
+#: CooccurrencesEditor_11
+msgid "La valeur de l'indice n'est pas un flottant double"
+msgstr ""
+
+#: CooccurrencesEditor_12
+msgid "Calcul des cooccurrents de "
+msgstr ""
+
+#: CooccurrencesEditor_13
+msgid "Réglage du calcul des cooccurrents"
+msgstr ""
+
+#: CooccurrencesEditor_14
+msgid "Calcul des cooccurrents"
+msgstr ""
+
+#: CooccurrencesEditor_15
+msgid "Affichage des résultats"
+msgstr ""
+
+#: CooccurrencesEditor_16
+msgid "N/A_Can't compute cooccurrences with no context"
+msgstr ""
+
+#: CooccurrencesEditor_17
+msgid "Score"
+msgstr ""
+
+#: CooccurrencesEditor_18
+msgid "Le seuil d'indice doit être un nombre réel"
+msgstr ""
+
+#: CooccurrencesEditor_2
+msgid "Calculer"
+msgstr ""
+
+#: CooccurrencesEditor_20
+msgid "Calcul des cooccurrents de <"
+msgstr ""
+
+#: CooccurrencesEditor_21
+msgctxt "CooccurrencesEditor_21"
+msgid "> dans le corpus "
+msgstr ""
+
+#: CooccurrencesEditor_22
+msgctxt "CooccurrencesEditor_22"
+msgid ""
+msgstr ""
+
+#: CooccurrencesEditor_23
+msgid "Terminé : pas de résultat."
+msgstr ""
+
+#: CooccurrencesEditor_24
+msgid "Terminé : un résultat."
+msgstr ""
+
+#: CooccurrencesEditor_25
+msgctxt "CooccurrencesEditor_25"
+msgid "Terminé : "
+msgstr ""
+
+#: CooccurrencesEditor_26
+msgctxt "CooccurrencesEditor_26"
+msgid " résultats"
+msgstr ""
+
+#: CooccurrencesEditor_27
+msgid "N/A_build queries"
+msgstr ""
+
+#: CooccurrencesEditor_28
+msgid "N/A_get matches"
+msgstr ""
+
+#: CooccurrencesEditor_29
+msgid "N/A_build line signatures"
+msgstr ""
+
+#: CooccurrencesEditor_3
+msgid "Propriétés des cooccurrents : "
+msgstr ""
+
+#: CooccurrencesEditor_30
+msgid "N/A_counting"
+msgstr ""
+
+#: CooccurrencesEditor_31
+msgid "N/A_build lexical table"
+msgstr ""
+
+#: CooccurrencesEditor_32
+msgid "N/A_get specif scores"
+msgstr ""
+
+#: CooccurrencesEditor_33
+msgid "N/A_Start computing cooccurrences"
+msgstr ""
+
+#: CooccurrencesEditor_34
+msgid "N/A_ cooccurrents for "
+msgstr ""
+
+#: CooccurrencesEditor_35
+msgid "N/A_ keywords"
+msgstr ""
+
+#: CooccurrencesEditor_4
+msgid "Seuils : Fréq ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_5
+msgid " Co-fréq ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_6
+msgid " Score ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_7
+msgctxt "CooccurrencesEditor_7"
+msgid "Fréquence"
+msgstr ""
+
+#: CooccurrencesEditor_8
+msgid "Cooccurrent"
+msgstr ""
+
+#: CooccurrencesEditor_9
+msgid "Distance moyenne"
+msgstr ""
+
+#: CooccurrencesToConcordances_0
+msgid "Requête forgée "
+msgstr ""
+
+#: CorporaView_0
+msgid "Corpus"
+msgstr ""
+
+#: CorporaView_1
+msgctxt "CorporaView_1"
+msgid "N/A_Error: "
+msgstr ""
+
+#: CorporaView_10
+msgid "&Rafraîchir"
+msgstr ""
+
+#: CorporaView_11
+msgid "Rafraîchir l'affichage"
+msgstr ""
+
+#: CorporaView_2
+msgid "Échec de récupération de la dimension du corpus "
+msgstr ""
+
+#: CorporaView_3
+msgid "Une erreur est survenue lors du calcul de la concordance"
+msgstr ""
+
+#: CorporaView_4
+msgctxt "CorporaView_4"
+msgid ""
+msgstr ""
+
+#: CorporaView_5
+msgid "Une erreur est survenue lors du calcul des spécificités"
+msgstr ""
+
+#: CorporaView_6
+msgctxt "CorporaView_6"
+msgid "N/A_Failed to open referencer editor : "
+msgstr ""
+
+#: CorporaView_7
+msgid "Une erreur est survenue lors du calcul du tableau lexical"
+msgstr ""
+
+#: CorporaView_8
+msgid "#PopupMenu"
+msgstr ""
+
+#: CorporaView_9
+msgctxt "CorporaView_9"
+msgid "N/A_ cannot be written"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_0
+msgctxt "CorrespondanceAnalysisEditorInput_0"
+msgid "Valeurs propres"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_1
+msgid "Fact. plan"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_10
+msgctxt "CorrespondanceAnalysisEditorInput_10"
+msgid "AFC"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_11
+msgctxt "CorrespondanceAnalysisEditorInput_11"
+msgid "Type"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_12
+msgctxt "CorrespondanceAnalysisEditorInput_12"
+msgid "Fréquence"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_2
+msgid "Diagramme en bâtons des valeurs propres"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_21
+msgid "Lignes"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_23
+msgctxt "CorrespondanceAnalysisEditorInput_23"
+msgid "Q12"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_24
+msgctxt "CorrespondanceAnalysisEditorInput_24"
+msgid "Q13"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_25
+msgctxt "CorrespondanceAnalysisEditorInput_25"
+msgid "Q23"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_26
+msgctxt "CorrespondanceAnalysisEditorInput_26"
+msgid "Mass"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_27
+msgctxt "CorrespondanceAnalysisEditorInput_27"
+msgid "Dist"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_29
+msgctxt "CorrespondanceAnalysisEditorInput_29"
+msgid "Cont"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_3
+msgid "le résultat de l'analyse des correspondances ne peut être null "
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_30
+msgctxt "CorrespondanceAnalysisEditorInput_30"
+msgid "Cos²"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_32
+msgctxt "CorrespondanceAnalysisEditorInput_32"
+msgid "c1"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_33
+msgctxt "CorrespondanceAnalysisEditorInput_33"
+msgid "c2"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_34
+msgctxt "CorrespondanceAnalysisEditorInput_34"
+msgid "c3"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_4
+msgid "Facteur"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_44
+msgid "Colonnes"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_46
+msgctxt "CorrespondanceAnalysisEditorInput_46"
+msgid "Q12"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_47
+msgctxt "CorrespondanceAnalysisEditorInput_47"
+msgid "Q13"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_48
+msgctxt "CorrespondanceAnalysisEditorInput_48"
+msgid "Q23"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_49
+msgctxt "CorrespondanceAnalysisEditorInput_49"
+msgid "Mass"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_5
+msgctxt "CorrespondanceAnalysisEditorInput_5"
+msgid "Valeurs propres"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_50
+msgctxt "CorrespondanceAnalysisEditorInput_50"
+msgid "Dist"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_52
+msgctxt "CorrespondanceAnalysisEditorInput_52"
+msgid "Cont"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_53
+msgctxt "CorrespondanceAnalysisEditorInput_53"
+msgid "Cos²"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_55
+msgctxt "CorrespondanceAnalysisEditorInput_55"
+msgid "c1"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_56
+msgctxt "CorrespondanceAnalysisEditorInput_56"
+msgid "c2"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_57
+msgctxt "CorrespondanceAnalysisEditorInput_57"
+msgid "c3"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_6
+msgctxt "CorrespondanceAnalysisEditorInput_6"
+msgid "Entier"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_7
+msgctxt "CorrespondanceAnalysisEditorInput_7"
+msgid "Flottant"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_8
+msgid "Info Lignes"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_9
+msgid "Info Colonnes"
+msgstr ""
+
+#: Correspondance_Analysis
+msgctxt "Correspondance_Analysis"
+msgid "Calcul de l'analyse factorielle des correspondances"
+msgstr ""
+
+#: CreateFile_1
+msgid "N/A_New file "
+msgstr ""
+
+#: CreateFolder_1
+msgid "N/A_New folder "
+msgstr ""
+
+#: CreateFrequencyListDialog_0
+msgctxt "CreateFrequencyListDialog_0"
+msgid "Table lexicale"
+msgstr ""
+
+#: CreateFrequencyList_0
+msgid "Calcul de la liste des fréquences sur "
+msgstr ""
+
+#: CreateFrequencyList_1
+msgid "&Liste des fréquences"
+msgstr ""
+
+#: CreateFrequencyList_10
+msgctxt "CreateFrequencyList_10"
+msgid ""
+msgstr ""
+
+#: CreateFrequencyList_2
+msgid "Création d'une liste de fréquences."
+msgstr ""
+
+#: CreateFrequencyList_3
+msgid "Terminé : a trouvé "
+msgstr ""
+
+#: CreateFrequencyList_4
+msgctxt "CreateFrequencyList_4"
+msgid "Erreur lors du calcul de la liste des fréquences"
+msgstr ""
+
+#: CreateFrequencyList_5
+msgid " elements"
+msgstr ""
+
+#: CreateFrequencyList_6
+msgctxt "CreateFrequencyList_6"
+msgid "Erreur lors du calcul de la liste des fréquences"
+msgstr ""
+
+#: CreateFrequencyList_7
+msgctxt "CreateFrequencyList_7"
+msgid "Calcul des fréquences"
+msgstr ""
+
+#: CreateFrequencyList_8
+msgid "Chargement du tableau des fréquences..."
+msgstr ""
+
+#: CreatePartitionDialog_0
+msgid "Créer une Partition"
+msgstr ""
+
+#: CreatePartitionDialog_1
+msgctxt "CreatePartitionDialog_1"
+msgid "Simple"
+msgstr ""
+
+#: CreatePartitionDialog_10
+msgctxt "CreatePartitionDialog_10"
+msgid "&Partie "
+msgstr ""
+
+#: CreatePartitionDialog_11
+msgid "Toutes les valeurs de la propriété doivent être attribuées à une partie"
+msgstr ""
+
+#: CreatePartitionDialog_13
+msgid "Nom invalide"
+msgstr ""
+
+#: CreatePartitionDialog_14
+msgctxt "CreatePartitionDialog_14"
+msgid "le champ Nom ne doit pas être vide"
+msgstr ""
+
+#: CreatePartitionDialog_15
+msgctxt "CreatePartitionDialog_15"
+msgid "Requête invalide"
+msgstr ""
+
+#: CreatePartitionDialog_16
+msgid "Les requêtes ne doivent pas être vides"
+msgstr ""
+
+#: CreatePartitionDialog_2
+msgctxt "CreatePartitionDialog_2"
+msgid "&Structure : "
+msgstr ""
+
+#: CreatePartitionDialog_20
+msgid ""
+"Cannot ask for the advanced tab when the user has selected the simple tab"
+msgstr ""
+
+#: CreatePartitionDialog_3
+msgctxt "CreatePartitionDialog_3"
+msgid "Assisté"
+msgstr ""
+
+#: CreatePartitionDialog_4
+msgid "&Propriété: "
+msgstr ""
+
+#: CreatePartitionDialog_5
+msgctxt "CreatePartitionDialog_5"
+msgid "Avancé"
+msgstr ""
+
+#: CreatePartitionDialog_6
+msgctxt "CreatePartitionDialog_6"
+msgid "&Nom: "
+msgstr ""
+
+#: CreatePartitionDialog_7
+msgctxt "CreatePartitionDialog_7"
+msgid "&Partie "
+msgstr ""
+
+#: CreatePartitionDialog_9
+msgid "N/A_No partition name was specified. We've generated one."
+msgstr ""
+
+#: CreatePartition_0
+msgid "Création d'une partition sur "
+msgstr ""
+
+#: CreatePartition_1
+msgid "Nouvelle &Partition"
+msgstr ""
+
+#: CreatePartition_2
+msgid "Créer une nouvelle partition à partir d'un corpus"
+msgstr ""
+
+#: CreatePartition_3
+msgid " unité de structure : "
+msgstr ""
+
+#: CreatePartition_4
+msgid ", propriétés : "
+msgstr ""
+
+#: CreatePartition_5
+msgctxt "CreatePartition_5"
+msgid "Terminé : "
+msgstr ""
+
+#: CreatePartition_6
+msgid " partie(s)"
+msgstr ""
+
+#: CreatePartition_7
+msgid "Erreur lors de la création de la partition"
+msgstr ""
+
+#: CreatePartition_8
+msgctxt "CreatePartition_8"
+msgid ""
+msgstr ""
+
+#: CreatePartition_9
+msgctxt "CreatePartition_9"
+msgid ""
+msgstr ""
+
+#: CreateSubCorpus_1
+msgctxt "CreateSubCorpus_1"
+msgid " avec "
+msgstr ""
+
+#: CreateSubCorpus_2
+msgid " struct : "
+msgstr ""
+
+#: CreateSubCorpus_begin
+msgctxt "CreateSubCorpus_begin"
+msgid "Nouveau &Sous-corpus"
+msgstr ""
+
+#: CreateSubCorpus_create
+msgctxt "CreateSubCorpus_create"
+msgid "Créer un nouveau sous-corpus."
+msgstr ""
+
+#: CreateSubCorpus_refresh
+msgctxt "CreateSubCorpus_refresh"
+msgid "Mise à jour de la vue des corpus..."
+msgstr ""
+
+#: CreateSubcorpusDialog_0
+msgid "Créer un sous-corpus"
+msgstr ""
+
+#: CreateSubcorpusDialog_1
+msgctxt "CreateSubcorpusDialog_1"
+msgid "&Nom: "
+msgstr ""
+
+#: CreateSubcorpusDialog_10
+msgid "&Requête: "
+msgstr ""
+
+#: CreateSubcorpusDialog_11
+msgctxt "CreateSubcorpusDialog_11"
+msgid "Nom"
+msgstr ""
+
+#: CreateSubcorpusDialog_12
+msgctxt "CreateSubcorpusDialog_12"
+msgid "le champ Nom ne doit pas être vide"
+msgstr ""
+
+#: CreateSubcorpusDialog_13
+msgctxt "CreateSubcorpusDialog_13"
+msgid "Requête invalide"
+msgstr ""
+
+#: CreateSubcorpusDialog_14
+msgctxt "CreateSubcorpusDialog_14"
+msgid "le champ Requete ne doit pas être vide"
+msgstr ""
+
+#: CreateSubcorpusDialog_2
+msgctxt "CreateSubcorpusDialog_2"
+msgid "Simple"
+msgstr ""
+
+#: CreateSubcorpusDialog_3
+msgctxt "CreateSubcorpusDialog_3"
+msgid "&Structure : "
+msgstr ""
+
+#: CreateSubcorpusDialog_5
+msgid "&Propriété : "
+msgstr ""
+
+#: CreateSubcorpusDialog_6
+msgid "&Valeur : "
+msgstr ""
+
+#: CreateSubcorpusDialog_7
+msgctxt "CreateSubcorpusDialog_7"
+msgid "Assisté"
+msgstr ""
+
+#: CreateSubcorpusDialog_8
+msgid "N/A_No subcorpus name was specified. We've generated one."
+msgstr ""
+
+#: CreateSubcorpusDialog_9
+msgctxt "CreateSubcorpusDialog_9"
+msgid "Avancé"
+msgstr ""
+
+#: CreateSubcorpus_0
+msgid "Création d'un Sous-corpus sur "
+msgstr ""
+
+#: CreateSubcorpus_1
+msgctxt "CreateSubcorpus_1"
+msgid "Nouveau &Sous-corpus"
+msgstr ""
+
+#: CreateSubcorpus_10
+msgctxt "CreateSubcorpus_10"
+msgid ""
+msgstr ""
+
+#: CreateSubcorpus_2
+msgctxt "CreateSubcorpus_2"
+msgid "Créer un nouveau sous-corpus."
+msgstr ""
+
+#: CreateSubcorpus_3
+msgid ", requête : "
+msgstr ""
+
+#: CreateSubcorpus_4
+msgid ", nom : "
+msgstr ""
+
+#: CreateSubcorpus_5
+msgid "Erreur lors de la création du sous-corpus"
+msgstr ""
+
+#: CreateSubcorpus_6
+msgctxt "CreateSubcorpus_6"
+msgid "Terminé : "
+msgstr ""
+
+#: CreateSubcorpus_7
+msgid "Calcul d'un sous-corpus sur"
+msgstr ""
+
+#: CreateSubcorpus_8
+msgid "Terminé : créé  "
+msgstr ""
+
+#: CreateSubcorpus_9
+msgid "Create subcorpus in searchengine"
+msgstr ""
+
+#: DefineReferencePattern_0
+msgid "Définition du patron des références"
+msgstr ""
+
+#: DefineReferencePattern_1
+msgid "Définir le patron des &références"
+msgstr ""
+
+#: DefineReferencePattern_2
+msgid "Définir le patron des références"
+msgstr ""
+
+#: DeleteInCorporaView_1
+msgid "Error lors de la suppression du sous-corpus"
+msgstr ""
+
+#: DeleteInCorporaView_2
+msgid "Error lors de la suppression de la partition"
+msgstr ""
+
+#: DeleteLines_0
+msgid "Le tableau doit comporter au moins une ligne"
+msgstr ""
+
+#: DeleteLines_1
+msgctxt "DeleteLines_1"
+msgid "En êtes vous sûr(e) ?"
+msgstr ""
+
+#: DeleteObject_0
+msgid "Voulez-vous vraiment supprimer "
+msgstr ""
+
+#: DeleteObject_1
+msgid " ?"
+msgstr ""
+
+#: DeleteObject_10
+msgid "Objet supprimé : "
+msgstr ""
+
+#: DeleteObject_11
+msgid "Index supprimées : "
+msgstr ""
+
+#: DeleteObject_12
+msgid "Base supprimée : "
+msgstr ""
+
+#: DeleteObject_2
+msgid "Supprimer l'objet "
+msgstr ""
+
+#: DeleteObject_3
+msgid "Erreur : delete() a retourné 'false'"
+msgstr ""
+
+#: DeleteObject_4
+msgid "N/A_Error while delete "
+msgstr ""
+
+#: DeleteObject_5
+msgid "N/A_Deleting: "
+msgstr ""
+
+#: DeleteObject_7
+msgid "Partition supprimée : "
+msgstr ""
+
+#: DeleteObject_8
+msgid "Lexique supprimé : "
+msgstr ""
+
+#: DeleteObject_9
+msgid "Specificitées supprimées : "
+msgstr ""
+
+#: DiagnosticPreferencePage_1
+msgid "Description"
+msgstr ""
+
+#: DiagnosticPreferencePage_2
+msgid "Nombre de valeurs de propriété affiché"
+msgstr ""
+
+#: DiagnosticPreferencePage_3
+msgid "N/A_Order partition's parts by size"
+msgstr ""
+
+#: Diagnostique_0
+msgid "Propriétés des unités de structures : "
+msgstr ""
+
+#: Diagnostique_1
+msgid "Propriétés des unités lexicales : "
+msgstr ""
+
+#: Diagnostique_10
+msgid "N/A_get structural units data"
+msgstr ""
+
+#: Diagnostique_11
+msgid "N/A_Open editor..."
+msgstr ""
+
+#: Diagnostique_2
+msgid " existe déjà. Voulez-vous le recalculer ?"
+msgstr ""
+
+#: Diagnostique_3
+msgid "La Base du corpus "
+msgstr ""
+
+#: Diagnostique_4
+msgid " n'a pas été trouvée."
+msgstr ""
+
+#: Diagnostique_7
+msgid "N/A_create Informations"
+msgstr ""
+
+#: Diagnostique_8
+msgid "N/A_get general data"
+msgstr ""
+
+#: Diagnostique_9
+msgid "N/A_get lexical properties data"
+msgstr ""
+
+#: DictionnaryEditor_0
+msgid "Lexique:\n"
+msgstr ""
+
+#: DictionnaryEditor_1
+msgctxt "DictionnaryEditor_1"
+msgid "\tPartition: "
+msgstr ""
+
+#: DictionnaryEditor_10
+msgctxt "DictionnaryEditor_10"
+msgid "\tFmax: "
+msgstr ""
+
+#: DictionnaryEditor_3
+msgctxt "DictionnaryEditor_3"
+msgid "\tCorpus: "
+msgstr ""
+
+#: DictionnaryEditor_5
+msgctxt "DictionnaryEditor_5"
+msgid "\tRequête: "
+msgstr ""
+
+#: DictionnaryEditor_7
+msgctxt "DictionnaryEditor_7"
+msgid "\tPropriétés: "
+msgstr ""
+
+#: DictionnaryEditor_9
+msgctxt "DictionnaryEditor_9"
+msgid "\tFmin: "
+msgstr ""
+
+#: ERROR_WHILE_LOADING_CONCORDANCE_LINE
+msgid "Une erreur est survenue lors du chargement des lignes de la concordance"
+msgstr ""
+
+#: EmpantWidget_0
+msgid "Contexte : "
+msgstr ""
+
+#: EmpantWidget_1
+msgid "mot"
+msgstr ""
+
+#: EmpantWidget_2
+msgid "structure"
+msgstr ""
+
+#: EmpantWidget_3
+msgid "de -"
+msgstr ""
+
+#: EmpantWidget_4
+msgid "à -"
+msgstr ""
+
+#: EmpantWidget_5
+msgid "et de"
+msgstr ""
+
+#: EmpantWidget_6
+msgid "à"
+msgstr ""
+
+#: EmpantWidget_7
+msgid "inclure la structure du pivot dans les décomptes"
+msgstr ""
+
+#: Error_computing_specificities
+msgid "Erreur lors du calcul des spécificités {1}"
+msgstr ""
+
+#: Error_creating_partition
+msgid "Erreur lors de la création de la partition : %s"
+msgstr ""
+
+#: ExecuteRText_1
+msgid "N/A_Error while executing R code "
+msgstr ""
+
+#: ExecuteScriptGroovy_0
+msgid "Le fichier de script "
+msgstr ""
+
+#: ExecuteScriptGroovy_1
+msgctxt "ExecuteScriptGroovy_1"
+msgid " n'existe pas"
+msgstr ""
+
+#: ExecuteScriptGroovy_10
+msgid "fin de l'exécution "
+msgstr ""
+
+#: ExecuteScriptGroovy_4
+msgid "causé par:\n"
+msgstr ""
+
+#: ExecuteScriptGroovy_6
+msgid "début de l'exécution de  "
+msgstr ""
+
+#: ExecuteScriptGroovy_Error_loading
+msgid "Erreur lors du chargement du script : "
+msgstr ""
+
+#: ExecuteScriptGroovy_Error_open
+msgid "Erreur lors de l'ouverture du script"
+msgstr ""
+
+#: ExecuteScriptImport_0
+msgid "N/A_Start importing"
+msgstr ""
+
+#: ExecuteScriptImport_1
+msgid "Fichier script"
+msgstr ""
+
+#: ExecuteScriptImport_10
+msgctxt "ExecuteScriptImport_10"
+msgid " seront supprimés"
+msgstr ""
+
+#: ExecuteScriptImport_11
+msgid "Importation du nouvel espace de travail utilisateur"
+msgstr ""
+
+#: ExecuteScriptImport_19
+msgid "N/A_writing import report..."
+msgstr ""
+
+#: ExecuteScriptImport_2
+msgid "Début de l'exécution du script"
+msgstr ""
+
+#: ExecuteScriptImport_3
+msgctxt "ExecuteScriptImport_3"
+msgid "Redémarrage de la plateforme TXM..."
+msgstr ""
+
+#: ExecuteScriptImport_4
+msgctxt "ExecuteScriptImport_4"
+msgid "TXM prêt."
+msgstr ""
+
+#: ExecuteScriptImport_43
+msgid "N/A_Failed to save report: "
+msgstr ""
+
+#: ExecuteScriptImport_5
+msgctxt "ExecuteScriptImport_5"
+msgid "TXM prêt."
+msgstr ""
+
+#: ExecuteScriptImport_6
+msgid "fin de l'exécution"
+msgstr ""
+
+#: ExecuteScriptImport_7
+msgctxt "ExecuteScriptImport_7"
+msgid " n'existe pas"
+msgstr ""
+
+#: ExecuteScriptImport_8
+msgctxt "ExecuteScriptImport_8"
+msgid "Confirmer"
+msgstr ""
+
+#: ExecuteScriptImport_9
+msgctxt "ExecuteScriptImport_9"
+msgid "La base et le corpus "
+msgstr ""
+
+#: ExecuteScriptR_0
+msgid "N/A_The script R does not exists : "
+msgstr ""
+
+#: ExecuteScriptR_1
+msgid "N/A_Error while executing R file "
+msgstr ""
+
+#: ExecuteText_0
+msgid "Le fichier de script  "
+msgstr ""
+
+#: ExecuteText_1
+msgctxt "ExecuteText_1"
+msgid " n'existe pas"
+msgstr ""
+
+#: Exit_Menu_Label
+msgid "Quitter"
+msgstr ""
+
+#: Explorer_0
+msgid "N/A_Folder "
+msgstr ""
+
+#: Explorer_1
+msgid "^"
+msgstr ""
+
+#: Explorer_11
+msgid "N/A_ should not be delete"
+msgstr ""
+
+#: Explorer_2
+msgid "GO"
+msgstr ""
+
+#: Explorer_3
+msgctxt "Explorer_3"
+msgid "TXM"
+msgstr ""
+
+#: ExportCorpus_0
+msgid "N/A_Failed to export corpus: "
+msgstr ""
+
+#: ExportPreferencePage_1
+msgid "Configuration de l'export"
+msgstr ""
+
+#: ExportPreferencePage_18
+msgid "N/A_Column separator"
+msgstr ""
+
+#: ExportPreferencePage_19
+msgid "N/A_Text separator"
+msgstr ""
+
+#: ExportPreferencePage_21
+msgid "N/A_Default R graphical device"
+msgstr ""
+
+#: ExportPreferencePage_3
+msgid "encodage des fichiers"
+msgstr ""
+
+#: ExportPreferencePage_4
+msgid "Montrer le résultat de l'export dans l'éditeur de texte"
+msgstr ""
+
+#: ExportResult_0
+msgid "Exportation des résultats."
+msgstr ""
+
+#: ExportResult_1
+msgid "Erreur : "
+msgstr ""
+
+#: ExportResult_2
+msgid " is not a file"
+msgstr ""
+
+#: ExportResult_3
+msgid "Export : impossible de créer le fichier : "
+msgstr ""
+
+#: ExportResult_5
+msgid "N/A_ is not readable"
+msgstr ""
+
+#: ExportResult_6
+msgid "N/A_Failed to export result: "
+msgstr ""
+
+#: ExportSVG_0
+msgid "Exporter le graphique..."
+msgstr ""
+
+#: ExportSVG_1
+msgid "Impossible de copier"
+msgstr ""
+
+#: ExportSVG_2
+msgid " to "
+msgstr ""
+
+#: FAILED_TO_PARSE_OPTIONS
+msgid "Échec d'analyse des options de TXM"
+msgstr ""
+
+#: FAILED_TO_SAVE_PREFERENCES
+msgid "Échec de la sauvegarde des préférences."
+msgstr ""
+
+#: FactorialMapEditor_0
+msgid "Facteurs: "
+msgstr ""
+
+#: FactorialMapEditor_10
+msgid "N/A_Internal error: CA plan selection error"
+msgstr ""
+
+#: FactorialMapEditor_11
+msgid "Redimensionner"
+msgstr ""
+
+#: FactorialMapEditor_13
+msgid "N/A_Reseting factorial map"
+msgstr ""
+
+#: FactorialMapEditor_15
+msgctxt "FactorialMapEditor_15"
+msgid "N/A_Error: "
+msgstr ""
+
+#: FactorialMapEditor_16
+msgid "N/A_ is not writeable"
+msgstr ""
+
+#: FactorialMapEditor_4
+msgid "Afficher : "
+msgstr ""
+
+#: FactorialMapEditor_5
+msgid "colonnes"
+msgstr ""
+
+#: FactorialMapEditor_6
+msgid "lignes"
+msgstr ""
+
+#: FactorialMapEditor_7
+msgid "Rafraîchir"
+msgstr ""
+
+#: FactorialMapEditor_8
+msgid "N/A_Reloading factorial map"
+msgstr ""
+
+#: FrequencyListEditorInput_0
+msgctxt "FrequencyListEditorInput_0"
+msgid "Lexique"
+msgstr ""
+
+#: FrequencyListEditorInput_1
+msgid "Pareto"
+msgstr ""
+
+#: FrequencyListEditorInput_10
+msgctxt "FrequencyListEditorInput_10"
+msgid "Fréquence"
+msgstr ""
+
+#: FrequencyListEditorInput_11
+msgid "ajouter l'entrée de pareto"
+msgstr ""
+
+#: FrequencyListEditorInput_2
+msgid "Le lexique ne peut être vide"
+msgstr ""
+
+#: FrequencyListEditorInput_3
+msgctxt "FrequencyListEditorInput_3"
+msgid "Forme"
+msgstr ""
+
+#: FrequencyListEditorInput_4
+msgctxt "FrequencyListEditorInput_4"
+msgid "Fréquence"
+msgstr ""
+
+#: FrequencyListEditorInput_5
+msgctxt "FrequencyListEditorInput_5"
+msgid "Chaîne de caractères"
+msgstr ""
+
+#: FrequencyListEditorInput_6
+msgctxt "FrequencyListEditorInput_6"
+msgid "Entier"
+msgstr ""
+
+#: FrequencyListEditorInput_7
+msgid "Calcul du graphique de pareto"
+msgstr ""
+
+#: FrequencyListEditorInput_9
+msgctxt "FrequencyListEditorInput_9"
+msgid "Type"
+msgstr ""
+
+#: GenericMultiPageEditor_0
+msgid "création de la page : "
+msgstr ""
+
+#: GenericMultiPageEditor_1
+msgid "La donnée "
+msgstr ""
+
+#: GenericMultiPageEditor_2
+msgid " ne peut pas être affichée."
+msgstr ""
+
+#: GenericMultiPageEditor_3
+msgid "Le nombre d'éditeurs ("
+msgstr ""
+
+#: GenericMultiPageEditor_4
+msgid ") et le nombre de données ("
+msgstr ""
+
+#: GenericMultiPageEditor_5
+msgid ") doivent être égaux."
+msgstr ""
+
+#: GenericMultiPageEditor_6
+msgid ", avec "
+msgstr ""
+
+#: GenericMultiPageEditor_7
+msgid "nom de la partie de l'éditeur : "
+msgstr ""
+
+#: GetConcordancesDialog_0
+msgid "ERREUR : Fenêtre de dialog 'GetConcordancesDialog'"
+msgstr ""
+
+#: GetConcordancesDialog_1
+msgid "Calcul des spécificités "
+msgstr ""
+
+#: GetConcordancesDialog_10
+msgctxt "GetConcordancesDialog_10"
+msgid "Requête invalide"
+msgstr ""
+
+#: GetConcordancesDialog_11
+msgctxt "GetConcordancesDialog_11"
+msgid "le champ Requete ne doit pas être vide"
+msgstr ""
+
+#: GetConcordancesDialog_13
+msgid "Vous devez sélectionner une propriété d'analyse"
+msgstr ""
+
+#: GetConcordancesDialog_14
+msgid "Propriété de vue invalide"
+msgstr ""
+
+#: GetConcordancesDialog_15
+msgid "Vous devez séletionner une propriété de vue"
+msgstr ""
+
+#: GetConcordancesDialog_17
+msgid "\\[.*\\]"
+msgstr ""
+
+#: GetConcordancesDialog_18
+msgid ".*\".*\""
+msgstr ""
+
+#: GetConcordancesDialog_2
+msgctxt "GetConcordancesDialog_2"
+msgid "&Requête : "
+msgstr ""
+
+#: GetConcordancesDialog_4
+msgid "&Propriété de vue : "
+msgstr ""
+
+#: GetConcordancesDialog_5
+msgid "Taille du contexte de &Gauche : "
+msgstr ""
+
+#: GetConcordancesDialog_6
+msgid "Taille du contexte de &Droite : "
+msgstr ""
+
+#: GetConcordancesDialog_7
+msgid "&Référence: "
+msgstr ""
+
+#: GetConcordances_1
+msgid "&Concordance"
+msgstr ""
+
+#: GetConcordances_2
+msgid "Récupérer les concordances."
+msgstr ""
+
+#: GetConcordances_4
+msgid "Erreur lors du calcul des concordances"
+msgstr ""
+
+#: GraphicalLogger_0
+msgctxt "GraphicalLogger_0"
+msgid "erreur"
+msgstr ""
+
+#: GraphicalLogger_1
+msgid ""
+"\n"
+"Erreur du moteur de recherche CWB ("
+msgstr ""
+
+#: GraphicalLogger_2
+msgid "\n"
+msgstr ""
+
+#: GraphicalLogger_3
+msgid ""
+"\n"
+"Connexion au moteur de recherche CWB perdue"
+msgstr ""
+
+#: GraphicalLogger_4
+msgid ""
+"\n"
+"Erreur du moteur statistique R"
+msgstr ""
+
+#: GraphicalLogger_5
+msgid ":\n"
+msgstr ""
+
+#: GraphicalLogger_6
+msgctxt "GraphicalLogger_6"
+msgid "erreur"
+msgstr ""
+
+#: GroovyConsole_4
+msgid ""
+"\n"
+"Erreur Interne."
+msgstr ""
+
+#: GroovyConsole_5
+msgid "L'erreur est :  "
+msgstr ""
+
+#: ImportDialog_0
+msgid "Paramètres de l'importation"
+msgstr ""
+
+#: ImportDialog_1
+msgid "Répertoire source : "
+msgstr ""
+
+#: ImportDialog_11
+msgid "Attention"
+msgstr ""
+
+#: ImportDialog_13
+msgid "Ce répertoire semble contenir un corpus binaire"
+msgstr ""
+
+#: ImportDialog_14
+msgid "Encodage de cet ordinateur : "
+msgstr ""
+
+#: ImportDialog_16
+msgid "Deviner : "
+msgstr ""
+
+#: ImportDialog_18
+msgctxt "ImportDialog_18"
+msgid "Sélectionner : "
+msgstr ""
+
+#: ImportDialog_19
+msgid "Langue de cet ordinateur "
+msgstr ""
+
+#: ImportDialog_22
+msgctxt "ImportDialog_22"
+msgid "Sélectionner : "
+msgstr ""
+
+#: ImportDialog_23
+msgid "Options"
+msgstr ""
+
+#: ImportDialog_3
+msgid "- Paramètres Optionnels -"
+msgstr ""
+
+#: ImportDialog_4
+msgid "Encodage des caractères des sources : "
+msgstr ""
+
+#: ImportDialog_5
+msgid "Langue principale : "
+msgstr ""
+
+#: ImportDialog_6
+msgid "Paramètres du tokeniseur : "
+msgstr ""
+
+#: ImportDialog_8
+msgctxt "ImportDialog_8"
+msgid "Editer"
+msgstr ""
+
+#: ImportFormEditor_0
+msgid "N/A_Warning: the import script is missing: "
+msgstr ""
+
+#: ImportSelectedText_0
+msgid "Importe le texte du presse-papier"
+msgstr ""
+
+#: ImportSelectedText_1
+msgid "texte"
+msgstr ""
+
+#: ImportSelectedText_2
+msgid "Le presse-papier est vide"
+msgstr ""
+
+#: ImportSelectedText_3
+msgctxt "ImportSelectedText_3"
+msgid "Confirmer"
+msgstr ""
+
+#: ImportSelectedText_4
+msgctxt "ImportSelectedText_4"
+msgid "La base et le corpus "
+msgstr ""
+
+#: ImportSelectedText_5
+msgctxt "ImportSelectedText_5"
+msgid " seront supprimés"
+msgstr ""
+
+#: InternalCorpusView_0
+msgid "N/A_Error while computing corpus summary"
+msgstr ""
+
+#: InternalCorpusView_1
+msgid "N/A_Reload"
+msgstr ""
+
+#: InternalCorpusView_2
+msgid "N/A_Error: getText: "
+msgstr ""
+
+#: Invalid_analysis_property
+msgid "Propriété d'analyse invalide"
+msgstr ""
+
+#: LanguageSwitchHandler_0
+msgid "La langue de l'interface (LOCALE) n'a pas été fixée"
+msgstr ""
+
+#: LanguageSwitchHandler_1
+msgid "Le fichier"
+msgstr ""
+
+#: LanguageSwitchHandler_2
+msgctxt "LanguageSwitchHandler_2"
+msgid " n'existe pas"
+msgstr ""
+
+#: LanguageSwitchHandler_3
+msgid "Choisir la langue"
+msgstr ""
+
+#: LanguageSwitchHandler_4
+msgctxt "LanguageSwitchHandler_4"
+msgid "N/A_TXM.ini : "
+msgstr ""
+
+#: LanguageSwitchHandler_5
+msgid "N/A_SwitchLanguage: Malformed url: "
+msgstr ""
+
+#: LanguageSwitchHandler_7
+msgctxt "LanguageSwitchHandler_7"
+msgid "N/A_TXM.ini : "
+msgstr ""
+
+#: LexicalTableEditorInput_0
+msgctxt "LexicalTableEditorInput_0"
+msgid "Forme"
+msgstr ""
+
+#: LexicalTableEditorInput_1
+msgctxt "LexicalTableEditorInput_1"
+msgid "Fréquence"
+msgstr ""
+
+#: LexicalTableEditorInput_2
+msgctxt "LexicalTableEditorInput_2"
+msgid "Chaîne de caractères"
+msgstr ""
+
+#: LexicalTableEditorInput_3
+msgctxt "LexicalTableEditorInput_3"
+msgid "Entier"
+msgstr ""
+
+#: LexicalTableEditorInput_4
+msgctxt "LexicalTableEditorInput_4"
+msgid "erreur"
+msgstr ""
+
+#: LexicalTableEditorInput_5
+msgctxt "LexicalTableEditorInput_5"
+msgid "Lexique"
+msgstr ""
+
+#: LexicalTableEditor_0
+msgctxt "LexicalTableEditor_0"
+msgid "t "
+msgstr ""
+
+#: LexicalTableEditor_1
+msgctxt "LexicalTableEditor_1"
+msgid ", v "
+msgstr ""
+
+#: LexicalTableEditor_10
+msgid "Fusion ou Suppr. de colonnes"
+msgstr ""
+
+#: LexicalTableEditor_11
+msgid "Fusion de colonnes"
+msgstr ""
+
+#: LexicalTableEditor_12
+msgid "Suppr. de colonnes"
+msgstr ""
+
+#: LexicalTableEditor_13
+msgid "Fusion ou Suppr. de lignes"
+msgstr ""
+
+#: LexicalTableEditor_14
+msgid "Frequence"
+msgstr ""
+
+#: LexicalTableEditor_15
+msgid "Unité"
+msgstr ""
+
+#: LexicalTableEditor_16
+msgid "N/A_Filtering lines"
+msgstr ""
+
+#: LexicalTableEditor_18
+msgctxt "LexicalTableEditor_18"
+msgid "N/A_Merging lines"
+msgstr ""
+
+#: LexicalTableEditor_2
+msgid ", Fmin "
+msgstr ""
+
+#: LexicalTableEditor_20
+msgctxt "LexicalTableEditor_20"
+msgid "N/A_Sorting column"
+msgstr ""
+
+#: LexicalTableEditor_3
+msgid ", Fmax "
+msgstr ""
+
+#: LexicalTableEditor_4
+msgid "Garder"
+msgstr ""
+
+#: LexicalTableEditor_5
+msgid "Garder: Nlignes "
+msgstr ""
+
+#: LexicalTableEditor_6
+msgid "ET Fmin "
+msgstr ""
+
+#: LexicalTableEditor_7
+msgctxt "LexicalTableEditor_7"
+msgid "En êtes vous sûr(e) ?"
+msgstr ""
+
+#: LexicalTableEditor_8
+msgid "Nombre de lignes : "
+msgstr ""
+
+#: LexicalTableEditor_9
+msgctxt "LexicalTableEditor_9"
+msgid "Tri terminé."
+msgstr ""
+
+#: LexicalTablePreferencePage_0
+msgctxt "LexicalTablePreferencePage_0"
+msgid "Table lexicale"
+msgstr ""
+
+#: LexicalTablePreferencePage_1
+msgid "Fréquence minimale"
+msgstr ""
+
+#: LexicalTable_1
+msgctxt "LexicalTable_1"
+msgid "Propriété : "
+msgstr ""
+
+#: LexicalTable_2
+msgid "Nombre de formes : "
+msgstr ""
+
+#: LexicalTable_3
+msgid "Nombre d'occurrences : "
+msgstr ""
+
+#: LexicalTable_4
+msgid "Occurrence"
+msgstr ""
+
+#: LexicalTable_5
+msgctxt "LexicalTable_5"
+msgid "Fréquence"
+msgstr ""
+
+#: LineLabelProvider_1
+msgctxt "LineLabelProvider_1"
+msgid "Ne devrait pas se produire..."
+msgstr ""
+
+#: LocalePreferencePage_1
+msgid "Configuration de la langue de l'interface utilisateur"
+msgstr ""
+
+#: LocalePreferencePage_2
+msgid "Langue de l'interface "
+msgstr ""
+
+#: MainPage_0
+msgctxt "MainPage_0"
+msgid "N/A_MainPage"
+msgstr ""
+
+#: MainPage_1
+msgid "N/A_Main"
+msgstr ""
+
+#: MainPage_11
+msgctxt "MainPage_11"
+msgid "N/A_TXM workspace is not initialise, restart TXM."
+msgstr ""
+
+#: MainPage_12
+msgid "N/A_yes"
+msgstr ""
+
+#: MainPage_13
+msgid "N/A_no"
+msgstr ""
+
+#: MainPage_14
+msgid "N/A_Warning this corpus exists"
+msgstr ""
+
+#: MainPage_15
+msgid "N/A_The corpus "
+msgstr ""
+
+#: MainPage_16
+msgid "N/A_ already exists. Do you want to erase it ?"
+msgstr ""
+
+#: MainPage_17
+msgid "N/A_Abandon import of "
+msgstr ""
+
+#: MainPage_18
+msgid "N/A_Front XSLT"
+msgstr ""
+
+#: MainPage_19
+msgid "N/A_Tokenizer parameters"
+msgstr ""
+
+#: MainPage_2
+msgid "N/A_Import parameters of "
+msgstr ""
+
+#: MainPage_20
+msgid "N/A_Main language"
+msgstr ""
+
+#: MainPage_23
+msgid "N/A_Source characters encoding"
+msgstr ""
+
+#: MainPage_28
+msgid "N/A_Error while getting encoding"
+msgstr ""
+
+#: MainPage_29
+msgid "N/A_Sources location"
+msgstr ""
+
+#: MainPage_3
+msgid "N/A_Base infos"
+msgstr ""
+
+#: MainPage_30
+msgid "N/A_From directory"
+msgstr ""
+
+#: MainPage_31
+msgid "N/A_From file selection"
+msgstr ""
+
+#: MainPage_32
+msgid "N/A_From URL list"
+msgstr ""
+
+#: MainPage_33
+msgid "N/A_from url"
+msgstr ""
+
+#: MainPage_34
+msgid "N/A_Files"
+msgstr ""
+
+#: MainPage_4
+msgid "N/A_Base name"
+msgstr ""
+
+#: MainPage_6
+msgid "N/A_Import: base name must not be empty"
+msgstr ""
+
+#: MainPage_7
+msgid "N/A_Import: No source directory has been selected"
+msgstr ""
+
+#: MainPage_8
+msgid "N/A_Import: No source files"
+msgstr ""
+
+#: MainPage_9
+msgctxt "MainPage_9"
+msgid "N/A_TXM workspace is not initialise, restart TXM."
+msgstr ""
+
+#: MergeCols_1
+msgctxt "MergeCols_1"
+msgid "Nouveau nom"
+msgstr ""
+
+#: MergeCols_2
+msgid "Saisissez le nom de la nouvelle colonne issue de la fusion"
+msgstr ""
+
+#: MergeCols_5
+msgid "Noms : "
+msgstr ""
+
+#: MergeCols_6
+msgid "Fin de la fusion des colonnes."
+msgstr ""
+
+#: MergeDeleteDialog_0
+msgid "fusionner"
+msgstr ""
+
+#: MergeDeleteDialog_1
+msgid "Fusionner/Supprimer"
+msgstr ""
+
+#: MergeDeleteDialog_2
+msgctxt "MergeDeleteDialog_2"
+msgid "supprimer"
+msgstr ""
+
+#: MergeDeleteDialog_4
+msgid "nom du résultat de la fusion"
+msgstr ""
+
+#: MergeLines_1
+msgctxt "MergeLines_1"
+msgid "Nouveau nom"
+msgstr ""
+
+#: MergeLines_2
+msgid "Saisissez le nom de la nouvelle ligne issue de la fusion"
+msgstr ""
+
+#: MergeLines_3
+msgctxt "MergeLines_3"
+msgid "N/A_Merging lines"
+msgstr ""
+
+#: MetadataPage_0
+msgctxt "MetadataPage_0"
+msgid "N/A_MainPage"
+msgstr ""
+
+#: MetadataPage_1
+msgid "N/A_Metadata"
+msgstr ""
+
+#: MetadataPage_10
+msgid "N/A_noname"
+msgstr ""
+
+#: MetadataPage_11
+msgid "N/A_noshortname"
+msgstr ""
+
+#: MetadataPage_12
+msgid "N/A_nolongname"
+msgstr ""
+
+#: MetadataPage_14
+msgid "N/A_Remove selected metadata definitions"
+msgstr ""
+
+#: MetadataPage_15
+msgid "N/A_Name"
+msgstr ""
+
+#: MetadataPage_16
+msgid "N/A_Longname"
+msgstr ""
+
+#: MetadataPage_17
+msgid "N/A_Type"
+msgstr ""
+
+#: MetadataPage_18
+msgid "N/A_Selection"
+msgstr ""
+
+#: MetadataPage_19
+msgid "N/A_Partition"
+msgstr ""
+
+#: MetadataPage_2
+msgid "N/A_Metadatas parameters"
+msgstr ""
+
+#: MetadataPage_20
+msgid "N/A_Display"
+msgstr ""
+
+#: MetadataPage_3
+msgid "N/A_Open a metadata file"
+msgstr ""
+
+#: MetadataPage_7
+msgid "N/A_No metadata file : "
+msgstr ""
+
+#: MetadataPage_8
+msgid "N/A_Clear metadata definitions"
+msgstr ""
+
+#: MetadataPage_9
+msgid "N/A_Add a new metadata definition"
+msgstr ""
+
+#: ObjectExplorer_0
+msgid "Informations : "
+msgstr ""
+
+#: ObjectExplorer_1
+msgid "Clé\t"
+msgstr ""
+
+#: ObjectExplorer_10
+msgid "Supprimer une propriété"
+msgstr ""
+
+#: ObjectExplorer_12
+msgid "Saisir le nom d'une propriété à supprimer"
+msgstr ""
+
+#: ObjectExplorer_15
+msgid "ajouter une propriété aux descendants"
+msgstr ""
+
+#: ObjectExplorer_2
+msgctxt "ObjectExplorer_2"
+msgid "Valeur"
+msgstr ""
+
+#: ObjectExplorer_21
+msgid "retirer une propriété aux descendants"
+msgstr ""
+
+#: ObjectExplorer_26
+msgctxt "ObjectExplorer_26"
+msgid "Nom"
+msgstr ""
+
+#: ObjectExplorer_27
+msgid "Clé"
+msgstr ""
+
+#: ObjectExplorer_28
+msgctxt "ObjectExplorer_28"
+msgid "Valeur"
+msgstr ""
+
+#: ObjectExplorer_3
+msgid "Nouvelle propriété"
+msgstr ""
+
+#: ObjectExplorer_4
+msgid "Nom de la propriété"
+msgstr ""
+
+#: ObjectExplorer_5
+msgid "Saisir le nom d'une propriété à ajouter"
+msgstr ""
+
+#: ObjectExplorer_6
+msgid "Cet objet n'a pas de métadonnée"
+msgstr ""
+
+#: ObjectExplorer_7
+msgid "nouveau nom"
+msgstr ""
+
+#: ObjectExplorer_9
+msgctxt "ObjectExplorer_9"
+msgid ""
+msgstr ""
+
+#: ObjectSelectionDialog_0
+msgid "Sélecteur de valeurs"
+msgstr ""
+
+#: ObjectSelectionDialog_3
+msgid "Trouvé "
+msgstr ""
+
+#: ObjectSelectionDialog_4
+msgid " valeur(s)"
+msgstr ""
+
+#: ObjectSelectionDialog_5
+msgid "Expression régulière incorrecte : "
+msgstr ""
+
+#: ObjectSelector_0
+msgid "Objet : "
+msgstr ""
+
+#: ObjectSelector_1
+msgid "Sélection"
+msgstr ""
+
+#: OpenBiblio_0
+msgid "N/A_Openbiblio error: corpus base is null."
+msgstr ""
+
+#: OpenBiblio_1
+msgid "N/A_No text in base: "
+msgstr ""
+
+#: OpenBiblio_10
+msgid "N/A_ has no biblio"
+msgstr ""
+
+#: OpenBiblio_2
+msgid "N/A_Select text id"
+msgstr ""
+
+#: OpenBiblio_5
+msgid "N/A_code: "
+msgstr ""
+
+#: OpenBiblio_6
+msgid "N/A_cancel"
+msgstr ""
+
+#: OpenBiblio_7
+msgid "N/A_Could not find text "
+msgstr ""
+
+#: OpenBiblio_8
+msgid "N/A_in base "
+msgstr ""
+
+#: OpenBiblio_9
+msgid "N/A_Text "
+msgstr ""
+
+#: OpenEdition_0
+msgid "Sélectionner une partie"
+msgstr ""
+
+#: OpenEdition_1
+msgid "N/A_Failed to load edition of "
+msgstr ""
+
+#: OpenEdition_2
+msgid "Erreur lors du chargement de l'édition du corpus "
+msgstr ""
+
+#: OpenEdition_3
+msgctxt "OpenEdition_3"
+msgid "N/A_Error: "
+msgstr ""
+
+#: OpenEdition_4
+msgid "N/A_OpenEdition error : corpus base is null."
+msgstr ""
+
+#: OpenEmptyEditor_2
+msgid "N/A_Could not find directory: "
+msgstr ""
+
+#: OpenGraph_8
+msgid "N/A_Can't open graphic "
+msgstr ""
+
+#: OpenParaBrowser_0
+msgid "Chargement du navigateur parallèle"
+msgstr ""
+
+#: OpenSVGGraph_0
+msgid "Graphique SVG "
+msgstr ""
+
+#: OpenTXMUserPreferences_0
+msgid "N/A_Default settings"
+msgstr ""
+
+#: OpenURI_0
+msgid "N/A_Desktop is not supported (fatal)"
+msgstr ""
+
+#: OpenURI_1
+msgid "N/A_Error while oponing file "
+msgstr ""
+
+#: ParaBrowserEditor_10
+msgid "N/A_:"
+msgstr ""
+
+#: ParaBrowserEditor_11
+msgid "N/A_get next("
+msgstr ""
+
+#: ParaBrowserEditor_12
+msgid "N/A_) "
+msgstr ""
+
+#: ParaBrowserEditor_13
+msgid "N/A_ paraid "
+msgstr ""
+
+#: ParaBrowserEditor_14
+msgid "N/A_ value "
+msgstr ""
+
+#: ParaBrowserEditor_18
+msgid "N/A_-MOVE to "
+msgstr ""
+
+#: ParaBrowserEditor_19
+msgid "N/A_-Don't MOVE !!!!! NEXT is "
+msgstr ""
+
+#: ParaBrowserEditor_20
+msgctxt "ParaBrowserEditor_20"
+msgid "N/A_"
+msgstr ""
+
+#: ParaBrowserEditor_21
+msgid "N/A__"
+msgstr ""
+
+#: ParaBrowserEditor_22
+msgid "N/A_Open Parabrowser"
+msgstr ""
+
+#: ParaBrowserEditor_3
+msgid "N/A_Ref: "
+msgstr ""
+
+#: ParaBrowserEditor_4
+msgid "N/A_Références"
+msgstr ""
+
+#: ParaBrowserEditor_5
+msgid "N/A_Structure"
+msgstr ""
+
+#: ParaBrowserEditor_9
+msgid "N/A_Ref:"
+msgstr ""
+
+#: PartitionComposer_0
+msgid "Structure : "
+msgstr ""
+
+#: PartitionComposer_1
+msgctxt "PartitionComposer_1"
+msgid "Propriété : "
+msgstr ""
+
+#: PartitionComposer_10
+msgid "Ajouter les éléments sélectionnés : "
+msgstr ""
+
+#: PartitionComposer_11
+msgid "Supprimer"
+msgstr ""
+
+#: PartitionComposer_12
+msgid "Supp. sélectés : "
+msgstr ""
+
+#: PartitionComposer_2
+msgid "Sélectionner les valeurs à affecter : "
+msgstr ""
+
+#: PartitionComposer_3
+msgid "Nouvelle partie"
+msgstr ""
+
+#: PartitionComposer_4
+msgid "ajouter une partie"
+msgstr ""
+
+#: PartitionComposer_5
+msgid "Partie"
+msgstr ""
+
+#: PartitionComposer_6
+msgid "Supp. toutes les parties"
+msgstr ""
+
+#: PartitionComposer_8
+msgid "Titre : "
+msgstr ""
+
+#: PartitionComposer_9
+msgid "Affecter"
+msgstr ""
+
+#: PartsSize_10
+msgid "N/A_Dimensions of partition "
+msgstr ""
+
+#: PartsSize_11
+msgid "N/A_ of corpus "
+msgstr ""
+
+#: PartsSize_12
+msgid "N/A_ ordered by size"
+msgstr ""
+
+#: PartsSize_18
+msgid "N/A_Dimensions: "
+msgstr ""
+
+#: Preferences_Menu_Label
+msgid "Préférences"
+msgstr ""
+
+#: ProgressionPreferencePage_2
+msgid "N/A_Progression"
+msgstr ""
+
+#: ProgressionPreferencePage_3
+msgid "N/A_Default graph type is cumulative"
+msgstr ""
+
+#: ProgressionPreferencePage_4
+msgid "N/A_Curves are Monochrome"
+msgstr ""
+
+#: ProgressionPreferencePage_5
+msgid "N/A_Curves have the same style"
+msgstr ""
+
+#: ProgressionPreferencePage_6
+msgid "N/A_Repeat the values of the structure properties"
+msgstr ""
+
+#: ProgressionPreferencePage_7
+msgid "N/A_Bande size multiplier"
+msgstr ""
+
+#: PropertiesSelector_0
+msgid "Impossible de charger les propriétés du corpus"
+msgstr ""
+
+#: PropertiesSelector_1
+msgid "Propriétés : "
+msgstr ""
+
+#: PropertiesSelector_2
+msgctxt "PropertiesSelector_2"
+msgid "Editer"
+msgstr ""
+
+#: PropertiesSelector_3
+msgid " (cause : "
+msgstr ""
+
+#: PropertiesSelector_4
+msgid ")"
+msgstr ""
+
+#: PropertySelector_0
+msgid "Sélectionner une propriété"
+msgstr ""
+
+#: QueriesView_1
+msgid "Tout exporter"
+msgstr ""
+
+#: QueriesView_10
+msgid "erreur : "
+msgstr ""
+
+#: QueriesView_4
+msgctxt "QueriesView_4"
+msgid "TXM"
+msgstr ""
+
+#: QueriesView_5
+msgid "Requêtes :\n"
+msgstr ""
+
+#: QueryAssistDialog_0
+msgid "Assistant de Requête"
+msgstr ""
+
+#: QueryAssistDialog_1
+msgid "Mot supplémentaire"
+msgstr ""
+
+#: QueryAssistDialog_10
+msgid "correspond à"
+msgstr ""
+
+#: QueryAssistDialog_11
+msgid "commence par"
+msgstr ""
+
+#: QueryAssistDialog_12
+msgid "se termine par"
+msgstr ""
+
+#: QueryAssistDialog_13
+msgctxt "QueryAssistDialog_13"
+msgid "contient"
+msgstr ""
+
+#: QueryAssistDialog_2
+msgid "Je recherche : "
+msgstr ""
+
+#: QueryAssistDialog_3
+msgid " mot"
+msgstr ""
+
+#: QueryAssistDialog_32
+msgid "suivi de "
+msgstr ""
+
+#: QueryAssistDialog_33
+msgid "séparé d'au moins 0 mot"
+msgstr ""
+
+#: QueryAssistDialog_34
+msgid "séparé d'au moins 1 mot"
+msgstr ""
+
+#: QueryAssistDialog_5
+msgid " mots"
+msgstr ""
+
+#: QueryAssistDialog_8
+msgid "- Mot n°"
+msgstr ""
+
+#: QueryAssistDialog_9
+msgid ": ayant sa propriété "
+msgstr ""
+
+#: RPreferencePage_0
+msgid "r_path_to_executable"
+msgstr ""
+
+#: RPreferencePage_1
+msgid "Configuration de R"
+msgstr ""
+
+#: RPreferencePage_2
+msgid "Chemin vers l'&exécutable de R"
+msgstr ""
+
+#: RPreferencePage_3
+msgid "Connexion distante"
+msgstr ""
+
+#: RPreferencePage_4
+msgid "Adresse du serveur"
+msgstr ""
+
+#: RPreferencePage_5
+msgid "Utilisateur"
+msgstr ""
+
+#: RPreferencePage_6
+msgid "Mot de passe"
+msgstr ""
+
+#: RPreferencePage_7
+msgid "Utiliser la transmission de données R par fichier"
+msgstr ""
+
+#: RVariablesView_1
+msgid "N/A_Refresh variables"
+msgstr ""
+
+#: RVariablesView_2
+msgid "N/A_Show eval logs"
+msgstr ""
+
+#: RVariablesView_9
+msgid "N/A_ >> "
+msgstr ""
+
+#: ReferenceLabelProvider_0
+msgctxt "ReferenceLabelProvider_0"
+msgid "Ne devrait pas se produire..."
+msgstr ""
+
+#: ReferencerEditor_0
+msgid "Calcul des références de < "
+msgstr ""
+
+#: ReferencerEditor_1
+msgid "> dans   "
+msgstr ""
+
+#: ReferencerEditor_10
+msgid "N/A_Get indexes"
+msgstr ""
+
+#: ReferencerEditor_11
+msgid "References"
+msgstr ""
+
+#: ReferencerEditor_12
+msgid "N/A_Group positions by indexes"
+msgstr ""
+
+#: ReferencerEditor_13
+msgid "N/A_Refresh ui"
+msgstr ""
+
+#: ReferencerEditor_15
+msgid "N/A_Done: "
+msgstr ""
+
+#: ReferencerEditor_16
+msgid "N/A_ result(s)"
+msgstr ""
+
+#: ReferencerEditor_17
+msgid "N/A_Showing first result page"
+msgstr ""
+
+#: ReferencerEditor_19
+msgid "N/A_Showing last result page"
+msgstr ""
+
+#: ReferencerEditor_2
+msgctxt "ReferencerEditor_2"
+msgid ""
+msgstr ""
+
+#: ReferencerEditor_21
+msgid "N/A_Showing next result page"
+msgstr ""
+
+#: ReferencerEditor_23
+msgid "N/A_Showing previous result page"
+msgstr ""
+
+#: ReferencerEditor_25
+msgid "N/A_Opening concordances"
+msgstr ""
+
+#: ReferencerEditor_3
+msgid " pour la propriété "
+msgstr ""
+
+#: ReferencerEditor_4
+msgctxt "ReferencerEditor_4"
+msgid " avec "
+msgstr ""
+
+#: ReferencerEditor_5
+msgid "N/A_Computing references of "
+msgstr ""
+
+#: ReferencerEditor_6
+msgid "Patron des références "
+msgstr ""
+
+#: ReferencerEditor_7
+msgid "N/A_No results"
+msgstr ""
+
+#: ReferencerEditor_8
+msgid "N/A_Get matches"
+msgstr ""
+
+#: ReferencerEditor_9
+msgid "Units"
+msgstr ""
+
+#: ReferencerPreferencePage_2
+msgid "N/A_Referencer"
+msgstr ""
+
+#: ReferencerPreferencePage_3
+msgid "N/A_Order references by frequency"
+msgstr ""
+
+#: RemoveBase_1
+msgctxt "RemoveBase_1"
+msgid "base : "
+msgstr ""
+
+#: RemoveProject_1
+msgctxt "RemoveProject_1"
+msgid "projet : "
+msgstr ""
+
+#: RemoveScript_1
+msgid "script : "
+msgstr ""
+
+#: RemoveText_1
+msgid "texte : "
+msgstr ""
+
+#: ProgressionDialog_0
+msgid "Paramètres de la progression "
+msgstr ""
+
+#: ProgressionDialog_1
+msgid "Type de graphe : "
+msgstr ""
+
+#: ProgressionDialog_10
+msgid "Progression : mauvaise expression régulière : "
+msgstr ""
+
+#: ProgressionDialog_11
+msgid "N/A_Bandewidth multiplier :"
+msgstr ""
+
+#: ProgressionDialog_13
+msgid "N/A_Display options"
+msgstr ""
+
+#: ProgressionDialog_14
+msgid "N/A_Multiple line style"
+msgstr ""
+
+#: ProgressionDialog_15
+msgid "N/A_Repeat same values"
+msgstr ""
+
+#: ProgressionDialog_16
+msgid "N/A_Monochrome"
+msgstr ""
+
+#: ProgressionDialog_17
+msgid "N/A_Bande multiplier error : "
+msgstr ""
+
+#: ProgressionDialog_2
+msgid "cumulatif"
+msgstr ""
+
+#: ProgressionDialog_3
+msgid "densité"
+msgstr ""
+
+#: ProgressionDialog_4
+msgid "Unité structurelle : "
+msgstr ""
+
+#: ProgressionDialog_5
+msgctxt "ProgressionDialog_5"
+msgid "supprimer"
+msgstr ""
+
+#: ProgressionDialog_6
+msgctxt "ProgressionDialog_6"
+msgid "Propriété : "
+msgstr ""
+
+#: ProgressionDialog_7
+msgid "Exp. Rég. : "
+msgstr ""
+
+#: ProgressionDialog_8
+msgid "Requêtes : "
+msgstr ""
+
+#: ProgressionDialog_9
+msgid "ajouter"
+msgstr ""
+
+#: ProgressionEditorInput_0
+msgid "PROGRESSION NAME"
+msgstr ""
+
+#: RestartTXM_1
+msgid "Redémarrer TXM"
+msgstr ""
+
+#: RunGroovyScript_0
+msgctxt "RunGroovyScript_0"
+msgid "Execution du script"
+msgstr ""
+
+#: RunGroovyScript_1
+msgid "&Exécuter un script"
+msgstr ""
+
+#: RunGroovyScript_2
+msgid "Exécuter un script"
+msgstr ""
+
+#: RunGroovyScript_3
+msgid "*.groovy"
+msgstr ""
+
+#: RunGroovyScript_4
+msgid "Erreur lors de l'ouverture du script groovy"
+msgstr ""
+
+#: RunGroovyScript_5
+msgid "Erreur lors du chargement du script groovy"
+msgstr ""
+
+#: RunGroovyScript_6
+msgid "Erreur lors du parse du script groovy"
+msgstr ""
+
+#: RunGroovyScript_7
+msgctxt "RunGroovyScript_7"
+msgid "Erreur lors de l'exécution du script groovy"
+msgstr ""
+
+#: RunGroovyScript_8
+msgctxt "RunGroovyScript_8"
+msgid "Erreur lors de l'exécution du script groovy"
+msgstr ""
+
+#: RunGroovyScript_9
+msgctxt "RunGroovyScript_9"
+msgid "Execution du script"
+msgstr ""
+
+#: RunScript_0
+msgid "type de script "
+msgstr ""
+
+#: RunScript_11
+msgid "annoter"
+msgstr ""
+
+#: RunScript_12
+msgid "importer"
+msgstr ""
+
+#: RunScript_13
+msgctxt "RunScript_13"
+msgid "TXM"
+msgstr ""
+
+#: RunScript_2
+msgid "compilation de la base : "
+msgstr ""
+
+#: RunScript_4
+msgid "édition de la base : "
+msgstr ""
+
+#: RunScript_6
+msgid "annotation sur la base : "
+msgstr ""
+
+#: RunScript_8
+msgid "importer la base : "
+msgstr ""
+
+#: SVGComposite_0
+msgid "Statut"
+msgstr ""
+
+#: SVGComposite_1
+msgid "Impossible de trouver l'élément racine du graphique"
+msgstr ""
+
+#: SVGComposite_11
+msgid "coordonnées courantes de la roulette"
+msgstr ""
+
+#: SVGComposite_2
+msgid "translation courante "
+msgstr ""
+
+#: SVGComposite_4
+msgctxt "SVGComposite_4"
+msgid "Erreur"
+msgstr ""
+
+#: SVGComposite_5
+msgid "PAS DE MESSAGE"
+msgstr ""
+
+#: SVGComposite_6
+msgctxt "SVGComposite_6"
+msgid "Erreur"
+msgstr ""
+
+#: SVGComposite_7
+msgid "Message"
+msgstr ""
+
+#: SVGComposite_8
+msgid "zoom courrant "
+msgstr ""
+
+#: SVGComposite_9
+msgid "coordonnées curseur courantes "
+msgstr ""
+
+#: SVGGraphicEditorInput_0
+msgid "graphique SVG "
+msgstr ""
+
+#: SVGGraphicEditor_1
+msgid "Impossible d'afficher un graphique avec les informations fournies."
+msgstr ""
+
+#: SVGPanel_0
+msgid "N/A_Center"
+msgstr ""
+
+#: ScriptPreferencePage_0
+msgid "N/A_The next session number"
+msgstr ""
+
+#: ScriptPreferencePage_2
+msgid "Configuration des Scripts Groovy"
+msgstr ""
+
+#: ScriptPreferencePage_3
+msgid "Dossier &racine"
+msgstr ""
+
+#: ScriptPreferencePage_4
+msgid "Dossier &courrant"
+msgstr ""
+
+#: SetContextSize_1
+msgid "Définir la taille des &contextes"
+msgstr ""
+
+#: SetContextSize_2
+msgid "Définir la taille des contextes"
+msgstr ""
+
+#: SetContextSize_3
+msgid "Taille du contexte gauche"
+msgstr ""
+
+#: SetContextSize_4
+msgid "Taille du contexte droit"
+msgstr ""
+
+#: SetLineNumber_0
+msgid "Lignes par page"
+msgstr ""
+
+#: SetLineNumber_1
+msgid "N° de ligne"
+msgstr ""
+
+#: SetSortProperty_1
+msgid "Définir la propriété de &Tri"
+msgstr ""
+
+#: SetSortProperty_2
+msgid "Définir la propriété de tri"
+msgstr ""
+
+#: SetSortProperty_3
+msgid "Propriété de tri"
+msgstr ""
+
+#: ShowSelected_0
+msgid "informations : \n"
+msgstr ""
+
+#: ShowSelected_4
+msgid "Régler la propriété 'LANG'"
+msgstr ""
+
+#: ShowSelected_5
+msgid "Code ISO-638 de la propriété 'LANG'"
+msgstr ""
+
+#: ShowSvgHelp_0
+msgid "N/A_SVG controls"
+msgstr ""
+
+#: ShowSvgHelp_1
+msgid "N/A_\tPan : Shif t+Left Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_2
+msgid "N/A_\tZoom in&out : Shif t+Right Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_3
+msgid "N/A_\tZoom to selection : Ctrl+Left Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_4
+msgid "N/A_\tRotate : Ctrl+Right Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_5
+msgid "N/A_\tReset the view : F5"
+msgstr ""
+
+#: SingularValuesEditor_0
+msgctxt "SingularValuesEditor_0"
+msgid "Entrée erronée"
+msgstr ""
+
+#: SingularValuesEditor_1
+msgctxt "SingularValuesEditor_1"
+msgid "Tri terminé."
+msgstr ""
+
+#: SingularValuesEditor_2
+msgctxt "SingularValuesEditor_2"
+msgid "N/A_Sorting column"
+msgstr ""
+
+#: SortPropertySelectionDialog_0
+msgctxt "SortPropertySelectionDialog_0"
+msgid "Sélectionner les propriétés de tri"
+msgstr ""
+
+#: SortPropertySelection_0
+msgctxt "SortPropertySelection_0"
+msgid "Sélectionner les propriétés de tri"
+msgstr ""
+
+#: SpecificitiesPreferencePage_1
+msgid "N/A_Monochrome graph"
+msgstr ""
+
+#: SpecificitiesPreferencePage_2
+msgid "N/A_Specificities"
+msgstr ""
+
+#: SpecificitiesPreferencePage_4
+msgid "N/A_Group graphic bars by line entry"
+msgstr ""
+
+#: SpecificitiesPreferencePage_5
+msgid "N/A_Graphic : draw curves"
+msgstr ""
+
+#: SpecificitiesPreferencePage_6
+msgid "N/A_Graphic : draw bars"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_0
+msgid "Valeurs"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_1
+msgid "Graphique"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_10
+msgctxt "SpecificitiesResultEditorInput_10"
+msgid "Entier"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_11
+msgctxt "SpecificitiesResultEditorInput_11"
+msgid "Flottant"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_2
+msgctxt "SpecificitiesResultEditorInput_2"
+msgid ""
+"On ne peut pas calculer à la fois les spécificités d'une partie et des "
+"formes"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_3
+msgctxt "SpecificitiesResultEditorInput_3"
+msgid ""
+"On ne peut pas calculer à la fois les spécificités d'une partie et des "
+"formes"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_4
+msgctxt "SpecificitiesResultEditorInput_4"
+msgid "Forme"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_5
+msgid "Fréquence totale"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_6
+msgid "Sous-fréquence"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_7
+msgid "Index des spécificités"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_8
+msgctxt "SpecificitiesResultEditorInput_8"
+msgid "Chaîne de caractères"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_9
+msgctxt "SpecificitiesResultEditorInput_9"
+msgid "Entier"
+msgstr ""
+
+#: SpecificitiesTableEditor_0
+msgid "Le calcul des spécificités a échoué"
+msgstr ""
+
+#: SpecificitiesTableEditor_1
+msgid "Une erreur est survenue lors du tri des spécificités"
+msgstr ""
+
+#: SpecificitiesTableEditor_10
+msgid "/TXM/specif.svg"
+msgstr ""
+
+#: SpecificitiesTableEditor_11
+msgid " T"
+msgstr ""
+
+#: SpecificitiesTableEditor_12
+msgctxt "SpecificitiesTableEditor_12"
+msgid "Tri terminé."
+msgstr ""
+
+#: SpecificitiesTableEditor_13
+msgid "Une erreur est survenue lors du calcul de la table lexicale"
+msgstr ""
+
+#: SpecificitiesTableEditor_15
+msgctxt "SpecificitiesTableEditor_15"
+msgid "N/A_Sorting column"
+msgstr ""
+
+#: SpecificitiesTableEditor_16
+msgid "Graphique : "
+msgstr ""
+
+#: SpecificitiesTableEditor_17
+msgid "Chargement de la table des spécificités"
+msgstr ""
+
+#: SpecificitiesTableEditor_2
+msgctxt "SpecificitiesTableEditor_2"
+msgid "Unités"
+msgstr ""
+
+#: SpecificitiesTableEditor_25
+msgctxt "SpecificitiesTableEditor_25"
+msgid "N/A_Error: "
+msgstr ""
+
+#: SpecificitiesTableEditor_26
+msgctxt "SpecificitiesTableEditor_26"
+msgid "N/A_ cannot be written"
+msgstr ""
+
+#: SpecificitiesTableEditor_3
+msgid "Types"
+msgstr ""
+
+#: SpecificitiesTableEditor_4
+msgctxt "SpecificitiesTableEditor_4"
+msgid "Fréquence"
+msgstr ""
+
+#: SpecificitiesTableEditor_5
+msgid "Erreur inattendue dans le moteur statistique R"
+msgstr ""
+
+#: SpecificitiesTableEditor_6
+msgctxt "SpecificitiesTableEditor_6"
+msgid "Fréquence"
+msgstr ""
+
+#: SpecificitiesTableEditor_8
+msgid "Calculer le diagramme en bâtons des lignes sélectionnées"
+msgstr ""
+
+#: SpecificitiesTableEditor_9
+msgid "Une erreur est survenue lors du calcul du graphique"
+msgstr ""
+
+#: Structure_field_not_empty
+msgid "Le champ structure ne doit pas être vide."
+msgstr ""
+
+#: Submit_0
+msgid "N/A_Save script"
+msgstr ""
+
+#: Submit_1
+msgid "N/A_Error during R data transfert"
+msgstr ""
+
+#: TXMCqpServerWatcher_0
+msgid "N/A_CQP server is down"
+msgstr ""
+
+#: TXMCqpServerWatcher_1
+msgid "N/A_Please wait for searchengine to restart..."
+msgstr ""
+
+#: TXMCqpServerWatcher_2
+msgctxt "TXMCqpServerWatcher_2"
+msgid "N/A_Ok"
+msgstr ""
+
+#: TXMRServeWatcher_0
+msgid "N/A_StatEngine server is down"
+msgstr ""
+
+#: TXMRServeWatcher_1
+msgid "N/A_Please wait for StatEngine to restart..."
+msgstr ""
+
+#: TXMRServeWatcher_2
+msgctxt "TXMRServeWatcher_2"
+msgid "N/A_Ok"
+msgstr ""
+
+#: TXMRServeWatcher_3
+msgid "N/A_Reloading corpora view..."
+msgstr ""
+
+#: TXMRServeWatcher_4
+msgid "N/A_Please wait..."
+msgstr ""
+
+#: TablableVector_0
+msgid "Les deux tables doivent être de même taille."
+msgstr ""
+
+#: TableEditor_0
+msgid "Impossible d'afficher un tableau avec les informations fournies"
+msgstr ""
+
+#: TableSorter_0
+msgid "Le numéro de colonne est trop grand."
+msgstr ""
+
+#: TestCreateSVGGraphic_1
+msgid "Test nouveau graphique &SVG"
+msgstr ""
+
+#: TestCreateSVGGraphic_2
+msgid "Test de création de nouveau graphique SVG"
+msgstr ""
+
+#: TestCreateSVGGraphic_4
+msgid "Librairie(grDevices)"
+msgstr ""
+
+#: TestCreateSVGGraphic_5
+msgid "données(iris); attaché(iris)"
+msgstr ""
+
+#: TestCreateSVGGraphic_8
+msgid "Ne peut ouvrir le device svg graphics :\n"
+msgstr ""
+
+#: TextometriePreferencePage_1
+msgid "Préférences de TXM"
+msgstr ""
+
+#: TreeTaggerPreferencePage_0
+msgid "TreeTagger"
+msgstr ""
+
+#: TreeTaggerPreferencePage_1
+msgid "Chemin du répertoire d'installation de TreeTagger"
+msgstr ""
+
+#: TreeTaggerPreferencePage_2
+msgid "Chemin du répertoire de modèles linguistiques de TreeTagger"
+msgstr ""
+
+#: TxmBrowser_0
+msgid "Début"
+msgstr ""
+
+#: TxmBrowser_1
+msgid "première page "
+msgstr ""
+
+#: TxmBrowser_10
+msgid ""
+"Impossible de lancer le navigateur interne. Vous devez régler ce paramètre "
+"dans les préférences, au menu : Général / Navigateur web"
+msgstr ""
+
+#: TxmBrowser_2
+msgid "dernière page"
+msgstr ""
+
+#: TxmBrowser_3
+msgctxt "TxmBrowser_3"
+msgid "page précédente"
+msgstr ""
+
+#: TxmBrowser_4
+msgctxt "TxmBrowser_4"
+msgid "page suivante"
+msgstr ""
+
+#: TxmBrowser_5
+msgctxt "TxmBrowser_5"
+msgid "page précédente"
+msgstr ""
+
+#: TxmBrowser_6
+msgctxt "TxmBrowser_6"
+msgid "page suivante"
+msgstr ""
+
+#: TxmBrowser_7
+msgid "Fin"
+msgstr ""
+
+#: TxmBrowser_8
+msgid "prochain texte"
+msgstr ""
+
+#: TxmBrowser_9
+msgid "texte précedent"
+msgstr ""
+
+#: Unable_retrieve_info_corpus
+msgctxt "Unable_retrieve_info_corpus"
+msgid "N/A_"
+msgstr ""
+
+#: UserPreferencePage_0
+msgid "Page Utilisateur"
+msgstr ""
+
+#: UserPreferencePage_3
+msgid "Pas de confirmation pour supprimer un objet"
+msgstr ""
+
+#: ViewPropertySelectionDialog_0
+msgctxt "ViewPropertySelectionDialog_0"
+msgid "Sélectionner les propriétés"
+msgstr ""
+
+#: ViewPropertySelection_0
+msgctxt "ViewPropertySelection_0"
+msgid "Sélectionner les propriétés"
+msgstr ""
+
+#: VocabularyEditor_0
+msgid "La requête est vide"
+msgstr ""
+
+#: VocabularyEditor_1
+msgid "Échec du calcul de l'index"
+msgstr ""
+
+#: VocabularyEditor_10
+msgid "> pour la propriété : "
+msgstr ""
+
+#: VocabularyEditor_11
+msgid " dans le corpus : "
+msgstr ""
+
+#: VocabularyEditor_12
+msgctxt "VocabularyEditor_12"
+msgid "Terminé : "
+msgstr ""
+
+#: VocabularyEditor_13
+msgctxt "VocabularyEditor_13"
+msgid " résultats"
+msgstr ""
+
+#: VocabularyEditor_14
+msgctxt "VocabularyEditor_14"
+msgid "Index de <"
+msgstr ""
+
+#: VocabularyEditor_15
+msgctxt "VocabularyEditor_15"
+msgid "Unités"
+msgstr ""
+
+#: VocabularyEditor_16
+msgid "Recharger la table"
+msgstr ""
+
+#: VocabularyEditor_17
+msgid "Index :\n"
+msgstr ""
+
+#: VocabularyEditor_18
+msgctxt "VocabularyEditor_18"
+msgid "Fréquence"
+msgstr ""
+
+#: VocabularyEditor_19
+msgctxt "VocabularyEditor_19"
+msgid "\tPartition: "
+msgstr ""
+
+#: VocabularyEditor_2
+msgctxt "VocabularyEditor_2"
+msgid "Index de <"
+msgstr ""
+
+#: VocabularyEditor_20
+msgid " dans la partition : "
+msgstr ""
+
+#: VocabularyEditor_21
+msgctxt "VocabularyEditor_21"
+msgid ""
+msgstr ""
+
+#: VocabularyEditor_22
+msgid "N'a pu initialiser le tableau d'index"
+msgstr ""
+
+#: VocabularyEditor_23
+msgctxt "VocabularyEditor_23"
+msgid "\tCorpus: "
+msgstr ""
+
+#: VocabularyEditor_24
+msgctxt "VocabularyEditor_24"
+msgid "un résultat"
+msgstr ""
+
+#: VocabularyEditor_25
+msgid ", fmin "
+msgstr ""
+
+#: VocabularyEditor_26
+msgid ", fmax "
+msgstr ""
+
+#: VocabularyEditor_27
+msgctxt "VocabularyEditor_27"
+msgid "t "
+msgstr ""
+
+#: VocabularyEditor_28
+msgctxt "VocabularyEditor_28"
+msgid ", v "
+msgstr ""
+
+#: VocabularyEditor_29
+msgid "Ouverture du tableau d'index"
+msgstr ""
+
+#: VocabularyEditor_3
+msgctxt "VocabularyEditor_3"
+msgid "Requête : "
+msgstr ""
+
+#: VocabularyEditor_30
+msgctxt "VocabularyEditor_30"
+msgid "\tRequête: "
+msgstr ""
+
+#: VocabularyEditor_31
+msgid "Aucun résultat"
+msgstr ""
+
+#: VocabularyEditor_32
+msgctxt "VocabularyEditor_32"
+msgid "\tPropriétés: "
+msgstr ""
+
+#: VocabularyEditor_33
+msgid "N/A_Computing index"
+msgstr ""
+
+#: VocabularyEditor_34
+msgctxt "VocabularyEditor_34"
+msgid "\tFmin: "
+msgstr ""
+
+#: VocabularyEditor_35
+msgctxt "VocabularyEditor_35"
+msgid "\tFmax: "
+msgstr ""
+
+#: VocabularyEditor_36
+msgctxt "VocabularyEditor_36"
+msgid "N/A_Sorting column"
+msgstr ""
+
+#: VocabularyEditor_37
+msgctxt "VocabularyEditor_37"
+msgid "Tri terminé."
+msgstr ""
+
+#: VocabularyEditor_4
+msgctxt "VocabularyEditor_4"
+msgid "&Chercher"
+msgstr ""
+
+#: VocabularyEditor_5
+msgid "Fmin : "
+msgstr ""
+
+#: VocabularyEditor_6
+msgid "Fmax : "
+msgstr ""
+
+#: VocabularyEditor_7
+msgid "Vmax : "
+msgstr ""
+
+#: VocabularyEditor_8
+msgid "Résultats par page : "
+msgstr ""
+
+#: VocabularyEditor_9
+msgid "Seuils : "
+msgstr ""
+
+#: VocabularyToCooccurrence_0
+msgid "N/A_Error while linking Index to Cooccurences"
+msgstr ""
+
+#: VocabularyToLexicalTable_0
+msgid ""
+"Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"Corpus"
+msgstr ""
+
+#: VocabularyToLexicalTable_1
+msgctxt "VocabularyToLexicalTable_1"
+msgid "Ouverture de la table lexicale"
+msgstr ""
+
+#: VocabularyToLexicalTable_2
+msgctxt "VocabularyToLexicalTable_2"
+msgid "N/A_Opening marge configuration dialog"
+msgstr ""
+
+#: VocabularyToLexicalTable_3
+msgctxt "VocabularyToLexicalTable_3"
+msgid "N/A_Use all occurrences"
+msgstr ""
+
+#: VocabularyToLexicalTable_4
+msgctxt "VocabularyToLexicalTable_4"
+msgid "N/A_User index occrrences"
+msgstr ""
+
+#: VocabularyToLexicalTable_5
+msgctxt "VocabularyToLexicalTable_5"
+msgid "N/A_Select which margins you want to use"
+msgstr ""
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p></p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/InteractiveSplashHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/InteractiveSplashHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/InteractiveSplashHandler.java	(revision 122)
@@ -0,0 +1,333 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.splashHandlers;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.splash.AbstractSplashHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class InteractiveSplashHandler.
+ *
+ * @since 3.3
+ */
+public class InteractiveSplashHandler extends AbstractSplashHandler {
+
+	/** The Constant F_LABEL_HORIZONTAL_INDENT. */
+	private final static int F_LABEL_HORIZONTAL_INDENT = 175;
+
+	/** The Constant F_BUTTON_WIDTH_HINT. */
+	private final static int F_BUTTON_WIDTH_HINT = 80;
+
+	/** The Constant F_TEXT_WIDTH_HINT. */
+	private final static int F_TEXT_WIDTH_HINT = 175;
+
+	/** The Constant F_COLUMN_COUNT. */
+	private final static int F_COLUMN_COUNT = 3;
+
+	/** The composite login. */
+	private Composite fCompositeLogin;
+
+	/** The text username. */
+	private Text fTextUsername;
+
+	/** The text password. */
+	private Text fTextPassword;
+
+	/** The button ok. */
+	private Button fButtonOK;
+
+	/** The button cancel. */
+	private Button fButtonCancel;
+
+	/** The authenticated. */
+	private boolean fAuthenticated;
+
+	/**
+	 * Instantiates a new interactive splash handler.
+	 */
+	public InteractiveSplashHandler() {
+		fCompositeLogin = null;
+		fTextUsername = null;
+		fTextPassword = null;
+		fButtonOK = null;
+		fButtonCancel = null;
+		fAuthenticated = false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.splash.AbstractSplashHandler#init(org.eclipse.swt.widgets
+	 * .Shell)
+	 */
+	@Override
+	public void init(final Shell splash) {
+		// Store the shell
+		super.init(splash);
+		// Configure the shell layout
+		configureUISplash();
+		// Create UI
+		createUI();
+		// Create UI listeners
+		createUIListeners();
+		// Force the splash screen to layout
+		splash.layout(true);
+		// Keep the splash screen visible and prevent the RCP application from
+		// loading until the close button is clicked.
+		doEventLoop();
+	}
+
+	/**
+	 * Do event loop.
+	 */
+	private void doEventLoop() {
+		Shell splash = getSplash();
+		while (fAuthenticated == false) {
+			if (splash.getDisplay().readAndDispatch() == false) {
+				splash.getDisplay().sleep();
+			}
+		}
+	}
+
+	/**
+	 * Creates the ui listeners.
+	 */
+	private void createUIListeners() {
+		// Create the OK button listeners
+		createUIListenersButtonOK();
+		// Create the cancel button listeners
+		createUIListenersButtonCancel();
+	}
+
+	/**
+	 * Creates the ui listeners button cancel.
+	 */
+	private void createUIListenersButtonCancel() {
+		fButtonCancel.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				handleButtonCancelWidgetSelected();
+			}
+		});
+	}
+
+	/**
+	 * Handle button cancel widget selected.
+	 */
+	private void handleButtonCancelWidgetSelected() {
+		// Abort the loading of the RCP application
+		getSplash().getDisplay().close();
+		System.exit(0);
+	}
+
+	/**
+	 * Creates the ui listeners button ok.
+	 */
+	private void createUIListenersButtonOK() {
+		fButtonOK.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				handleButtonOKWidgetSelected();
+			}
+		});
+	}
+
+	/**
+	 * Handle button ok widget selected.
+	 */
+	private void handleButtonOKWidgetSelected() {
+		String username = fTextUsername.getText();
+		String password = fTextPassword.getText();
+		// Aunthentication is successful if a user provides any username and
+		// any password
+		if ((username.length() > 0) && (password.length() > 0)) {
+			fAuthenticated = true;
+		} else {
+			MessageDialog.openError(getSplash(), "Authentication Failed", //$NON-NLS-1$
+					"A username and password must be specif ied to login."); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Creates the ui.
+	 */
+	private void createUI() {
+		// Create the login panel
+		createUICompositeLogin();
+		// Create the blank spanner
+		createUICompositeBlank();
+		// Create the user name label
+		createUILabelUserName();
+		// Create the user name text widget
+		createUITextUserName();
+		// Create the password label
+		createUILabelPassword();
+		// Create the password text widget
+		createUITextPassword();
+		// Create the blank label
+		createUILabelBlank();
+		// Create the OK button
+		createUIButtonOK();
+		// Create the cancel button
+		createUIButtonCancel();
+	}
+
+	/**
+	 * Creates the ui button cancel.
+	 */
+	private void createUIButtonCancel() {
+		// Create the button
+		fButtonCancel = new Button(fCompositeLogin, SWT.PUSH);
+		fButtonCancel.setText("Cancel"); //$NON-NLS-1$
+		// Configure layout data
+		GridData data = new GridData(SWT.NONE, SWT.NONE, false, false);
+		data.widthHint = F_BUTTON_WIDTH_HINT;
+		data.verticalIndent = 10;
+		fButtonCancel.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui button ok.
+	 */
+	private void createUIButtonOK() {
+		// Create the button
+		fButtonOK = new Button(fCompositeLogin, SWT.PUSH);
+		fButtonOK.setText("OK"); //$NON-NLS-1$
+		// Configure layout data
+		GridData data = new GridData(SWT.NONE, SWT.NONE, false, false);
+		data.widthHint = F_BUTTON_WIDTH_HINT;
+		data.verticalIndent = 10;
+		fButtonOK.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui label blank.
+	 */
+	private void createUILabelBlank() {
+		Label label = new Label(fCompositeLogin, SWT.NONE);
+		label.setVisible(false);
+	}
+
+	/**
+	 * Creates the ui text password.
+	 */
+	private void createUITextPassword() {
+		// Create the text widget
+		int style = SWT.PASSWORD | SWT.BORDER;
+		fTextPassword = new Text(fCompositeLogin, style);
+		// Configure layout data
+		GridData data = new GridData(SWT.NONE, SWT.NONE, false, false);
+		data.widthHint = F_TEXT_WIDTH_HINT;
+		data.horizontalSpan = 2;
+		fTextPassword.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui label password.
+	 */
+	private void createUILabelPassword() {
+		// Create the label
+		Label label = new Label(fCompositeLogin, SWT.NONE);
+		label.setText("&Password:"); //$NON-NLS-1$
+		// Configure layout data
+		GridData data = new GridData();
+		data.horizontalIndent = F_LABEL_HORIZONTAL_INDENT;
+		label.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui text user name.
+	 */
+	private void createUITextUserName() {
+		// Create the text widget
+		fTextUsername = new Text(fCompositeLogin, SWT.BORDER);
+		// Configure layout data
+		GridData data = new GridData(SWT.NONE, SWT.NONE, false, false);
+		data.widthHint = F_TEXT_WIDTH_HINT;
+		data.horizontalSpan = 2;
+		fTextUsername.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui label user name.
+	 */
+	private void createUILabelUserName() {
+		// Create the label
+		Label label = new Label(fCompositeLogin, SWT.NONE);
+		label.setText("&User Name:"); //$NON-NLS-1$
+		// Configure layout data
+		GridData data = new GridData();
+		data.horizontalIndent = F_LABEL_HORIZONTAL_INDENT;
+		label.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui composite blank.
+	 */
+	private void createUICompositeBlank() {
+		Composite spanner = new Composite(fCompositeLogin, SWT.NONE);
+		GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
+		data.horizontalSpan = F_COLUMN_COUNT;
+		spanner.setLayoutData(data);
+	}
+
+	/**
+	 * Creates the ui composite login.
+	 */
+	private void createUICompositeLogin() {
+		// Create the composite
+		fCompositeLogin = new Composite(getSplash(), SWT.BORDER);
+		GridLayout layout = new GridLayout(F_COLUMN_COUNT, false);
+		fCompositeLogin.setLayout(layout);
+	}
+
+	/**
+	 * Configure ui splash.
+	 */
+	private void configureUISplash() {
+		// Configure layout
+		FillLayout layout = new FillLayout();
+		getSplash().setLayout(layout);
+		// Force shell to inherit the splash background
+		getSplash().setBackgroundMode(SWT.INHERIT_DEFAULT);
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/splashHandlers/InteractiveSplashHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/JobsTimer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/JobsTimer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/JobsTimer.java	(revision 122)
@@ -0,0 +1,70 @@
+package org.txm.rcpapplication;
+
+import java.util.Date;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
+import org.txm.utils.ExecTimer;
+
+/**
+ * Print formated timer 
+ * 
+ * @author mdecorde
+ *
+ */
+public class JobsTimer {
+	static long startTime = 0, endTime = 0;
+	static float time = 0;
+	static String message = ""; //$NON-NLS-1$
+	
+	public static void start() {
+		startTime = new Date().getTime();
+	}
+
+	public static String stop() {
+		endTime = new Date().getTime();
+		time = endTime - startTime;
+		return setMessage();
+	}
+
+	static float t;
+	private static String setMessage() {
+		t = time;
+		if (t < 1000) {
+			message = ""+((int)t)+Messages.JobsTimer_2; //$NON-NLS-1$
+		} else {
+			t = t/1000;
+			if (t < 3) {
+				message = ""+t; //$NON-NLS-1$
+				message = ""+(message.substring(0, 3))+Messages.JobsTimer_5; //$NON-NLS-1$
+			} else if (t < 60) 
+				message = ""+((int)t)+Messages.JobsTimer_5; //$NON-NLS-1$
+			else if (t < 3600) {
+				message = ""+((int)t/60)+Messages.JobsTimer_9+((int)t%60)+Messages.JobsTimer_5; //$NON-NLS-1$
+			} else { 
+				message = ""+((int)t/3600)+Messages.JobsTimer_12+((int)(t%3600)/60)+Messages.JobsTimer_13+((int)(t%3600)%60)+ Messages.JobsTimer_5; //$NON-NLS-1$
+			}
+		}
+		return message;
+	}
+
+	public static String getMessage() {
+		return message;
+	}
+	
+	public static void stopAndPrint() {
+		if (TxmPreferences.getBoolean(Toolbox.SHOW_TIMINGS)) {
+			if (time <= 1000) System.out.println(NLS.bind(Messages.JobsTimer_15, stop(),(int)time));
+			else System.out.println(NLS.bind(Messages.JobsTimer_19, stop()));
+		}
+	}
+
+	public static void main(String[] args) throws InterruptedException {
+		ExecTimer.start();
+		Thread.sleep(1000);
+		JobsTimer.start();
+		Thread.sleep(1000);
+		System.out.println(Messages.JobsTimer_20+JobsTimer.stop());
+		System.out.println(Messages.JobsTimer_21+ExecTimer.stop());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/JobsTimer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchAdvisor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchAdvisor.java	(revision 122)
@@ -0,0 +1,1463 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+import java.util.Properties;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
+import org.eclipse.e4.ui.css.swt.theme.IThemeManager;
+import org.eclipse.equinox.internal.p2.core.helpers.ServiceHelper;
+import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.preference.IPreferenceNode;
+import org.eclipse.jface.preference.PreferenceManager;
+import org.eclipse.jface.util.Util;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPreferenceConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.application.IWorkbenchConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IOConsole;
+import org.eclipse.ui.console.IOConsoleInputStream;
+import org.eclipse.ui.console.IOConsoleOutputStream;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.txm.Toolbox;
+import org.txm.chartsengine.core.ChartsEngine;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.core.chartsengine.base.___ChartsEngine;
+import org.txm.doc.Zip;
+import org.txm.importer.Convert5To6;
+import org.txm.objects.Base;
+import org.txm.objects.Workspace;
+import org.txm.rcpapplication.commands.ExecuteGroovyScript;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.commands.OpenWelcomePage;
+import org.txm.rcpapplication.commands.TxmCommand;
+import org.txm.rcpapplication.commands.base.DeleteObject;
+import org.txm.rcpapplication.commands.workspace.LoadBinaryCorpus;
+import org.txm.rcpapplication.p2.plugins.FixUpdateHandler;
+import org.txm.rcpapplication.p2.plugins.TXMUpdateHandler;
+import org.txm.rcpapplication.perspective.TXMPerspective;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.rcpapplication.preferences.CQPPreferencePage;
+import org.txm.rcpapplication.preferences.ImportPreferencePage;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.rcpapplication.preferences.RPreferencePage;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.preferences.TXMPreferencePage;
+import org.txm.rcpapplication.preferences.TreeTaggerPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.BasesView;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.rcpapplication.views.SummaryView;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+import org.txm.utils.DeleteDir;
+import org.txm.utils.FileCopy;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Manages the opening and closing of TXM
+ */
+public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
+
+	/** The Constant PERSPECTIVE_ID. */
+	private static final String PERSPECTIVE_ID = TXMPerspective.ID;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
+	 */
+	@Override
+	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
+			IWorkbenchWindowConfigurer configurer) {
+		return new ApplicationWorkbenchWindowAdvisor(configurer);
+	}
+
+	@Override
+	public IAdaptable getDefaultPageInput() {
+		org.eclipse.core.resources.IWorkspace workspace = org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
+		return workspace.getRoot();
+	}
+
+	/**
+	 * initialization code done after the splash screen.
+	 *
+	 * @param configurer the configurer
+	 */
+	@Override
+	public void initialize(IWorkbenchConfigurer configurer) {
+		org.eclipse.ui.ide.IDE.registerAdapters();
+
+		//WorkbenchAdapterBuilder.registerAdapters(); // deprecated
+		PlatformUI.getPreferenceStore().setValue(
+				IWorkbenchPreferenceConstants.SHOW_PROGRESS_ON_STARTUP, true);
+		InitializeLogger();
+
+		configurer.setSaveAndRestore(true);
+	}
+
+	@Override
+	public void preStartup() {
+
+	}
+
+	/**
+	 * return all the properties needed by the Toolbox.
+	 *
+	 * @return the properties
+	 */
+	public static Properties getProperties() {
+		IPreferencesService service = Platform.getPreferencesService();
+
+		String logLevel = service.getString(Application.PLUGIN_ID,
+				AdvancePreferencePage.LOG_LEVEL, "SEVERE", null); //$NON-NLS-1$
+		boolean logConsole = service.getBoolean(Application.PLUGIN_ID,
+				AdvancePreferencePage.ADD_TECH_LOGS, true, null);
+		boolean logStackTrace = service.getBoolean(Application.PLUGIN_ID,
+				AdvancePreferencePage.LOG_STACKTRACE, false, null);
+		boolean logTimings = service.getBoolean(Application.PLUGIN_ID,
+				AdvancePreferencePage.SHOW_TIMINGS, true, null);
+		boolean logFile = service.getBoolean(Application.PLUGIN_ID,
+				AdvancePreferencePage.LOG_IN_FILE, false, null);
+		String host = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_HOST, "", null); //$NON-NLS-1$
+		int port = service.getInt(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_PORT, 0, null);
+		String userName = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_LOGIN, "", null); //$NON-NLS-1$
+		String passWord = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_PASSWORD, "", null); //$NON-NLS-1$
+		String pathToExecutable = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE, "", null); //$NON-NLS-1$
+		String pathToCQPLib = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_PATH_TO_CQPLIB, "", null); //$NON-NLS-1$
+		//		String pathToRegistry = service.getString(Application.PLUGIN_ID,
+		//				CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY, "", null); //$NON-NLS-1$
+		String pathToInitFile = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE, "", null); //$NON-NLS-1$
+		String additionalOptions = service.getString(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_ADDITIONAL_OPTIONS, "", null); //$NON-NLS-1$
+		boolean cqpRemote = service.getBoolean(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_SERVER_IS_REMOTE, false, null);
+		boolean cqpNetwork = service.getBoolean(Application.PLUGIN_ID,
+				CQPPreferencePage.CQI_NETWORK_MODE, false, null);
+		String defaultEmptyCode = service.getString(Application.PLUGIN_ID,
+				ImportPreferencePage.CQP_EMPTY_VALUE_CODE, "", null); //$NON-NLS-1$
+		String pathToRExecutable = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_PATH_TO_EXECUTABLE, "", null); //$NON-NLS-1$
+		String pathToRremote = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_SERVER_ADRESS, "", null); //$NON-NLS-1$
+		String rPort = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_PORT, "6311", null); //$NON-NLS-1$
+		String rUser = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_USER, "", null); //$NON-NLS-1$
+		String rPassword = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_PASSWORD, "", null); //$NON-NLS-1$
+		String rArgs = service.getString(Application.PLUGIN_ID,
+				Toolbox.R_RARGS, "", null); //$NON-NLS-1$
+		String rServeArgs = service.getString(Application.PLUGIN_ID,
+				Toolbox.R_RSERVEARGS, "", null); //$NON-NLS-1$
+		boolean rDebug = service.getBoolean(Application.PLUGIN_ID,
+				RPreferencePage.R_DEBUG, false, null);
+		boolean rRemote = service.getBoolean(Application.PLUGIN_ID,
+				RPreferencePage.R_REMOTE, false, null);
+		boolean rFileTransfert = service.getBoolean(Application.PLUGIN_ID,
+				RPreferencePage.R_FILE_TRANSFERT, false, null);
+		String rSvgDevice = service.getString(Application.PLUGIN_ID,
+				RPreferencePage.R_SVG_DEVICE, "svg", null); //$NON-NLS-1$
+		String locale = service.getString(Application.PLUGIN_ID,
+				LocalePreferencePage.UI_LOCALE, "", null); //$NON-NLS-1$
+		String installdir = service.getString(Application.PLUGIN_ID,
+				AdvancePreferencePage.INSTALL_DIR, "", null); //$NON-NLS-1$
+		String txmhomedir = service.getString(Application.PLUGIN_ID,
+				AdvancePreferencePage.TXMHOME, "", null); //$NON-NLS-1$
+		String treetaggerinstalldir = service.getString(Application.PLUGIN_ID,
+				TreeTaggerPreferencePage.TREETAGGER_INSTALL_PATH, "", null); //$NON-NLS-1$
+		String treetaggermodelsdir = service.getString(Application.PLUGIN_ID,
+				TreeTaggerPreferencePage.TREETAGGER_MODELS_PATH, "", null); //$NON-NLS-1$
+		String treetaggeroptions = service.getString(Application.PLUGIN_ID,
+				TreeTaggerPreferencePage.TREETAGGER_OPTIONS, "", null); //$NON-NLS-1$
+		String treetaggerapostrophe = service.getString(Application.PLUGIN_ID,
+				TreeTaggerPreferencePage.TREETAGGER_APOSTROPHE, "false", null); //$NON-NLS-1$
+
+		String importencoding = service.getString(Application.PLUGIN_ID,
+				ImportPreferencePage.METADATA_ENCODING, "", null); //$NON-NLS-1$
+		String importcolseparator = service.getString(Application.PLUGIN_ID,
+				ImportPreferencePage.METADATA_COLSEPARATOR, "", null); //$NON-NLS-1$
+		String importtxtseparator = service.getString(Application.PLUGIN_ID,
+				ImportPreferencePage.METADATA_TXTSEPARATOR, "", null); //$NON-NLS-1$
+//		boolean specifLog = service.getBoolean(Application.PLUGIN_ID,
+//				SpecificitiesPreferencePage.PVALUES, true, null);
+
+		Properties properties = new Properties();
+		properties.put(AdvancePreferencePage.LOG_LEVEL, "" + logLevel); //$NON-NLS-1$
+		properties.put(AdvancePreferencePage.ADD_TECH_LOGS, "" + logConsole); //$NON-NLS-1$
+		properties.put(AdvancePreferencePage.LOG_STACKTRACE, "" + logStackTrace); //$NON-NLS-1$
+		properties.put(AdvancePreferencePage.SHOW_TIMINGS, "" + logTimings); //$NON-NLS-1$
+		properties.put(AdvancePreferencePage.LOG_IN_FILE, ""+logFile); //$NON-NLS-1$
+		properties.put(CQPPreferencePage.CQI_SERVER_HOST, host);
+		properties.put(CQPPreferencePage.CQI_SERVER_PORT, port);
+		properties.put(CQPPreferencePage.CQI_SERVER_LOGIN, userName);
+		properties.put(ImportPreferencePage.CQP_EMPTY_VALUE_CODE, defaultEmptyCode);
+		properties.put(CQPPreferencePage.CQI_SERVER_PASSWORD, passWord);
+		properties.put(CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE,
+				pathToExecutable);
+		properties.put(CQPPreferencePage.CQI_SERVER_PATH_TO_CQPLIB,
+				pathToCQPLib);
+		//		properties.put(CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY,
+		//				pathToRegistry);
+		properties.put(CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE,
+				pathToInitFile);
+		properties.put(CQPPreferencePage.CQI_SERVER_ADDITIONAL_OPTIONS,
+				additionalOptions);
+		properties.put(CQPPreferencePage.CQI_SERVER_IS_REMOTE, "" + cqpRemote); //$NON-NLS-1$
+		properties.put(CQPPreferencePage.CQI_NETWORK_MODE, "" + cqpNetwork); //$NON-NLS-1$
+		properties.put(RPreferencePage.R_PATH_TO_EXECUTABLE, pathToRExecutable);
+		properties.put(RPreferencePage.R_SERVER_ADRESS, pathToRremote);
+		properties.put(RPreferencePage.R_PORT, rPort);
+		properties.put(RPreferencePage.R_USER, rUser);
+		properties.put(RPreferencePage.R_PASSWORD, rPassword);
+		properties.put(Toolbox.R_RARGS, rArgs);
+		properties.put(Toolbox.R_RSERVEARGS, rServeArgs);
+		properties.put(RPreferencePage.R_REMOTE, "" + rRemote); //$NON-NLS-1$
+		properties.put(RPreferencePage.R_DEBUG, ""+rDebug); //$NON-NLS-1$
+		properties.put(RPreferencePage.R_FILE_TRANSFERT, "" + rFileTransfert); //$NON-NLS-1$
+		properties.put(RPreferencePage.R_SVG_DEVICE, "" + rSvgDevice); //$NON-NLS-1$
+		properties.put(LocalePreferencePage.UI_LOCALE, locale);
+		properties.put(AdvancePreferencePage.INSTALL_DIR, installdir);
+		properties.put(AdvancePreferencePage.TXMHOME, txmhomedir);
+		properties.put(TreeTaggerPreferencePage.TREETAGGER_INSTALL_PATH,
+				treetaggerinstalldir);
+		properties.put(TreeTaggerPreferencePage.TREETAGGER_MODELS_PATH,
+				treetaggermodelsdir);
+		properties.put(TreeTaggerPreferencePage.TREETAGGER_OPTIONS,
+				treetaggeroptions);
+		properties.put(TreeTaggerPreferencePage.TREETAGGER_APOSTROPHE,
+				""+treetaggerapostrophe); //$NON-NLS-1$
+		properties.put(ImportPreferencePage.METADATA_ENCODING, importencoding);
+		properties.put(ImportPreferencePage.METADATA_COLSEPARATOR, importcolseparator);
+		properties.put(ImportPreferencePage.METADATA_TXTSEPARATOR, importtxtseparator);
+		//properties.put(SpecificitiesPreferencePage.PVALUES, specifLog);
+
+		// FIXME : can't we populate this directly from the plugins properties or from the Toolbox properties ?
+//		properties.put(___ChartsEngine.PROP_CHARTS_ENGINE_NAME, service.getString(Application.PLUGIN_ID, ___ChartsEngine.PROP_CHARTS_ENGINE_NAME, "", null)); //$NON-NLS-1$
+//		properties.put(___ChartsEngine.PROP_CHARTS_ENGINE_OUTPUT_FORMAT, service.getString(Application.PLUGIN_ID, ___ChartsEngine.PROP_CHARTS_ENGINE_OUTPUT_FORMAT, "", null)); //$NON-NLS-1$
+//
+//		properties.put(___ChartsEngine.PROP_PARTITION_DIMENSIONS_SORTED_BY_SIZE, service.getBoolean(Application.PLUGIN_ID, ___ChartsEngine.PROP_PARTITION_DIMENSIONS_SORTED_BY_SIZE, false, null));
+//		properties.put(___ChartsEngine.PROP_PARTITION_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE, service.getBoolean(Application.PLUGIN_ID, ___ChartsEngine.PROP_PARTITION_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE, false, null));
+		return properties;
+	}
+
+	private static final String ITXMCOMMAND_ID = "org.txm.rcp.extentionpoint.command"; //$NON-NLS-1$
+	/**
+	 * Allow to install a TXM extension AFTER the Toolbox is initialized
+	 */
+	private void loadTxmCommandExtensions() {
+
+		IConfigurationElement[] config = Platform.getExtensionRegistry()
+				.getConfigurationElementsFor(ITXMCOMMAND_ID);
+		Log.warning(Messages.ApplicationWorkbenchAdvisor_15);
+		Log.warning(Arrays.toString(config));
+
+		for (IConfigurationElement e : config) {
+			try {
+				Log.warning(Messages.ApplicationWorkbenchAdvisor_14+e.getName()+" from "+e.getContributor().getName());
+				final Object o = e.createExecutableExtension("class"); //$NON-NLS-1$
+				if (o instanceof TxmCommand) {
+					ISafeRunnable runnable = new ISafeRunnable() {
+						@Override
+						public void handleException(Throwable exception) {
+							System.out.println(Messages.ApplicationWorkbenchAdvisor_6+ exception);
+						}
+
+						@Override
+						public void run() throws Exception {
+							((TxmCommand) o).install();
+						}
+					};
+					SafeRunner.run(runnable);
+				}
+			} catch (Exception ex) {
+				System.out.println("Exception while installing "+e.getName()+": "+ex.getMessage());
+			}
+		}
+	}
+	
+	/**
+	 * Allow to install a TXM extension BEFORE the Toolbox is initialized
+	 */
+	private void preloadTxmCommandExtensions() {
+
+		IConfigurationElement[] config = Platform.getExtensionRegistry().getConfigurationElementsFor(ITXMCOMMAND_ID);
+		Log.warning(Messages.ApplicationWorkbenchAdvisor_15);
+		Log.warning(Arrays.toString(config));
+
+		for (IConfigurationElement e : config) {
+			try {
+				Log.warning(Messages.ApplicationWorkbenchAdvisor_14+e.getName()+" from "+e.getContributor().getName());
+				final Object o = e.createExecutableExtension("class"); //$NON-NLS-1$
+				if (o instanceof TxmCommand) {
+					ISafeRunnable runnable = new ISafeRunnable() {
+						@Override
+						public void handleException(Throwable exception) {
+							System.out.println(Messages.ApplicationWorkbenchAdvisor_6+ exception);
+						}
+
+						@Override
+						public void run() throws Exception {
+							((TxmCommand) o).preInstall();
+						}
+					};
+					SafeRunner.run(runnable);
+				}
+			} catch (Exception ex) {
+				System.out.println("Exception while installing "+e.getName()+": "+ex.getMessage());
+			}
+		}
+	}
+
+
+	/**
+	 * Set Eclipse Theme depending on the OS
+	 */
+	@SuppressWarnings("rawtypes")
+	private void setDefaultTheme() {
+		Bundle b = FrameworkUtil.getBundle(getClass());
+		BundleContext context = b.getBundleContext();
+
+		ServiceReference serviceRef = context.getServiceReference(IThemeManager.class.getName());
+		@SuppressWarnings("unchecked")
+		IThemeManager themeManager = (IThemeManager) context.getService(serviceRef);
+		IThemeEngine engine = themeManager.getEngineForDisplay(Display.getDefault());
+
+		String OS = System.getProperty("os.name"); //$NON-NLS-1$
+		String theme = "org.txm.rcp.theme.default.linux"; //$NON-NLS-1$
+
+		if (Util.isWindows()) { //$NON-NLS-1$
+			theme = "org.txm.rcp.theme.default.windows"; //$NON-NLS-1$
+		} else if (Util.isMac()) { //$NON-NLS-1$
+			theme = "org.txm.rcp.theme.default.mac"; //$NON-NLS-1$
+		}
+
+		engine.setTheme(theme, true);
+	}
+
+	/**
+	 * initialization code done after the splash screen call a job which does the
+	 * post installation the TXMHOME, checks the TreeTagger and finally
+	 * starts the toolbox.
+	 */
+	@Override
+	public void postStartup() {
+
+		try {			
+			// create the Toolbox initialization job
+			JobHandler jobhandler = new JobHandler(
+					Messages.ApplicationWorkbenchAdvisor_1, true) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					JobsTimer.start();
+					this.runInit(monitor);
+					monitor.worked(1);
+					try {
+						monitor.beginTask("Starting TXM", 100);
+						monitor.subTask("Initialize");
+						// init with properties
+						Display.getDefault().syncExec(new Runnable() {
+							@Override
+							public void run() {
+								printTXMVersion(); // print TXM version in the console
+							}
+						});
+						Thread.sleep(1000);// let the startup message be displayed
+						setPreferencesConfiguration(); // remove some preference pages
+
+						//fixUpdateProfile();
+
+						// SET PREFERENCES IF THIS IS THE FIRST RUN
+						monitor.setTaskName(Messages.ApplicationWorkbenchAdvisor_2);
+						Log.warning(Messages.ApplicationWorkbenchAdvisor_72);
+						if (!loadInstallPreferences(this)) {
+							monitor.done();
+							System.err.println(Messages.ApplicationWorkbenchAdvisor_init_failed);
+							return Status.CANCEL_STATUS;
+						}
+						monitor.worked(10);
+
+						// CHECK IF THIS IS THE FIRST RUN
+						monitor.setTaskName(Messages.ApplicationWorkbenchAdvisor_3);
+						Log.warning(Messages.ApplicationWorkbenchAdvisor_73);
+						if (!checkTXMHOME(this, monitor)) {
+							monitor.done();
+							System.err.println(Messages.ApplicationWorkbenchAdvisor_init_failed);
+							return Status.CANCEL_STATUS;
+						}
+						monitor.worked(30);
+
+						//INITIALIZE TBX AND UI
+						monitor.setTaskName(Messages.ApplicationWorkbenchAdvisor_0);
+						Log.warning(Messages.ApplicationWorkbenchAdvisor_74);
+						if (!initializeUI(this)) {
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+						monitor.worked(30);
+
+						// CLOSE Empty editors
+						closeEmptyEditors();
+
+
+						monitor.done();
+					} catch (Exception e) {
+						System.out.println(Messages.ApplicationWorkbenchAdvisor_75+e);
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} catch(ThreadDeath td) {
+						System.out.println("TXM initialization has been canceled by user. Please restart TXM.");
+					}
+					JobsTimer.stopAndPrint();
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+
+			//start update NOT IN A JOB
+			startUpdateLookUpJob();
+
+		} catch (Exception e) {
+			Log.severe(e.getLocalizedMessage());
+			System.err.println(Messages.ApplicationWorkbenchAdvisor_init_failed+" "+e.getLocalizedMessage());
+		}
+	}
+
+	public static  void closeEmptyEditors() {
+		Log.info("Closing empty editors...");
+		String REF = "org.eclipse.ui.internal.emptyEditorTab";
+
+		for (final IWorkbenchPage page : DeleteObject.getPages()) {
+			ArrayList<IEditorReference> editorRefsList = new ArrayList<IEditorReference>();
+			for (IEditorReference editorref : page.getEditorReferences()) {
+				if (editorref.getId().equals(REF)) {
+					Log.info("Closing: "+editorref.getId());
+					editorRefsList.add(editorref);
+				}
+			}
+
+			final IEditorReference[] editorRefs = editorRefsList.toArray(new IEditorReference[editorRefsList.size()]);
+			Display.getDefault().syncExec(new Runnable() {
+
+				@Override
+				public void run() {
+					page.closeEditors(editorRefs, false);
+				}
+			});
+		}
+	}
+
+	public static void printTXMVersion() {
+		// build the properties given to the Toolbox
+		String version =  Activator.getDefault().getBundle().getVersion().toString(); // "0.7.7.201412160925";
+		version = version.replaceAll("(.\\..\\..)\\.(....)(..)(..)(..)(..)", "$1 ($2-$3-$4)"); //$NON-NLS-1$ //$NON-NLS-2$
+		System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_init, version));
+
+	}
+
+	/**
+	 * Fix the Update p2 profile. No more needed since Eclipse 4.4
+	 */
+	private void fixUpdateProfile() {
+		try {
+			if (firstLaunchAfterInstallation()) {
+				Log.warning(Messages.ApplicationWorkbenchAdvisor_63);
+				/*
+				IPreferenceStore pref = AutomaticUpdatePlugin.getDefault().getPreferenceStore();
+				//System.out.println("before set update: "+pref.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+				pref.setValue(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED, false);
+
+				//				System.out.println("context "+AutomaticUpdatePlugin.getDefault().getContext());
+				//				System.out.println("Location "+AutomaticUpdatePlugin.getDefault().getStateLocation());
+				//				System.out.println("set update: "+pref.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+
+				//				ScopedPreferenceStore preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				//						Application.PLUGIN_ID);
+				//				preferences.setValue("org.eclipse.equinox.p2.ui.sdk.scheduler/enabled", true);
+				//				preferences.save();
+
+				IPreferencesService service = Platform.getPreferencesService();
+				service.getRootNode().node("configuration").node("org.eclipse.equinox.p2.ui.sdk.scheduler").put("enabled", "false");
+				service.getRootNode().node("default").node("org.eclipse.equinox.p2.ui.sdk.scheduler").put("enabled", "false");
+
+				AutomaticUpdatePlugin.getDefault().savePreferences();
+				//TODO: is rescheduleUpdate() attempting to update TXM ?
+				AutomaticUpdatePlugin.getDefault().getScheduler().rescheduleUpdate();
+				 */
+				IProvisioningAgent agent = (IProvisioningAgent) ServiceHelper.getService(Activator.getDefault().getBundle().getBundleContext(),IProvisioningAgent.SERVICE_NAME);
+				if (agent == null) {
+					System.out.println(Messages.ApplicationWorkbenchAdvisor_64);
+				} else {
+					FixUpdateHandler.run(agent);
+				}
+
+			}
+		} catch(Exception e) {
+			System.out.println(Messages.ApplicationWorkbenchAdvisor_65+e);
+			Log.printStackTrace(e);
+		}
+	}
+
+	private void setPreferencesConfiguration() {
+		PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
+
+		// Remove RCP Update preference page
+		Log.warning(Messages.ApplicationWorkbenchAdvisor_21);
+		if (!TxmPreferences.getBoolean(AdvancePreferencePage.EXPERT_USER, false)) {
+			pm.remove("org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage"); //$NON-NLS-1$
+
+			// Remove the Team menu
+			pm.remove("org.eclipse.team.ui.TeamPreferences"); //$NON-NLS-1$
+
+			// XML
+			//pm.remove("org.eclipse.wst.xml.ui.preferences.xml"); //$NON-NLS-1$
+
+			// Validation
+			//pm.remove("ValidationPreferencePage"); //$NON-NLS-1$
+
+			// Debug
+			//pm.remove("org.eclipse.debug.ui.DebugPreferencePage"); //$NON-NLS-1$
+		}
+		// Remove RCP Web browser preference page
+		IPreferenceNode[] arr = pm.getRootSubNodes();
+		for(IPreferenceNode pn : arr){
+			//			System.out.println("Label:" + pn.getLabelText() + " ID:" + pn.getId()+" Type: "+pn.getClass());
+			//			for (IPreferenceNode subn : pn.getSubNodes()) {
+			//				System.out.println(" SLabel:" + subn.getLabelText() + " ID:" + subn.getId());
+			//			}
+			if ("org.eclipse.ui.preferencePages.Workbench".equals(pn.getId())) { //$NON-NLS-1$
+				WorkbenchPreferenceNode pwn = (WorkbenchPreferenceNode)pn;
+				pwn.remove("org.eclipse.ui.browser.preferencePage"); //$NON-NLS-1$
+			}
+		}
+	}
+
+	public void startUpdateLookUpJob() {
+		if (wasFirstLaunch) return; // don't call for update for the first run of TXM
+
+		//		JobHandler jobhandler = new JobHandler(Messages.ApplicationWorkbenchAdvisor_76, true) {
+		//			@Override
+		//			protected IStatus run(IProgressMonitor monitor) {
+		//				JobsTimer.start();
+		try {
+			boolean doUpdate = TxmPreferences.getBoolean(TXMPreferencePage.AUTO_UPDATE);
+			if (!doUpdate) return;
+			//
+			//				this.syncExec(new Runnable() {
+			//					@Override
+			//					public void run() {
+
+			try {
+				URL url = new URL("http://txm.textometrie.org/updates/up");
+				url.openStream().read();
+			} catch(Exception e){
+				Log.warning("TXM cannot fetch updates ("+e+")");
+				doUpdate = false;
+			}
+
+			Log.warning(Messages.ApplicationWorkbenchAdvisor_77);
+
+			IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+			if (handlerService != null) {
+				try {
+					Event e = new Event();
+					e.display = Display.getDefault();
+					handlerService.executeCommand(TXMUpdateHandler.ID, e);
+				} catch (Exception e) {
+					System.out.println(Messages.ApplicationWorkbenchAdvisor_78+e);
+					Log.printStackTrace(e);
+				}
+			} else {
+				System.out.println(Messages.ApplicationWorkbenchAdvisor_79);
+			}
+			//					}
+			//				});
+		} catch(Exception e) {
+			System.out.println("Error while fetching updates: "+e);
+		} catch(ThreadDeath td) {
+			System.out.println("Update canceled.");
+		}
+
+		//				JobsTimer.stopAndPrint();
+		//				return Status.OK_STATUS;
+		//			}
+		//		};
+		//		jobhandler.setUser(true);
+		//		jobhandler.startJob(true);
+	}
+
+	public static boolean firstLaunchAfterInstallation() {
+		if (TxmPreferences.get(AdvancePreferencePage.TXMHOME) == null || TxmPreferences.get(AdvancePreferencePage.TXMHOME).trim().equals("")) {
+			System.out.println("TXM Home directory preference not set.");
+			return true;
+		}
+		File dir = new File(TxmPreferences.get(AdvancePreferencePage.TXMHOME).trim());
+		if (!dir.exists()) {
+			System.out.println("TXM Home directory is set but does not exist.");
+			return true;
+		}
+		
+		if (!dir.canWrite()) {
+			System.out.println("TXM Home directory is set and exists but TXM can't write in this directory.");
+			return true;
+		}
+		
+		return false;
+	}
+
+	/**
+	 * shutdown code.
+	 */
+	@Override
+	public void postShutdown() {
+		//callStopScript();
+		Toolbox.shutdown();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()
+	 */
+	@Override
+	public String getInitialWindowPerspectiveId() {
+		return PERSPECTIVE_ID;
+	}
+
+	/**
+	 * initialize TXM log in console by redirecting stderr and stdout.
+	 */
+	private void InitializeLogger() {
+		IOConsole console = new IOConsole(
+				Messages.ApplicationWorkbenchAdvisor_5, null);
+		ConsolePlugin.getDefault().getConsoleManager().addConsoles(
+				new IConsole[] { console });
+
+		// Enable or disable the outputs redirection to the RCP console according to the command line argument "-noredirection"
+		boolean outputsRedirection = true;
+		String[] args = Platform.getCommandLineArgs();
+		for (int i = 0; i < args.length; i++) {
+			if (args[i].equals("-noredirection"))	{ //$NON-NLS-1$
+				outputsRedirection = false;
+				break;
+			}
+		}
+		if (outputsRedirection)	{
+			IOConsoleOutputStream stream = console.newOutputStream();
+			IOConsoleInputStream streamInput = console.getInputStream();
+
+			//			PrintStream stdout = System.out;
+			//			PrintStream stderr = System.err;
+
+			System.setOut(new PrintStream(stream));
+			System.setErr(new PrintStream(stream));
+			System.setIn(streamInput);
+		}
+		// System.out.println(Messages.ApplicationWorkbenchAdvisor_3);
+	}
+
+	/**
+	 * if INSTALLDIR preference is not set or empty, read install.prefs and sets the
+	 * Toolbox parameters
+	 *
+	 * First: restore preferences from previous TXM
+	 * Second: set install preferences from new TXM
+	 * Third: restore TreeTagger preferences
+	 *
+	 * Need to define a list of preferences that must be updated by the new install, then exchange step 1 and 2 (and remove step 3)
+	 *
+	 * @param jobHandler : the init job
+	 * @return true, if successful
+	 */
+	private boolean loadInstallPreferences(JobHandler jobHandler) {
+		try {
+			// check if the install preference file has been loaded
+			if ((TxmPreferences.get(AdvancePreferencePage.INSTALL_DIR) == null)
+					|| (TxmPreferences.get(AdvancePreferencePage.INSTALL_DIR).equals("")) //$NON-NLS-1$
+					|| !new File(TxmPreferences.get(AdvancePreferencePage.INSTALL_DIR)).exists()) {
+				Display.getDefault().syncExec(new Runnable() {
+					@Override
+					public void run() { OpenWelcomePage.openWelcomePage(); }
+				});
+
+				File previousPreferenceFile = new File(System.getProperty("java.io.tmpdir"),  //$NON-NLS-1$
+						"org.txm.rcpapplication.prefs"); //$NON-NLS-1$
+
+				if (System.getProperty("os.name").indexOf("Mac") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$
+					previousPreferenceFile = new File("/tmp/org.txm.rcpapplication.prefs"); //$NON-NLS-1$
+				}
+
+				if (previousPreferenceFile.exists()) {
+					//					File renamedPreviousPreferenceFile = new File(previousPreferenceFile.getParent(),  //$NON-NLS-1$
+					//							"org.txm.rcpapplication-backup.prefs");
+					//					if (!previousPreferenceFile.renameTo(renamedPreviousPreferenceFile)) {
+					//						System.out.println("Failed to rename preference page from "+previousPreferenceFile+" to "+renamedPreviousPreferenceFile);
+					//					} else {
+					//						System.out.println(Messages.ApplicationWorkbenchAdvisor_66+previousPreferenceFile);
+					//						// this is a Java properties file (iso + \\)
+					TxmPreferences.importFromFile(previousPreferenceFile, "ISO-8859-1", true); //$NON-NLS-1$
+					//					}
+				} else {
+					System.out.println(Messages.ApplicationWorkbenchAdvisor_67+previousPreferenceFile);
+				}
+
+				//TxmPreferences.remove(Toolbox.USER_TXM_HOME);
+				TxmPreferences.remove(Toolbox.INSTALL_DIR);
+
+				// set install directory preference
+				String installpath = Platform.getInstallLocation().getURL().getFile();
+				File installDirectory = new File(installpath, "..");  //$NON-NLS-1$
+				installDirectory = installDirectory.getCanonicalFile();
+				TxmPreferences.set(AdvancePreferencePage.INSTALL_DIR, installDirectory.getAbsolutePath());
+				
+				File preferenceFile = new File(installDirectory, "install.prefs"); //$NON-NLS-1$
+				Log.info(NLS.bind(Messages.ApplicationWorkbenchAdvisor_25, preferenceFile));
+				if (Util.isWindows()) //NSIS has generated ISO-8859-1 preference file
+					TxmPreferences.importFromFile(preferenceFile, "ISO-8859-1", false); //$NON-NLS-1$
+				else
+					TxmPreferences.importFromFile(preferenceFile);
+
+				// restore previous TreeTagger preferences
+				String ttpath = TxmPreferences.get(Toolbox.TREETAGGER_INSTALL_PATH);
+				String ttmodelpath = TxmPreferences.get(Toolbox.TREETAGGER_MODELS_PATH);
+				if (ttpath != null && ttpath.length() > 0) {
+					TxmPreferences.set(Toolbox.TREETAGGER_INSTALL_PATH, ttpath);
+					TxmPreferences.set(Toolbox.TREETAGGER_MODELS_PATH, ttmodelpath);
+				}
+
+				Toolbox.updateProperties(TxmPreferences.getProperties());
+				return true;
+			}
+		} catch (Exception e) {
+			Log.severe(e.getLocalizedMessage());
+			System.err.println(Messages.ApplicationWorkbenchAdvisor_9+ " " +e.getLocalizedMessage());
+			return false;
+		}
+		return true;
+	}
+
+	boolean go = false;
+	File backup;
+	File oldbackup;
+	File errorbackup;
+	File corporaDir;
+	/**
+	 * if TXMHOME path is not set or wrong
+	 *  - set default theme
+	 *  - restore old corpora
+	 *  - creates TXMHOME and copy "scripts", "samples" directories from TXMINSTALLDIR and mkdirs workspaces, registry,
+	 *    clipboard plus an empty Workspace (TXMObject) is created then load the sample corpora.
+	 *
+	 *
+	 * @param job the job
+	 * @param monitor
+	 * @return true, if successful
+	 */
+	private static boolean wasFirstLaunch;
+	public static boolean getWasFirstLaunch() {
+		return wasFirstLaunch;
+	}
+
+	File txmhomedir = null;
+	File installDirectory = null;
+	private Handler severeDialobBoxHandler = new Handler() {
+		@Override
+		public void publish(final LogRecord record) {
+			//System.out.println("severeDialobBoxHandler.publish()");
+			boolean showSevereDialobBox = TxmPreferences.getBoolean(AdvancePreferencePage.SHOW_SEVERE_DIALOG, false);
+			if (showSevereDialobBox) {
+				//System.out.println("SHOW SEVERE DIALOG BOX: "+record.getMessage());
+				TXMWindows.getActiveWindow().getShell().getDisplay().syncExec(new Runnable() {
+					@Override
+					public void run() {
+						MessageDialog.openError(Display.getCurrent().getActiveShell(), "Error", record.getMessage());
+					}
+				});
+			}
+		}
+		
+		@Override
+		public void flush() { }
+		
+		@Override
+		public void close() throws SecurityException { }
+	};
+	{
+		Log.addHandler(severeDialobBoxHandler);
+		severeDialobBoxHandler.setLevel(Level.SEVERE);
+	}
+	private boolean checkTXMHOME(JobHandler jobHandler, IProgressMonitor monitor) {
+		txmhomedir = null;
+		installDirectory = null;
+		
+		// check if TXMHOME of the user is set and exists
+		wasFirstLaunch = firstLaunchAfterInstallation();
+		System.setProperty("org.txm.rcp.wasfirstrun", Boolean.toString(wasFirstLaunch)); //$NON-NLS-1$
+		if (wasFirstLaunch) {
+			
+			System.out.println(Messages.ApplicationWorkbenchAdvisor_7);
+			try  {
+				Log.info(Messages.ApplicationWorkbenchAdvisor_68);
+				Display.getDefault().syncExec(new Runnable() {
+					@Override
+					public void run() {
+						setDefaultTheme();
+					}
+				});
+			} catch(Exception e) {
+				Log.warning(Messages.ApplicationWorkbenchAdvisor_69+e);
+				Log.printStackTrace(e);
+			}
+
+			try {
+				Log.info("Checking TXM install directory.");
+				Toolbox.TXMINSTALL = TxmPreferences.get(AdvancePreferencePage.INSTALL_DIR);
+				installDirectory = new File(Toolbox.TXMINSTALL);
+				if (!installDirectory.exists()) { // the TXM user directory could be created !! :o
+					Display.getDefault().syncExec(new Runnable() {
+						@Override
+						public void run() {
+							DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell(), SWT.OPEN);
+							dialog.setText("TXM install directory is not set, Please select it.");
+							String path = dialog.open();
+							if (path != null) installDirectory = new File(path);
+						}
+					});
+				}
+				if (installDirectory == null || !installDirectory.exists()) {
+					Log.severe("Error: The provided install directory does not exists. Aborting.");
+					return false;
+				}
+				Log.info(NLS.bind(Messages.ApplicationWorkbenchAdvisor_8, Toolbox.TXMINSTALL));
+
+				Log.info("Checking TXM user directory.");
+				if (TxmPreferences.get(AdvancePreferencePage.TXMHOME) == null 
+						|| TxmPreferences.get(AdvancePreferencePage.TXMHOME).trim().equals("")) { //$NON-NLS-1$
+					txmhomedir = new File(System.getProperty("user.home"), "TXM"); //$NON-NLS-1$ //$NON-NLS-2$
+				} else {
+					txmhomedir = new File(TxmPreferences.get(AdvancePreferencePage.TXMHOME).trim());
+				}
+				txmhomedir.mkdirs(); // creates the directory if needed
+				
+				if (!txmhomedir.exists()) { // the TXM user directory could be created !! :o
+					Log.warning(NLS.bind(Messages.ApplicationWorkbenchAdvisor_12, txmhomedir));
+					Display.getDefault().syncExec(new Runnable() {
+						@Override
+						public void run() {
+							DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell(), SWT.OPEN);
+							dialog.setText("Please choose the TXM user directory to use.");
+							String path = dialog.open();
+							if (path != null) {
+								txmhomedir = new File(path);
+								txmhomedir.mkdirs();
+							}
+							
+						}
+					});
+				}
+				if (txmhomedir == null || !txmhomedir.exists()) {
+					Log.severe("Error: The provided directory does not exists. Aborting");
+					return false;
+				}
+				Log.info("TXM User directory is set to: "+txmhomedir);
+				
+				backup = new File(txmhomedir, "corpus-backup"); //$NON-NLS-1$
+				oldbackup = new File(txmhomedir, "corpus-backup-old"); //$NON-NLS-1$
+				errorbackup = new File(txmhomedir, "corpus-backup-error"); //$NON-NLS-1$
+				corporaDir = new File(txmhomedir, "corpora"); //$NON-NLS-1$
+
+				if (txmhomedir.exists() && txmhomedir.listFiles().length > 0) { // if the txmhomedir is not empty, try to restore its content
+					Display.getDefault().syncExec(new Runnable() {
+						@Override
+						public void run() {
+							Display display = Display.getDefault();
+							Shell shell = display.getActiveShell();
+							go = MessageDialog.openConfirm(shell, Messages.ApplicationWorkbenchAdvisor_28, NLS.bind(Messages.ApplicationWorkbenchAdvisor_27, txmhomedir));
+						}
+					});
+
+					if (go) {
+						monitor.setTaskName(Messages.bind(Messages.ApplicationWorkbenchAdvisor_30, backup.getAbsolutePath()));
+						backup.mkdir();
+
+						if (!backup.exists()) {
+							System.out.println(Messages.ApplicationWorkbenchAdvisor_34 + backup);
+							return false;
+						}
+
+						//$NON-NLS-1$
+						if (oldbackup.exists()) {
+							System.out.println(Messages.bind(Messages.ApplicationWorkbenchAdvisor_16, oldbackup));
+							DeleteDir.deleteDirectory(oldbackup); // ]8)
+						}
+
+						File[] corpDirs = corporaDir.listFiles();
+						ArrayList<String> moved = new ArrayList<String>();
+						ArrayList<String> failed = new ArrayList<String>();
+
+						if (corpDirs != null) {
+							Arrays.sort(corpDirs);
+							System.out.print(Messages.bind(Messages.ApplicationWorkbenchAdvisor_30, backup.getAbsolutePath()));
+							for (File corpusdir : corpDirs) {
+								File backCorpus = new File(backup, corpusdir.getName());
+								if (corpusdir.canRead() && corpusdir.isDirectory()) {
+									System.out.print("."); //$NON-NLS-1$
+									if (backCorpus.exists()) {
+										moved.add(corpusdir.getName());
+										oldbackup.mkdir();
+										backCorpus.renameTo(new File(oldbackup, corpusdir.getName()));
+									}
+
+									if (!corpusdir.renameTo(backCorpus)) {
+										failed.add(corpusdir.getName());
+									}
+								}
+							}
+							System.out.println();
+						}
+						if (moved.size() > 0) {
+							System.out.println(Messages.bind(Messages.ApplicationWorkbenchAdvisor_18,oldbackup,StringUtils.join(moved,", "))); //$NON-NLS-1$
+						}
+						if (failed.size() > 0) {
+							System.out.println(Messages.ApplicationWorkbenchAdvisor_44+failed+Messages.ApplicationWorkbenchAdvisor_37+backup);
+						}
+					}
+				}
+			} catch (Exception e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				System.out.println(Messages.ApplicationWorkbenchAdvisor_47+" "+e.getLocalizedMessage()); //$NON-NLS-1$
+				Log.severe(Messages.ApplicationWorkbenchAdvisor_47+e.getLocalizedMessage());
+				return false;
+			}
+
+			try {
+				txmhomedir.mkdir();
+				if (!txmhomedir.exists()) {
+					System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_13, txmhomedir));
+					return false;
+				}
+
+				// create folders
+				String createfolders[] = {
+						"corpora", "clipboard", //$NON-NLS-1$ //$NON-NLS-2$
+						"workspaces", "css", "scripts", "scripts/lib", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+						"scripts/macro", "scripts/user", "xsl", "samples", "schema"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+				String deletefolders[] = {"clipboard", "registry", "samples"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+				for (String folder : deletefolders) {
+					DeleteDir.deleteDirectory(new File(txmhomedir, folder));
+				}
+
+				for (String folder : createfolders) {
+					new File(txmhomedir, folder).mkdir();
+				}
+
+				// create TXM default.xml workspace
+				Toolbox.workspace = Workspace.createEmptyWorkspace(new File(
+						txmhomedir, "workspaces/default.xml")); //$NON-NLS-1$
+
+				// test
+				if (Toolbox.workspace == null) {
+					System.out.println(Messages.ApplicationWorkbenchAdvisor_31);
+					return false;
+				}
+
+				// the folders to copy from TXM install dir
+				String copyfolders[] = {"css", "scripts", "xsl", "samples", "scripts", "schema"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+				for (String folder : copyfolders) {
+					File ffile = new File(Toolbox.TXMINSTALL, folder);
+					if (!ffile.exists()) {
+						System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_39, ffile));
+						continue;
+					}
+
+					FileCopy.copyFiles(ffile, new File(txmhomedir, folder));
+				}
+
+				TxmPreferences.set(ScriptPreferencePage.SCRIPT_ROOT_DIR,new File(txmhomedir, "scripts").getAbsolutePath()); //$NON-NLS-1$
+
+			} catch (Exception e) {
+				Log.severe(NLS.bind(Messages.ApplicationWorkbenchAdvisor_40, e.getLocalizedMessage()));
+				System.err.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_40, e.getLocalizedMessage()));
+				return false;
+			}
+
+			try {
+				TxmPreferences.set(AdvancePreferencePage.TXMHOME, txmhomedir.getAbsolutePath());
+				//				TxmPreferences.set(CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY, txmhomedir.getAbsolutePath() + "/registry"); //$NON-NLS-1$
+				TxmPreferences.set(Toolbox.WORKSPACE_LOCATION, new File(txmhomedir,
+						"workspaces/default.xml").getAbsolutePath()); //$NON-NLS-1$
+
+				Toolbox.updateProperties(TxmPreferences.getProperties());
+				Toolbox.setParam(Toolbox.WORKSPACE_LOCATION, TxmPreferences
+						.get(Toolbox.WORKSPACE_LOCATION));
+			} catch (Exception e) {
+				Log.severe(NLS.bind(Messages.ApplicationWorkbenchAdvisor_41, e.getLocalizedMessage()));
+				System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_41, e.getLocalizedMessage()));
+				return false;
+			}
+
+			try {
+				ArrayList<String> basenames = new ArrayList<String>();
+				ArrayList<String> sampleCorpusLoaded = new ArrayList<String>();
+				if (new File(txmhomedir, "samples").exists()) { //$NON-NLS-1$
+					Log.info(Messages.ApplicationWorkbenchAdvisor_11);
+					monitor.setTaskName(Messages.ApplicationWorkbenchAdvisor_11);
+					//File corporaDir = new File(txmhomedir.getAbsolutePath(), "corpora"); //$NON-NLS-1$
+					corporaDir.mkdir();
+
+					File[] sampleCorpusFiles = new File(txmhomedir, "samples").listFiles(); //$NON-NLS-1$
+
+					for (File zipFile : sampleCorpusFiles) {
+						try {
+							String filename = zipFile.getName();
+							File basedir;
+							String basedirname;
+							if (filename.endsWith(".txm") || filename.endsWith(".zip")) { //$NON-NLS-1$ //$NON-NLS-2$
+								if (!zipFile.canRead()) {
+									System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_45, zipFile));
+									continue; // go to next binary file
+								}
+
+								//build binary dir path
+								basedirname = Zip.getRoot(zipFile);
+								basedir = new File(corporaDir, basedirname);
+
+								try {
+									Zip.decompress(zipFile.getAbsolutePath(), corporaDir.getAbsolutePath(), false);
+								} catch (IOException e) {
+									System.out.println(NLS.bind(Messages.AddBase_31, e));
+								}
+							} else if (zipFile.isDirectory()) {
+								basedir = zipFile;
+							} else {
+								System.out.println(NLS.bind(Messages.AddBase_22, zipFile));
+								System.out.println(Messages.AddBase_25);
+								continue;
+							}
+
+							Base base = LoadBinaryCorpus.loadBinaryCorpus(basedir);
+							if (base != null) {
+								basenames.add(base.getName());
+								sampleCorpusLoaded.add(base.getName());
+							}
+						} catch (Exception e) {
+							System.out.println(Messages.ApplicationWorkbenchAdvisor_51+zipFile);
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						}
+					}
+				}
+
+				if (backup.exists()) {
+					System.out.print(NLS.bind(Messages.ApplicationWorkbenchAdvisor_53, backup));
+					monitor.setTaskName(NLS.bind(Messages.ApplicationWorkbenchAdvisor_53, backup));
+
+					File[] corpusDirs = backup.listFiles();
+
+					if (corpusDirs != null) {
+
+						for (File corpusDir : corpusDirs) { // fix corpus name lowercase letters
+							if (!corpusDir.getName().equals(corpusDir.getName().toUpperCase())) {
+								File upperCasedCorpusDir = new File(corpusDir.getParentFile(), corpusDir.getName().toUpperCase());
+								if (!upperCasedCorpusDir.exists()) {
+									corpusDir.renameTo(upperCasedCorpusDir);
+								}
+							}
+						}
+						corpusDirs = backup.listFiles();
+
+						ArrayList<String> notMoved = new ArrayList<String>();
+						ArrayList<File> broken = new ArrayList<File>();
+
+						for (File corpusDir : corpusDirs) {
+							if (!corpusDir.isDirectory()) continue; // ignore
+							System.out.print("."); //$NON-NLS-1$
+							File outdir = new File(corporaDir, corpusDir.getName());
+							if (outdir.exists()) {
+								//System.out.println("This setup provides a new version of the "+corpusDir.getName()+" sample corpus. Skipping the backup of "+corpusDir);
+								notMoved.add(corpusDir.getName());
+								continue;
+							}
+
+							try {
+								Convert5To6 converter = new Convert5To6(corpusDir, outdir);
+								if (converter.is5(true)) {
+									if (!converter.start()) {
+										System.out.println(Messages.ApplicationWorkbenchAdvisor_22+corpusDir+Messages.ApplicationWorkbenchAdvisor_23);
+										System.out.println(Messages.ApplicationWorkbenchAdvisor_54+corpusDir+Messages.ApplicationWorkbenchAdvisor_55);
+										System.out.println(Messages.ApplicationWorkbenchAdvisor_56);
+										broken.add(corpusDir);
+									} else {
+										//System.out.println(Messages.ApplicationWorkbenchAdvisor_57+outdir);
+										Base base = LoadBinaryCorpus.loadBinaryCorpus(outdir);
+										basenames.add(base.getName());
+									}
+								} else {
+									if (Convert5To6.is6(corpusDir)) {
+										if (corpusDir.renameTo(outdir)) {
+											Base base = LoadBinaryCorpus.loadBinaryCorpus(outdir);
+											if (base == null) {
+												System.out.println(Messages.ApplicationWorkbenchAdvisor_58+outdir);
+												System.out.println(Messages.ApplicationWorkbenchAdvisor_59+corpusDir);
+												outdir.renameTo(corpusDir);
+												broken.add(corpusDir);
+											} else {
+												basenames.add(base.getName());
+											}
+										} else {
+											System.out.println(Messages.ApplicationWorkbenchAdvisor_24+corpusDir+Messages.ApplicationWorkbenchAdvisor_26+outdir);
+											broken.add(corpusDir);
+										}
+									} else {
+										System.out.println(Messages.ApplicationWorkbenchAdvisor_60+corpusDir+Messages.ApplicationWorkbenchAdvisor_61);
+										broken.add(corpusDir);
+									}
+								}
+							} catch (Throwable e) {
+								System.out.println(Messages.ApplicationWorkbenchAdvisor_59+corpusDir);
+								System.out.println(Messages.ApplicationWorkbenchAdvisor_29+e);
+								outdir.renameTo(corpusDir);
+							}
+						}
+						System.out.println();
+						if (sampleCorpusLoaded.size() > 0) {
+							if (sampleCorpusLoaded.size() == 1) {
+								System.out.println(Messages.bind(Messages.ApplicationWorkbenchAdvisor_43_single, StringUtils.join(sampleCorpusLoaded, ", "))); //$NON-NLS-1$
+							} else {
+								System.out.println(Messages.bind(Messages.ApplicationWorkbenchAdvisor_43, StringUtils.join(sampleCorpusLoaded, ", "))); //$NON-NLS-1$
+							}
+						}
+
+						if (broken.size() > 0) {
+							errorbackup.mkdir();
+							System.out.println(Messages.bind(Messages.ApplicationWorkbenchAdvisor_48, StringUtils.join(broken, ", "), errorbackup)); //$NON-NLS-1$
+							for(File corpusDir : broken) {
+								if (corpusDir.exists())
+									corpusDir.renameTo(new File(errorbackup, corpusDir.getName()));
+							}
+						}
+					}
+				}
+
+				Toolbox.workspace.save();
+
+				// init with properties
+				final Properties properties = getProperties();
+				monitor.setTaskName(Messages.ApplicationWorkbenchAdvisor_49);
+
+				// TODO: factorize this code with initializeUI() method
+
+				preloadTxmCommandExtensions();
+				
+				if (Toolbox.initialize(properties)) {
+					System.out.println(Messages.ApplicationWorkbenchAdvisor_ready);
+					
+					// Initializes the SWT Charts Components provider according to the current charts engine and its output format
+					SWTChartsComponentsProvider.createSWTChartsComponentsProviders();
+					SWTChartsComponentsProvider.setCurrrentComponentsProvider(ChartsEngine.getCurrent());
+				} else {
+					System.err.println(Messages.ApplicationWorkbenchAdvisor_init_failed);
+					return false;
+				}
+
+				if (Toolbox.isInitialized()) {
+					callStartScript();
+					Toolbox.workspace.save();
+
+					loadTxmCommandExtensions();
+				} else {
+					return false;
+				}
+			} catch (Exception e) {
+				Log.severe(NLS.bind(Messages.ApplicationWorkbenchAdvisor_52, e.getLocalizedMessage()));
+				System.err.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_52, e.getLocalizedMessage()));
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				return false;
+			}
+		} // end if
+		return true;
+	}
+
+	/**
+	 * Called just after Toolbox is initialized
+	 */
+	private void callStartScript() {
+		File startupScript = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "scripts/user/start.groovy");
+		if (startupScript.exists() && startupScript.canRead()) {
+			try {
+				ExecuteGroovyScript.executeScript(startupScript.getAbsolutePath(), null, null, true);
+			} catch(Exception e) {
+				System.out.println("Fail to execute 'start.groovy' script: "+e);
+				Log.printStackTrace(e);
+			}
+		}
+	}
+
+	/**
+	 * Called just after Toolbox is stop call
+	 */
+	private void callStopScript() {
+		File startupScript = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "scripts/user/stop.groovy");
+		if (startupScript.exists() && startupScript.canRead()) {
+			try {
+				ExecuteGroovyScript.executeScript(startupScript.getAbsolutePath(), null, null, true);
+			} catch(Exception e) {
+				System.out.println("Fail to execute 'stop.groovy' script: "+e);
+				Log.printStackTrace(e);
+			}
+		}
+	}
+
+	/**
+	 * if TT install dir or models dir are not valid show the TT tutorial.
+	 *
+	 * @param job the job
+	 * @return true, if successful
+	 */
+	private boolean checkTreeTagger(JobHandler job) {
+		try {
+			// check TreeTagger installation
+			String ttdir = TxmPreferences
+					.get(TreeTaggerPreferencePage.TREETAGGER_INSTALL_PATH);
+			String ttmodeldir = TxmPreferences
+					.get(TreeTaggerPreferencePage.TREETAGGER_MODELS_PATH);
+			boolean showTTHelp = false;
+			if (ttdir != null || ttmodeldir != null) {
+				if (!(new File(ttdir).exists() && new File(ttmodeldir).exists())) {
+					System.err.println(Messages.ApplicationWorkbenchAdvisor_32);
+					showTTHelp = true;
+				}
+			} else {
+				System.err.println(Messages.ApplicationWorkbenchAdvisor_33);
+				//TxmPreferences.set(TreeTaggerPreferencePage.TREETAGGER_INSTALL_PATH, TxmPreferences.get(AdvancePreferencePage.TXMHOME)+"/treetagger"); //$NON-NLS-1$
+				//TxmPreferences.set(TreeTaggerPreferencePage.TREETAGGER_MODELS_PATH, TxmPreferences.get(AdvancePreferencePage.TXMHOME)+"/treetagger/models"); //$NON-NLS-1$
+				showTTHelp = true;
+			}
+			if (showTTHelp) {
+				job.syncExec(new Runnable() {
+					@Override
+					public void run() {
+						String lang = TxmPreferences.get(LocalePreferencePage.UI_LOCALE);
+						if (lang == null) {
+							lang = Locale.getDefault().getCountry()
+									.toLowerCase();
+							if (lang.equals("fr") || lang.equals("en")) //$NON-NLS-1$ //$NON-NLS-2$
+								TxmPreferences.set(
+										LocalePreferencePage.UI_LOCALE, lang);
+						}
+						if (TxmPreferences.get(LocalePreferencePage.UI_LOCALE) != null
+								&& !TxmPreferences.get(
+										LocalePreferencePage.UI_LOCALE).equals(
+												"")) //$NON-NLS-1$
+							OpenBrowser
+							.openfile("http://txm.sourceforge.net/installtreetagger_" + TxmPreferences.get(LocalePreferencePage.UI_LOCALE) + ".html"); //$NON-NLS-1$ //$NON-NLS-2$
+						else
+							OpenBrowser
+							.openfile("http://txm.sourceforge.net/installtreetagger_en.html"); //$NON-NLS-1$
+					}
+				});
+			}
+		} catch (Exception e) {
+			Log.severe(e.getLocalizedMessage());
+			System.out.println(NLS.bind(Messages.ApplicationWorkbenchAdvisor_19, e));
+			return false;
+		}
+		return true;
+	}
+
+	/**
+	 * after TXMHOME AND INSTALLDIR are ok, we start launch the Toolbox after
+	 * init, we refresh the views (corpora, bases and query).
+	 *
+	 * @param jobHandler the job
+	 * @return true, if successful
+	 * @throws Exception
+	 */
+	private boolean initializeUI(JobHandler jobHandler) throws Exception {
+
+		// Fix the freeze at splash screen on Mac OS X/Cocoa because of a deadlock between AWT/SWT threads (bug #894)
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				try {
+					new ProgressMonitorDialog(Display.getDefault().getActiveShell()).run(true, true, new IRunnableWithProgress() {
+
+						@Override
+						public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
+							monitor.beginTask(Messages.ApplicationWorkbenchAdvisor_PROGRESS_BAR_LOADING_CORPORA, 2);
+
+							if (!Toolbox.isInitialized()) {
+								try {
+									monitor.worked(1);
+
+									preloadTxmCommandExtensions();
+									
+									Toolbox.initialize(getProperties());
+
+									// Initializes the SWT Charts Components provider according to the current charts engine and its output format
+									SWTChartsComponentsProvider.createSWTChartsComponentsProviders();
+									SWTChartsComponentsProvider.setCurrrentComponentsProvider(ChartsEngine.getCurrent());
+									
+									callStartScript();
+									
+									loadTxmCommandExtensions();
+								}
+								catch (Exception e) {
+									// TODO Auto-generated catch block
+									e.printStackTrace();
+								}
+							}
+
+							monitor.done(); 
+						}
+					});
+				}
+				catch(Exception e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		}); 
+
+		// Fix the freeze at splash screen on Mac OS X/Cocoa because of a deadlock between AWT/SWT threads (bug #894)
+		//		Display.getDefault().syncExec(new Runnable() {
+		//				@Override
+		//				public void run() {
+		// TODO Auto-generated method stub
+		//					if (!Toolbox.isInitialized()) {
+		//						try {
+		//							Toolbox.initialize(getProperties());
+		//							// Initializes the charts SWT component provider
+		//							Log.info(Messages.ApplicationWorkbenchAdvisor_87);
+		//							Application.swtComponentProvider = SWTChartsComponentProvider.createChartsSWTComponentProvider(Toolbox.getChartsEngine());
+		//						}
+		//						catch (Exception e) {
+		//							// TODO Auto-generated catch block
+		//							e.printStackTrace();
+		//						}
+		//					}
+		//				}
+		//			});
+
+		// FIXME: old version, may lead to freeze at splash screen on Mac OS X because of a deadlock between AWT/SWT threads
+		//		if (!Toolbox.isInitialized()) {
+		//			Properties properties = getProperties();
+		//			if (Toolbox.initialize(properties)) {
+		//				// Initializes the charts SWT component provider
+		//				Log.info(Messages.ApplicationWorkbenchAdvisor_87);
+		//				Application.swtComponentProvider = SWTChartsComponentProvider.createChartsSWTComponentProvider(Toolbox.getChartsEngine());
+		//			} else {
+		//				return false;
+		//			}
+		//		}
+
+		// reload corpora and bases views
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				Log.warning(Messages.ApplicationWorkbenchAdvisor_88);
+				CorporaView.reload();
+				MacroExplorer.refresh();
+				BasesView.reload();
+				QueriesView.reload();
+				RVariablesView.reload();
+				SummaryView.reload();
+				if (Toolbox.isInitialized()) {
+					initializeMissingPreferences();
+					StatusLine.setMessage(Messages.ApplicationWorkbenchAdvisor_ready);
+				} else {
+					StatusLine.setMessage(Messages.ApplicationWorkbenchAdvisor_init_failed);
+				}
+			}
+		});
+
+		//TxmPreferences.dump();
+		return true;
+	}
+
+	/**
+	 * Initializes the missing RCP preferences from the TBX preferences.
+	 */
+	private void initializeMissingPreferences()	{
+		String key, value;
+		for(int i = 0; i < Toolbox.existingKeys.length; i++) {
+			key = Toolbox.existingKeys[i];
+			value = Toolbox.getParam(key);
+			if(value != null && TxmPreferences.getString(key, null) == null)	{
+				Log.info(Messages.ApplicationWorkbenchAdvisor_89 + key + "=" + value); //$NON-NLS-1$
+				TxmPreferences.set(key, value);
+			}
+		}
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationWorkbenchAdvisor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AbstractSplashHandler2.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AbstractSplashHandler2.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AbstractSplashHandler2.java	(revision 122)
@@ -0,0 +1,59 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.splash.BasicSplashHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * SplashScreen for TXM: not used yet
+ */
+public class AbstractSplashHandler2 extends BasicSplashHandler {
+
+	/**
+	 * Instantiates a new abstract splash handler2.
+	 */
+	public AbstractSplashHandler2() {
+		Composite c = this.getContent();
+//		new Label(c, SWT.BORDER).setText(Messages.AbstractSplashHandler2_0);
+//		IProgressMonitor bundle = this.getBundleProgressMonitor();
+//		// .subTask("HELLLOOOOO");
+//		this.getBundleProgressMonitor().setTaskName(Messages.AbstractSplashHandler2_1);
+//		System.out.println(Messages.AbstractSplashHandler2_2);
+	}
+
+	/**
+	 * Hurler.
+	 *
+	 * @param message the message
+	 */
+	public static void hurler(String message) {
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AbstractSplashHandler2.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Popup - old</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/GraphicalLogger.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/GraphicalLogger.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/GraphicalLogger.java	(revision 122)
@@ -0,0 +1,97 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.log;
+
+import org.txm.utils.logger.LocalizedLogger;
+
+/**
+ * The Class GraphicalLogger.
+ *
+ * @deprecated @ author mdecorde
+ */
+@Deprecated
+public class GraphicalLogger extends LocalizedLogger {
+	/*
+	 * public GraphicalLogger(Class<?> clazz) { super(clazz); }
+	 * 
+	 * private void dialog (String message) {
+	 * MessageDialog.openError(PlatformUI.
+	 * getWorkbench().getDisplay().getActiveShell(), Messages.GraphicalLogger_0,
+	 * message); }
+	 * 
+	 * private void dialog (String message, Throwable t) { if (t instanceof
+	 * CqiClientException){ if (t.getCause() instanceof CqiServerError)
+	 * message+=Messages
+	 * .GraphicalLogger_1+t.getCause().getClass().getSimpleName(
+	 * )+')'+Messages.GraphicalLogger_2+t.getCause().getMessage();
+	 * if (t.getCause() instanceof SocketException)
+	 * message+=Messages.GraphicalLogger_3; } if (t instanceof StatException){
+	 * message+=Messages.GraphicalLogger_4; } if (t instanceof
+	 * GroovyExecutionException){
+	 * message+=Messages.GraphicalLogger_5+t.getCause(); }
+	 * MessageDialog.openError
+	 * (PlatformUI.getWorkbench().getDisplay().getActiveShell(),
+	 * Messages.GraphicalLogger_0, message); }
+	 * 
+	 * @Override public void error(String key, Object arg, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.error(key, arg, t); }
+	 * 
+	 * @Override public void error(String key, Object arg) {
+	 * dialog(super.getLocalizer().message(key)); super.error(key, arg); }
+	 * 
+	 * @Override public void error(String key, Object[] arg, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.error(key, arg, t); }
+	 * 
+	 * @Override public void error(String key, Object[] arg) {
+	 * dialog(super.getLocalizer().message(key)); super.error(key, arg); }
+	 * 
+	 * @Override public void error(String key, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.error(key, t); }
+	 * 
+	 * @Override public void error(String key) {
+	 * dialog(super.getLocalizer().message(key)); super.error(key); }
+	 * 
+	 * @Override public void fatal(String key, Object arg, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.fatal(key, arg, t); }
+	 * 
+	 * @Override public void fatal(String key, Object arg) {
+	 * dialog(super.getLocalizer().message(key)); super.fatal(key, arg); }
+	 * 
+	 * @Override public void fatal(String key, Object[] arg, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.fatal(key, arg, t); }
+	 * 
+	 * @Override public void fatal(String key, Object[] arg) {
+	 * dialog(super.getLocalizer().message(key)); super.fatal(key, arg); }
+	 * 
+	 * @Override public void fatal(String key, Throwable t) {
+	 * dialog(super.getLocalizer().message(key),t); super.fatal(key, t); }
+	 * 
+	 * @Override public void fatal(String key) {
+	 * dialog(super.getLocalizer().message(key)); super.fatal(key); }
+	 */
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/log/GraphicalLogger.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Application.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Application.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Application.java	(revision 122)
@@ -0,0 +1,269 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.logging.Level;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.GnuParser;
+import org.apache.commons.cli.OptionBuilder;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.Parser;
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.net.proxy.IProxyService;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.jface.util.Util;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.ServiceReference;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.rcpapplication.preferences.CQPPreferencePage;
+import org.txm.rcpapplication.preferences.RPreferencePage;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This class controls all aspects of the application's execution.
+ */
+public class Application implements IApplication {
+
+	/** The Constant PLUGIN_ID. */
+	public static final String PLUGIN_ID = "org.txm.rcp"; //$NON-NLS-1$
+
+	/** The Constant FIRST_LAUNCH. */
+	public static final String FIRST_LAUNCH = "first_launch"; //$NON-NLS-1$
+
+	
+	//public static OpenDocumentEventProcessor openDocProcessor = new OpenDocumentEventProcessor();	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
+	 */
+	@Override
+	public Object start(IApplicationContext context) throws Exception {
+		Map args = context.getArguments();
+		
+		List<String> argsList = Arrays.asList((String[])(args.get("application.args")));
+		System.out.println(Messages.Application_0+argsList);
+		if (argsList.contains("-log")) { //$NON-NLS-1$
+			System.out.println(Messages.Application_1);
+			Log.setPrintInConsole(true);
+			Log.setLevel(Level.ALL);
+			Log.severe(Messages.Application_2);
+			TxmPreferences.set(AdvancePreferencePage.ADD_TECH_LOGS, true);
+			TxmPreferences.set(AdvancePreferencePage.LOG_LEVEL, "ALL"); //$NON-NLS-1$
+			TxmPreferences.set(AdvancePreferencePage.LOG_STACKTRACE, true);
+			Toolbox.setParam(AdvancePreferencePage.ADD_TECH_LOGS, true);
+			Toolbox.setParam(AdvancePreferencePage.LOG_LEVEL, "ALL"); //$NON-NLS-1$
+			Toolbox.setParam(AdvancePreferencePage.LOG_STACKTRACE, true);
+		}
+		if (argsList.contains("-run")) { //$NON-NLS-1$
+			//System.out.println("Running TXM");
+		} else {
+			System.out.println("TXM must be launch with the argument '-run' to start."); //$NON-NLS-1$
+			System.out.println(Messages.Application_4);
+
+			javax.swing.JOptionPane.showMessageDialog(null, Messages.Application_4);
+			return IApplication.EXIT_OK;
+		}
+		// test if Java 1.6 is installed
+		String version = System.getProperty("java.version"); //$NON-NLS-1$
+		Log.warning("java.version : " + version); //$NON-NLS-1$
+
+		boolean exit = false;// parseCommandLine();
+		if (exit) {
+			return IApplication.EXIT_OK;
+		}
+
+		Display display = PlatformUI.createDisplay();
+		//display.addListener(SWT.OpenDocument, openDocProcessor);
+		
+		//Lock the RCP workspace, thus there is only one TXM instance running
+		Log.warning(Messages.Application_8);
+		if (!Platform.getInstanceLocation().lock()){
+			//Shell shell = display.getActiveShell();
+			System.out.println("TXM is already running. Exiting...");
+			return IApplication.EXIT_OK;
+		}
+
+		try {
+			Log.warning(Messages.Application_9);
+			activateProxyService();
+		} catch (Exception e) {
+			Log.warning(Messages.Application_10+e);
+		}
+
+		try {
+			// initialization code has been put in ApplicationWorkbenchAdvisor
+			// as it should
+
+			//run the application mainloop
+			int returnCode = PlatformUI.createAndRunWorkbench(display,
+					new ApplicationWorkbenchAdvisor());
+
+			if (returnCode == PlatformUI.RETURN_RESTART) {
+				return IApplication.EXIT_RESTART;
+			}
+
+			return IApplication.EXIT_OK;
+		} finally {
+			// System.out.println(Messages.Application_2);
+			display.dispose();
+		}
+	}
+	
+
+	@Override
+	public void stop() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	/**
+	 * Activates the proxy service and sets the network connection active provider as native.
+	 */
+	private void  activateProxyService() {
+		String sys_proxy_host = System.getProperty("http.proxyHost"); // must be called before IProxyService is used
+		
+		Bundle bundle = Platform.getBundle("org.eclipse.ui.ide"); //$NON-NLS-1$
+		IProxyService  proxyService = null;
+		if (bundle != null) {
+			ServiceReference ref = bundle.getBundleContext().getServiceReference(IProxyService.class.getName());
+			if (ref != null)
+				proxyService = bundle.getBundleContext().getService(ref);
+		}
+		if (proxyService == null) {
+			Log.warning("Proxy service could not be found."); //$NON-NLS-1$
+		} else {
+			//System.out.println("FIRST RUN TEST RESULT: "+ApplicationWorkbenchAdvisor.firstLaunchAfterInstallation());
+			// force active provider as "Manual" on Mac OS X
+            if (Util.isMac() && sys_proxy_host != null && ApplicationWorkbenchAdvisor.firstLaunchAfterInstallation()) { 
+                System.out.println("System proxy detected. Force network provider to manual with proxy_host="+sys_proxy_host);
+                proxyService.setProxiesEnabled(true); 
+            }
+			
+			if (Util.isMac()) { // configure only for Mac OS X
+//				String proxy_conf = "";
+//				ProxyConf conf = new ProxyConf(this);
+//				if (conf.mustSetProxyConfiguration()) { // there is a system proxy configured
+//					System.out.println(Messages.bind(Messages.Application_11, proxy_conf));
+//					proxyService.setProxiesEnabled(true);
+//					//proxyService.setSystemProxiesEnabled(false);
+//					
+//					// prepare a new proxy configuration
+//					boolean requiresAuthentication = conf.proxy_user != null && conf.proxy_user.length() > 0;
+//					IProxyData[] proxies = new IProxyData[1];
+//					proxies[0] = new ProxyData(IProxyData.HTTP_PROXY_TYPE, conf.proxy_host, conf.proxy_port, requiresAuthentication, "");
+//					proxies[0].setPassword(conf.proxy_password);
+//					proxies[0].setUserid(conf.proxy_user);
+//					
+//					try {
+//						proxyService.setProxyData(proxies); // apply the new proxy configuration
+//						System.out.println("TXM proxy configuration set: "+Arrays.toString(proxies));
+//					} catch (Exception e) {
+//						System.out.println("Failed to set TXM proxy configuration: "+Arrays.toString(proxies));
+//						Log.printStackTrace(e);
+//					}
+//				}
+			}
+		}	
+	}
+
+	/**
+	 * Parses the command line.
+	 *
+	 * @return true, if successful
+	 * @deprecated, parse the command line the list optionsForPreferences must
+	 * be edited too add options
+	 */
+	private boolean parseCommandLine() {
+		boolean exit = false;
+		String[] optionsForPreferences = {
+				CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE,
+				CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE,
+//				CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY,
+				RPreferencePage.R_PATH_TO_EXECUTABLE,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferencePage.SCRIPT_CURRENT_DIR,
+				AdvancePreferencePage.INSTALL_DIR };
+		String setPrefAndExit = "setPrefAndExit"; //$NON-NLS-1$
+
+		Options options = new Options();
+		options.addOption(OptionBuilder.create("product")); //option passed here when run as an eclipse application. Recognized to prevent a UnrecognizedOptionException //$NON-NLS-1$
+		options.addOption(OptionBuilder.create(setPrefAndExit));
+		for (String preference : optionsForPreferences)
+			options.addOption(OptionBuilder.withValueSeparator().hasArgs()
+					.create(preference));
+
+		Parser parser = new GnuParser();
+		CommandLine cl;
+		try {
+			cl = parser.parse(options, Platform.getCommandLineArgs());
+		} catch (ParseException e) {
+
+			System.err.println(NLS.bind(Messages.FAILED_TO_PARSE_OPTIONS,
+					StringUtils.join(Platform.getCommandLineArgs(), " "), e)); //$NON-NLS-1$
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			exit = true;
+			return exit;
+		}
+
+		ScopedPreferenceStore preferences = new ScopedPreferenceStore(
+				org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE, Application.PLUGIN_ID);
+		for (String preference : optionsForPreferences)
+			if (cl.hasOption(preference)) {
+				preferences.setValue(preference, cl.getOptionValue(preference));
+			}
+
+		try {
+			preferences.save();
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+			exit = true;
+			return exit;
+		}
+
+		if (cl.hasOption(setPrefAndExit))
+			exit = true;
+		return exit;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Application.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.po
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.po	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.po	(revision 122)
@@ -0,0 +1,4875 @@
+#. extracted from messages.properties
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-09-07 14:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Translate Toolkit 1.5.3\n"
+
+#: About_Menu_Label
+msgid "About TXM..."
+msgstr ""
+
+#: AbstractSplashHandler2_0
+msgid "HELLO"
+msgstr ""
+
+#: AbstractSplashHandler2_1
+msgid "SAY HELLO"
+msgstr ""
+
+#: AbstractSplashHandler2_2
+msgid "HELLO FIN"
+msgstr ""
+
+#: AdapterFactory_0
+msgid "Warning: the corpus "
+msgstr ""
+
+#: AdapterFactory_1
+msgid " is corrupted. Some commands won't work correctly."
+msgstr ""
+
+#: AddBase_0
+msgctxt "AddBase_0"
+msgid "corpora"
+msgstr ""
+
+#: AddBase_1
+msgid "Add a Base:"
+msgstr ""
+
+#: AddBase_10
+msgctxt "AddBase_10"
+msgid "TXM ready."
+msgstr ""
+
+#: AddBase_11
+msgid "Failed to copy the registry file: "
+msgstr ""
+
+#: AddBase_12
+msgid " to: "
+msgstr ""
+
+#: AddBase_16
+msgid "Cannot set the 'LANG' property from the 'txmcorpus' structure: "
+msgstr ""
+
+#: AddBase_17
+msgid "Cannot read the file "
+msgstr ""
+
+#: AddBase_19
+msgctxt "AddBase_19"
+msgid "Warning"
+msgstr ""
+
+#: AddBase_2
+msgid "Failed to load base from directory: "
+msgstr ""
+
+#: AddBase_20
+msgctxt "AddBase_20"
+msgid "The "
+msgstr ""
+
+#: AddBase_21
+msgid " directory already exists. Do you want to replace it ?"
+msgstr ""
+
+#: AddBase_22
+msgctxt "AddBase_22"
+msgid "This file is not a TXM file: "
+msgstr ""
+
+#: AddBase_23
+msgid " has no 'LANG' set in 'txmcorpus'"
+msgstr ""
+
+#: AddBase_24
+msgid "could not load base "
+msgstr ""
+
+#: AddBase_25
+msgctxt "AddBase_25"
+msgid "A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+
+#: AddBase_26
+msgid ""
+"Impossible to load from that directory: \n"
+"we cannot find the necessary components"
+msgstr ""
+
+#: AddBase_27
+msgid "Load binary corpus"
+msgstr ""
+
+#: AddBase_28
+msgid "Unziping binary corpus"
+msgstr ""
+
+#: AddBase_29
+msgid "Unziping "
+msgstr ""
+
+#: AddBase_3
+msgid "Enter the base name"
+msgstr ""
+
+#: AddBase_30
+msgctxt "AddBase_30"
+msgid " in "
+msgstr ""
+
+#: AddBase_31
+msgctxt "AddBase_31"
+msgid "Could not dezip binary corpus: "
+msgstr ""
+
+#: AddBase_32
+msgid "Load the corpus in the toolbox"
+msgstr ""
+
+#: AddBase_33
+msgid "Restarting the toolbox"
+msgstr ""
+
+#: AddBase_34
+msgid "TXM workspace is not initialized, restart TXM."
+msgstr ""
+
+#: AddBase_36
+msgctxt "AddBase_36"
+msgid "registry"
+msgstr ""
+
+#: AddBase_37
+msgid "TXM regsitry directory not set: "
+msgstr ""
+
+#: AddBase_38
+msgid "The copy of the registry file '"
+msgstr ""
+
+#: AddBase_39
+msgid "' failed"
+msgstr ""
+
+#: AddBase_4
+msgctxt "AddBase_4"
+msgid "project: "
+msgstr ""
+
+#: AddBase_5
+msgid "new base: "
+msgstr ""
+
+#: AddBase_6
+msgctxt "AddBase_6"
+msgid "registry"
+msgstr ""
+
+#: AddBase_7
+msgid "Failed to patch registry file: "
+msgstr ""
+
+#: AddBase_8
+msgctxt "AddBase_8"
+msgid "Restarting the TXM platform..."
+msgstr ""
+
+#: AddBase_9
+msgctxt "AddBase_9"
+msgid "TXM ready."
+msgstr ""
+
+#: AddProject_3
+msgid "Enter project name"
+msgstr ""
+
+#: AddProject_4
+msgid "workspace: "
+msgstr ""
+
+#: AddProject_5
+msgid "new project: "
+msgstr ""
+
+#: AddScript_2
+msgctxt "AddScript_2"
+msgid "base: "
+msgstr ""
+
+#: AddScript_3
+msgid "type: "
+msgstr ""
+
+#: AddScript_4
+msgid "new script: "
+msgstr ""
+
+#: AddText_2
+msgctxt "AddText_2"
+msgid "base: "
+msgstr ""
+
+#: AddText_4
+msgid "new text: "
+msgstr ""
+
+#: AdvancePreferencePage_0
+msgid "TXM Advanced settings"
+msgstr ""
+
+#: AdvancePreferencePage_1
+msgid "TXM Install directory"
+msgstr ""
+
+#: AdvancePreferencePage_12
+msgid "Log level"
+msgstr ""
+
+#: AdvancePreferencePage_13
+msgid "Log in the console"
+msgstr ""
+
+#: AdvancePreferencePage_14
+msgid "Log in a file"
+msgstr ""
+
+#: AdvancePreferencePage_2
+msgid "TXM user directory"
+msgstr ""
+
+#: Analysis_property
+msgctxt "Analysis_property"
+msgid "&Property:"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_0
+msgid "Initializing Toolbox..."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_1
+msgid "Initialization of the Toolbox"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_11
+msgid "Load sample corpora"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_12
+msgid "TXMHOME was set but not created: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_13
+msgid "Could not create TXMHOME directory  : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_14
+msgid "Failed to copy TXM files from TXMINSTALL DIR to TXMHOME"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_15
+msgctxt "ApplicationWorkbenchAdvisor_15"
+msgid "corpora"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_16
+msgid "Could not create the 'TXMHOME' directory"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_17
+msgid " has no 'lang' property set"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_19
+msgid "Could not configure TreeTagger parameters"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_2
+msgid "Loading TXM install preferences"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_22
+msgid "The UI locale has been set to "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_23
+msgid ", changes will be applied at next startup"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_24
+msgid "Restart TXM to apply language changes."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_25
+msgid "reading preferences from the install path: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_26
+msgid "../install.prefs"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_3
+msgid "Checking if the workspace directory already exists"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_31
+msgid "Failed to create TXM default.xml workspace"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_32
+msgid "TreeTagger is not installed or paths are incorrect."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_33
+msgid "TreeTagger paths have been set to default values"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_39
+msgid "Missing folder in TXM install dir: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_4
+msgid "Checking TreeTagger installation"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_40
+msgid "Failed to copy TXM files from TXMINSTALL DIR to TXMHOME : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_41
+msgid "Failed to set preferences : "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_45
+msgid "Cannot read file "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_47
+msgctxt "ApplicationWorkbenchAdvisor_47"
+msgid "This file is not a TXM file: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_48
+msgctxt "ApplicationWorkbenchAdvisor_48"
+msgid "A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_49
+msgid "Unzip "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_5
+msgid "System Output"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_50
+msgctxt "ApplicationWorkbenchAdvisor_50"
+msgid " in "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_51
+msgctxt "ApplicationWorkbenchAdvisor_51"
+msgid "Could not dezip binary corpus: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_52
+msgid "Failed to load example corpora: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_6
+msgid "Corpus "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_7
+msgid ""
+"Creating TXM user working directory\n"
+"Loading sample corpora."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_8
+msgid "install path: "
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_9
+msgid "Could not read install preferences file"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_init
+msgid "Starting up..."
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_init_failed
+msgid ""
+"Startup failed, please check TXM preferences (in the 'File>Preferences' "
+"menu) or contact txm-users mailing list (menu: Help>"
+msgstr ""
+
+#: ApplicationWorkbenchAdvisor_ready
+msgid "Ready."
+msgstr ""
+
+#: ApplicationWorkbenchWindowAdvisor_statusready
+msgid "Waking up..."
+msgstr ""
+
+#: ApplicationWorkbenchWindowAdvisor_title
+msgctxt "ApplicationWorkbenchWindowAdvisor_title"
+msgid "TXM"
+msgstr ""
+
+#: Application_1
+msgid "java.version"
+msgstr ""
+
+#: Application_6
+msgid ""
+"You need to install Java version 1.6 at least before launching TXM, current "
+"Java version on this machine is "
+msgstr ""
+
+#: AssistedQueryWidget_0
+msgid "Open the query assistant"
+msgstr ""
+
+#: BackToText_0
+msgid "Display in full text"
+msgstr ""
+
+#: BasesView_1
+msgctxt "BasesView_1"
+"BasesView_1"
+msgid ""
+msgstr ""
+
+#: BasesView_2
+msgctxt "BasesView_2"
+msgid ""
+msgstr ""
+
+#: CAHPreferencePage_0
+msgid "Display graphics in 2D"
+msgstr ""
+
+#: CAHPreferencePage_1
+msgctxt "CAHPreferencePage_1"
+msgid "Classification"
+msgstr ""
+
+#: CAHPreferencePage_2
+msgctxt "CAHPreferencePage_2"
+msgid "Number of cluster"
+msgstr ""
+
+#: CAHPreferencePage_3
+msgctxt "CAHPreferencePage_3"
+msgid "Method"
+msgstr ""
+
+#: CAHPreferencePage_4
+msgctxt "CAHPreferencePage_4"
+msgid "Metric"
+msgstr ""
+
+#: CANT_CREATE_GRAPHIC
+msgid "Cannot create the graphic"
+msgstr ""
+
+#: CAPreferencePage_0
+msgid "Quality column format"
+msgstr ""
+
+#: CAPreferencePage_1
+msgid "Contribution column format"
+msgstr ""
+
+#: CAPreferencePage_2
+msgctxt "CAPreferencePage_2"
+msgid "CA"
+msgstr ""
+
+#: CAPreferencePage_3
+msgid "Show the individuals (columns) in the factorial plane graphic"
+msgstr ""
+
+#: CAPreferencePage_4
+msgid "Show the variables (rows) in the factorial plane graphic"
+msgstr ""
+
+#: CAPreferencePage_5
+msgid "Mass column format"
+msgstr ""
+
+#: CAPreferencePage_6
+msgid "Distance column format"
+msgstr ""
+
+#: CAPreferencePage_7
+msgid "Cos² column format"
+msgstr ""
+
+#: CAPreferencePage_8
+msgid "Coord column format"
+msgstr ""
+
+#: CQPPreferenceInitializer_0
+msgid "localhost"
+msgstr ""
+
+#: CQPPreferenceInitializer_1
+msgid "anonymous"
+msgstr ""
+
+#: CQPPreferenceInitializer_6
+msgid " -b 1000000"
+msgstr ""
+
+#: CQPPreferencePage_0
+msgid "CWB Server Configuration"
+msgstr ""
+
+#: CQPPreferencePage_10
+msgid "&Remote CWB server address:"
+msgstr ""
+
+#: CQPPreferencePage_11
+msgid "CWB server : &host:"
+msgstr ""
+
+#: CQPPreferencePage_12
+msgid "CWB server : &port:"
+msgstr ""
+
+#: CQPPreferencePage_13
+msgid "CWB server : &login:"
+msgstr ""
+
+#: CQPPreferencePage_14
+msgid "CWB server : &password:"
+msgstr ""
+
+#: CQPPreferencePage_15
+msgid "Path to CWB server binary"
+msgstr ""
+
+#: CQPPreferencePage_16
+msgid "Path to CWB server registry"
+msgstr ""
+
+#: CQPPreferencePage_17
+msgid "Path to CWB server initialisation file"
+msgstr ""
+
+#: CQPPreferencePage_18
+msgid "Additionnal &options for the CWB server:"
+msgstr ""
+
+#: Cannot_ask_simple_when_advance
+msgid ""
+"Cannot ask for the simple tab when the user has selected the advanced tab"
+msgstr ""
+
+#: ClassificationPreferencePage_1
+msgctxt "ClassificationPreferencePage_1"
+msgid "Classification"
+msgstr ""
+
+#: ClassificationPreferencePage_2
+msgctxt "ClassificationPreferencePage_2"
+msgid "Number of cluster"
+msgstr ""
+
+#: ClassificationPreferencePage_3
+msgctxt "ClassificationPreferencePage_3"
+msgid "Method"
+msgstr ""
+
+#: ClassificationPreferencePage_4
+msgctxt "ClassificationPreferencePage_4"
+msgid "Metric"
+msgstr ""
+
+#: ColRowInfosLabelProvider_11
+msgctxt "ColRowInfosLabelProvider_11"
+msgid "Dist"
+msgstr ""
+
+#: ColRowInfosLabelProvider_13
+msgctxt "ColRowInfosLabelProvider_13"
+msgid "Cos²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_17
+msgctxt "ColRowInfosLabelProvider_17"
+msgid "Cont"
+msgstr ""
+
+#: ColRowInfosLabelProvider_19
+msgctxt "ColRowInfosLabelProvider_19"
+msgid "Qual"
+msgstr ""
+
+#: ColRowInfosLabelProvider_22
+msgctxt "ColRowInfosLabelProvider_22"
+msgid "Mass"
+msgstr ""
+
+#: ColRowInfosLabelProvider_23
+msgctxt "ColRowInfosLabelProvider_23"
+msgid "Chi²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_24
+msgctxt "ColRowInfosLabelProvider_24"
+msgid "Dist"
+msgstr ""
+
+#: ColRowInfosLabelProvider_25
+msgctxt "ColRowInfosLabelProvider_25"
+msgid "Cos²"
+msgstr ""
+
+#: ColRowInfosLabelProvider_27
+msgctxt "ColRowInfosLabelProvider_27"
+msgid "Cont"
+msgstr ""
+
+#: ColRowInfosLabelProvider_28
+msgctxt "ColRowInfosLabelProvider_28"
+msgid "Qual"
+msgstr ""
+
+#: ColRowInfosLabelProvider_7
+msgctxt "ColRowInfosLabelProvider_7"
+msgid "Mass"
+msgstr ""
+
+#: ColRowInfosLabelProvider_9
+msgctxt "ColRowInfosLabelProvider_9"
+msgid "Chi²"
+msgstr ""
+
+#: ColsRowsInfosEditor_0
+msgid "Wrong input"
+msgstr ""
+
+#: ColsRowsInfosEditor_1
+msgctxt "ColsRowsInfosEditor_1"
+msgid "Sort done."
+msgstr ""
+
+#: ColsRowsInfosEditor_2
+msgid "Infos: "
+msgstr ""
+
+#: ColsRowsInfosEditor_3
+msgctxt "ColsRowsInfosEditor_3"
+msgid "Sorting column"
+msgstr ""
+
+#: ComplexSortSelector_0
+msgid "sort keys: "
+msgstr ""
+
+#: ComplexSortSelector_1
+msgid "Complex sort: "
+msgstr ""
+
+#: ComplexSortSelector_5
+msgid "Error during sort: "
+msgstr ""
+
+#: ComplexSortSelector_6
+msgid "default"
+msgstr ""
+
+#: ComplexSort_0
+msgid "Opening complex sort dialog"
+msgstr ""
+
+#: ComplexSort_1
+msgid "&Multiple Sort"
+msgstr ""
+
+#: ComplexSort_10
+msgctxt "ComplexSort_10"
+msgid "Invalid comparator"
+msgstr ""
+
+#: ComplexSort_11
+msgctxt "ComplexSort_11"
+msgid "you must select at least 2 comparators"
+msgstr ""
+
+#: ComplexSort_12
+msgid "Adding to selection"
+msgstr ""
+
+#: ComplexSort_14
+msgid "Remove from selection"
+msgstr ""
+
+#: ComplexSort_16
+msgid "Moving up the selection"
+msgstr ""
+
+#: ComplexSort_18
+msgid "Moving down the selection"
+msgstr ""
+
+#: ComplexSort_2
+msgid "Define and use a composite sorter"
+msgstr ""
+
+#: ComplexSort_3
+msgid "Select a composite sorter"
+msgstr ""
+
+#: ComplexSort_4
+msgid "&New"
+msgstr ""
+
+#: ComplexSort_5
+msgctxt "ComplexSort_5"
+msgid "Create a new sorter"
+msgstr ""
+
+#: ComplexSort_6
+msgctxt "ComplexSort_6"
+msgid "Name:"
+msgstr ""
+
+#: ComplexSort_8
+msgctxt "ComplexSort_8"
+msgid "Invalid name"
+msgstr ""
+
+#: ComplexSort_9
+msgctxt "ComplexSort_9"
+msgid "Name is mandatory."
+msgstr ""
+
+#: ComplexSubcorpusPanel_0
+msgid "Match"
+msgstr ""
+
+#: ComplexSubcorpusPanel_1
+msgid "All criteria"
+msgstr ""
+
+#: ComplexSubcorpusPanel_15
+msgctxt "ComplexSubcorpusPanel_15"
+msgid "contains"
+msgstr ""
+
+#: ComplexSubcorpusPanel_16
+msgid "does not contain"
+msgstr ""
+
+#: ComplexSubcorpusPanel_19
+msgctxt "ComplexSubcorpusPanel_19"
+msgid ""
+msgstr ""
+
+#: ComplexSubcorpusPanel_2
+msgid "Some criteria"
+msgstr ""
+
+#: ComplexSubcorpusPanel_3
+msgctxt "ComplexSubcorpusPanel_3"
+msgid "Structure"
+msgstr ""
+
+#: ComplexSubcorpusPanel_4
+msgid "Query "
+msgstr ""
+
+#: ComplexSubcorpusPanel_5
+msgctxt "ComplexSubcorpusPanel_5"
+msgid "Refresh"
+msgstr ""
+
+#: CompositeSorterCreationDialog_0
+msgctxt "CompositeSorterCreationDialog_0"
+msgid "Create a new sorter"
+msgstr ""
+
+#: CompositeSorterCreationDialog_1
+msgctxt "CompositeSorterCreationDialog_1"
+msgid "Name:"
+msgstr ""
+
+#: CompositeSorterCreationDialog_3
+msgctxt "CompositeSorterCreationDialog_3"
+msgid "Invalid name"
+msgstr ""
+
+#: CompositeSorterCreationDialog_4
+msgctxt "CompositeSorterCreationDialog_4"
+msgid "Name is mandatory."
+msgstr ""
+
+#: CompositeSorterCreationDialog_5
+msgctxt "CompositeSorterCreationDialog_5"
+msgid "Invalid comparator"
+msgstr ""
+
+#: CompositeSorterCreationDialog_6
+msgctxt "CompositeSorterCreationDialog_6"
+msgid "you must select at least 2 comparators"
+msgstr ""
+
+#: ComputeCAH_0
+msgid "Compute Classification"
+msgstr ""
+
+#: ComputeCAH_1
+msgid "Show graphic"
+msgstr ""
+
+#: ComputeCAH_2
+msgid "Error: temporary file created cannot be written: "
+msgstr ""
+
+#: ComputeCAH_3
+msgctxt "ComputeCAH_3"
+msgid "Classification"
+msgstr ""
+
+#: ComputeCAH_4
+msgctxt "ComputeCAH_4"
+msgid "Number of cluster"
+msgstr ""
+
+#: ComputeCAH_5
+msgctxt "ComputeCAH_5"
+msgid "Cols"
+msgstr ""
+
+#: ComputeCAH_6
+msgctxt "ComputeCAH_6"
+msgid "Rows"
+msgstr ""
+
+#: ComputeClassification_0
+msgid "create Classification"
+msgstr ""
+
+#: ComputeClassification_1
+msgid "draw Classification"
+msgstr ""
+
+#: ComputeClassification_3
+msgid "Classification parameters"
+msgstr ""
+
+#: ComputeClassification_4
+msgid "N cluster"
+msgstr ""
+
+#: ComputeClassification_5
+msgctxt "ComputeClassification_5"
+msgid "Cols"
+msgstr ""
+
+#: ComputeClassification_6
+msgctxt "ComputeClassification_6"
+msgid "Rows"
+msgstr ""
+
+#: ComputeConcordance_0
+msgid "Opening the Concordance result"
+msgstr ""
+
+#: ComputeCoocFromLines_0
+msgid "Computing Cooccurrents"
+msgstr ""
+
+#: ComputeCoocFromLines_1
+msgid "Opening the Cooccurrents table"
+msgstr ""
+
+#: ComputeCooccurrences_0
+msgid "Opening cooccurrents table"
+msgstr ""
+
+#: ComputeCooccurrences_1
+msgid "cannot compute cooccurrences with the selection "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_0
+msgid "Correspondance analysis"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_1
+msgid "Property:"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_2
+msgid "Max lines N: "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysisDialog_3
+msgctxt "ComputeCorrespondanceAnalysisDialog_3"
+msgid "Fmin: "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_0
+msgid "Computing Correspondance analysis"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_1
+msgctxt "ComputeCorrespondanceAnalysis_1"
+msgid "Done: "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_10
+msgctxt "ComputeCorrespondanceAnalysis_10"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_11
+msgid " singular values"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_12
+msgctxt "ComputeCorrespondanceAnalysis_12"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_13
+msgid "Can't compute CA on lexical table with less than 4 columns"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_14
+msgid "Opening the Correspondance Analysis results"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_15
+msgid "create CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_16
+msgid "get LexicalTable CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_17
+msgid "compute CA"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_2
+msgctxt "ComputeCorrespondanceAnalysis_2"
+msgid " with "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_3
+msgctxt "ComputeCorrespondanceAnalysis_3"
+msgid "Error"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_4
+msgid "Cannot compute factorial analysis with only "
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_5
+msgid " parts (the minimum is 4 parts)."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_6
+msgid "OK"
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_7
+msgctxt "ComputeCorrespondanceAnalysis_7"
+msgid "Loading correspondances analysis results..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_8
+msgctxt "ComputeCorrespondanceAnalysis_8"
+msgid "Loading correspondances analysis results..."
+msgstr ""
+
+#: ComputeCorrespondanceAnalysis_9
+msgid "Error while computing correspondance analysis"
+msgstr ""
+
+#: ComputeFrequencyList_0
+msgid "Computing frequencies..."
+msgstr ""
+
+#: ComputeFrequencyList_1
+msgctxt "ComputeFrequencyList_1"
+msgid "Loading frequencies results..."
+msgstr ""
+
+#: ComputeFrequencyList_2
+msgid "> in the corpus  "
+msgstr ""
+
+#: ComputeFrequencyList_3
+msgctxt "ComputeFrequencyList_3"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: ComputeFrequencyList_4
+msgid " for "
+msgstr ""
+
+#: ComputeFrequencyList_5
+msgid " tokens (T)"
+msgstr ""
+
+#: ComputeFrequencyList_6
+msgid "Lexicon: "
+msgstr ""
+
+#: ComputeFrequencyList_7
+msgctxt "ComputeFrequencyList_7"
+msgid "Done: "
+msgstr ""
+
+#: ComputeFrequencyList_8
+msgctxt "ComputeFrequencyList_8"
+msgid " results"
+msgstr ""
+
+#: ComputeIndexFromLines_0
+msgid "Send selection to Index"
+msgstr ""
+
+#: ComputeLexicalTable_0
+msgctxt "ComputeLexicalTable_0"
+msgid "Computing the Lexical Table"
+msgstr ""
+
+#: ComputeLexicalTable_1
+msgid " with the property: "
+msgstr ""
+
+#: ComputeLexicalTable_10
+msgctxt "ComputeLexicalTable_10"
+msgid "Opening the lexical table"
+msgstr ""
+
+#: ComputeLexicalTable_11
+msgctxt "ComputeLexicalTable_11"
+msgid "Use all occurrences"
+msgstr ""
+
+#: ComputeLexicalTable_12
+msgctxt "ComputeLexicalTable_12"
+msgid "User index occrrences"
+msgstr ""
+
+#: ComputeLexicalTable_13
+msgctxt "ComputeLexicalTable_13"
+msgid "Select which margins you want to use"
+msgstr ""
+
+#: ComputeLexicalTable_16
+msgctxt "ComputeLexicalTable_16"
+msgid "Use all occurrences"
+msgstr ""
+
+#: ComputeLexicalTable_2
+msgctxt "ComputeLexicalTable_2"
+msgid "Computing the Lexical Table"
+msgstr ""
+
+#: ComputeLexicalTable_3
+msgctxt "ComputeLexicalTable_3"
+msgid "Opening marge configuration dialog"
+msgstr ""
+
+#: ComputeLexicalTable_4
+msgctxt "ComputeLexicalTable_4"
+msgid "Opening the lexical table"
+msgstr ""
+
+#: ComputeLexicalTable_5
+msgid "Can not create a lexical table with an Index created on a Corpus"
+msgstr ""
+
+#: ComputeLexicalTable_6
+msgid "Vocabularies must share the same properties: "
+msgstr ""
+
+#: ComputeLexicalTable_7
+msgid "Vocabularies must share the same partition: "
+msgstr ""
+
+#: ComputeLexicalTable_8
+msgid "Computing the TableLexical of vocabularies"
+msgstr ""
+
+#: ComputeLexicalTable_9
+msgid "LexicalTable dialog, failed to get corpus size : "
+msgstr ""
+
+#: ComputeReferencer_0
+msgid "Open references editor"
+msgstr ""
+
+#: ComputeReferencer_1
+msgctxt "ComputeReferencer_1"
+msgid "Failed to open referencer editor : "
+msgstr ""
+
+#: ComputeProgression_0
+msgid "Rep: "
+msgstr ""
+
+#: ComputeProgression_1
+msgid "progression.svg"
+msgstr ""
+
+#: ComputeProgression_10
+msgid "Opening progression graphic"
+msgstr ""
+
+#: ComputeProgression_11
+msgid "rep: "
+msgstr ""
+
+#: ComputeProgression_12
+msgid "Done: Number of positions  "
+msgstr ""
+
+#: ComputeProgression_13
+msgid "Progression failed: "
+msgstr ""
+
+#: ComputeProgression_14
+msgid "Error: the temporary file "
+msgstr ""
+
+#: ComputeProgression_2
+msgid "Computing progression of "
+msgstr ""
+
+#: ComputeProgression_3
+msgid " in corpus "
+msgstr ""
+
+#: ComputeProgression_4
+msgid "Computing progression on "
+msgstr ""
+
+#: ComputeProgression_5
+msgid " with queries: "
+msgstr ""
+
+#: ComputeProgression_6
+msgid ", structural unit: "
+msgstr ""
+
+#: ComputeProgression_7
+msgid ", property: "
+msgstr ""
+
+#: ComputeProgression_8
+msgid ", cumulative: "
+msgstr ""
+
+#: ComputeProgression_9
+msgid " cannot be written !"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_0
+msgid "ERROR_ComputeSpecificitiesDialog"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_1
+msgid "Regex syntax error: "
+msgstr ""
+
+#: ComputeSpecificitiesDialog_3
+msgid "Focus:"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_4
+msgid "Part focus:"
+msgstr ""
+
+#: ComputeSpecificitiesDialog_9
+msgid "No filtering of part available"
+msgstr ""
+
+#: ComputeSpecificities_0
+msgid "Computing Specificites on "
+msgstr ""
+
+#: ComputeSpecificities_1
+msgid "&Specificities"
+msgstr ""
+
+#: ComputeSpecificities_10
+msgid "Computing Specificities on subcorpus  "
+msgstr ""
+
+#: ComputeSpecificities_11
+msgctxt "ComputeSpecificities_11"
+msgid " with corpus "
+msgstr ""
+
+#: ComputeSpecificities_12
+msgid ". Properties:"
+msgstr ""
+
+#: ComputeSpecificities_13
+msgctxt "ComputeSpecificities_13"
+msgid "Done: "
+msgstr ""
+
+#: ComputeSpecificities_2
+msgctxt "ComputeSpecificities_2"
+msgid " ("
+msgstr ""
+
+#: ComputeSpecificities_3
+msgid ") with word focus: "
+msgstr ""
+
+#: ComputeSpecificities_4
+msgid " and part focus: "
+msgstr ""
+
+#: ComputeSpecificities_5
+msgctxt "ComputeSpecificities_5"
+msgid "Done: found "
+msgstr ""
+
+#: ComputeSpecificities_6
+msgctxt "ComputeSpecificities_6"
+msgid " results"
+msgstr ""
+
+#: ComputeSpecificities_7
+msgid "Loading specificities results..."
+msgstr ""
+
+#: ComputeSpecificities_9
+msgctxt "ComputeSpecificities_9"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: ComputeSpecifities_0
+msgctxt "ComputeSpecifities_0"
+msgid "Opening specificities results table"
+msgstr ""
+
+#: ComputeSpecifities_10
+msgctxt "ComputeSpecifities_10"
+msgid "Opening specificities results table"
+msgstr ""
+
+#: ComputeSpecifities_11
+msgid " a lexical table"
+msgstr ""
+
+#: ComputeSpecifities_2
+msgid "Refreshing corpora view..."
+msgstr ""
+
+#: ComputeSpecifities_3
+msgid "Computing Specificities on sub-corpus  "
+msgstr ""
+
+#: ComputeSpecifities_4
+msgctxt "ComputeSpecifities_4"
+msgid " with corpus "
+msgstr ""
+
+#: ComputeSpecifities_5
+msgid ". Properties: "
+msgstr ""
+
+#: ComputeSpecifities_6
+msgctxt "ComputeSpecifities_6"
+msgid "Done: "
+msgstr ""
+
+#: ComputeVocabulary_0
+msgid "Opening Index results"
+msgstr ""
+
+#: Compute_Specificities
+msgid "Computing specificities."
+msgstr ""
+
+#: ConcordancerPreferencePage_3
+msgid "Concordance Parameters"
+msgstr ""
+
+#: ConcordancerPreferencePage_4
+msgid "Number of lines per &Page:"
+msgstr ""
+
+#: ConcordancerPreferencePage_5
+msgid "&Left context length in words"
+msgstr ""
+
+#: ConcordancerPreferencePage_6
+msgid "&Right context length in words"
+msgstr ""
+
+#: ConcordancesEditorContributor_0
+msgid "Concordance"
+msgstr ""
+
+#: ConcordancesEditor_0
+msgctxt "ConcordancesEditor_0"
+msgid "Error while computing the concordance"
+msgstr ""
+
+#: ConcordancesEditor_1
+msgid "Reference"
+msgstr ""
+
+#: ConcordancesEditor_10
+msgid " out of "
+msgstr ""
+
+#: ConcordancesEditor_11
+msgid "|<"
+msgstr ""
+
+#: ConcordancesEditor_12
+msgid "<"
+msgstr ""
+
+#: ConcordancesEditor_13
+msgid ">"
+msgstr ""
+
+#: ConcordancesEditor_14
+msgid ">|"
+msgstr ""
+
+#: ConcordancesEditor_15
+msgctxt "ConcordancesEditor_15"
+msgid "&Query:"
+msgstr ""
+
+#: ConcordancesEditor_16
+msgid "&Keyword:"
+msgstr ""
+
+#: ConcordancesEditor_17
+msgctxt "ConcordancesEditor_17"
+msgid "Done: "
+msgstr ""
+
+#: ConcordancesEditor_18
+msgid "&Edit"
+msgstr ""
+
+#: ConcordancesEditor_19
+msgid " occurrences"
+msgstr ""
+
+#: ConcordancesEditor_2
+msgid "Left context"
+msgstr ""
+
+#: ConcordancesEditor_20
+msgid "Loading line informations..."
+msgstr ""
+
+#: ConcordancesEditor_21
+msgctxt "ConcordancesEditor_21"
+msgid "&Search"
+msgstr ""
+
+#: ConcordancesEditor_22
+msgctxt "ConcordancesEditor_22"
+msgid "Error while computing the concordance"
+msgstr ""
+
+#: ConcordancesEditor_23
+msgid "BackToText: Project "
+msgstr ""
+
+#: ConcordancesEditor_24
+msgid " is missing"
+msgstr ""
+
+#: ConcordancesEditor_25
+msgid "BackToText: Base "
+msgstr ""
+
+#: ConcordancesEditor_26
+msgid "Project id "
+msgstr ""
+
+#: ConcordancesEditor_27
+msgid "BackToText: Text "
+msgstr ""
+
+#: ConcordancesEditor_28
+msgid " Base id "
+msgstr ""
+
+#: ConcordancesEditor_29
+msgid "No page found... for "
+msgstr ""
+
+#: ConcordancesEditor_3
+msgid "Keyword"
+msgstr ""
+
+#: ConcordancesEditor_30
+msgid "BackToText: default edition is missing"
+msgstr ""
+
+#: ConcordancesEditor_31
+msgid " Text id "
+msgstr ""
+
+#: ConcordancesEditor_32
+msgid "Objects retrieved"
+msgstr ""
+
+#: ConcordancesEditor_33
+msgctxt "ConcordancesEditor_33"
+msgid "sort by: "
+msgstr ""
+
+#: ConcordancesEditor_34
+msgid "Opening the Concordance"
+msgstr ""
+
+#: ConcordancesEditor_37
+msgid "Sorting reference column"
+msgstr ""
+
+#: ConcordancesEditor_38
+msgid "Hide settings"
+msgstr ""
+
+#: ConcordancesEditor_39
+msgid "Show settings"
+msgstr ""
+
+#: ConcordancesEditor_4
+msgid "Right context"
+msgstr ""
+
+#: ConcordancesEditor_41
+msgid "Sorting left context olumn"
+msgstr ""
+
+#: ConcordancesEditor_42
+msgctxt "ConcordancesEditor_42"
+msgid "The "
+msgstr ""
+
+#: ConcordancesEditor_43
+msgid " corpus has no default references: "
+msgstr ""
+
+#: ConcordancesEditor_45
+msgid "Sorting keyword column"
+msgstr ""
+
+#: ConcordancesEditor_46
+msgid "Full text display failed: "
+msgstr ""
+
+#: ConcordancesEditor_48
+msgid "Sorting right context column"
+msgstr ""
+
+#: ConcordancesEditor_5
+msgid "Concordance of <"
+msgstr ""
+
+#: ConcordancesEditor_50
+msgid "Opening corpus edition"
+msgstr ""
+
+#: ConcordancesEditor_51
+msgctxt "ConcordancesEditor_51"
+msgid "Sort done."
+msgstr ""
+
+#: ConcordancesEditor_52
+msgctxt "ConcordancesEditor_52"
+msgid "one result"
+msgstr ""
+
+#: ConcordancesEditor_53
+msgctxt "ConcordancesEditor_53"
+msgid "no result"
+msgstr ""
+
+#: ConcordancesEditor_55
+msgid "Opening view property dialog"
+msgstr ""
+
+#: ConcordancesEditor_56
+msgid "Start computing concordance"
+msgstr ""
+
+#: ConcordancesEditor_6
+msgctxt "ConcordancesEditor_6"
+msgid " ("
+msgstr ""
+
+#: ConcordancesEditor_7
+msgid "> in corpus "
+msgstr ""
+
+#: ConcordancesEditor_8
+msgid "Displaying occurrences "
+msgstr ""
+
+#: ConcordancesEditor_9
+msgctxt "ConcordancesEditor_9"
+msgid " to "
+msgstr ""
+
+#: CoocPreferencePage_0
+msgid "Score format (default 0.0000E00)"
+msgstr ""
+
+#: CoocPreferencePage_1
+msgid "Minimum frequency threshold of the cooccurent"
+msgstr ""
+
+#: CoocPreferencePage_2
+msgid "Minimum cooccurency count threshold"
+msgstr ""
+
+#: CoocPreferencePage_3
+msgid "Minimum cooccurency score threshold"
+msgstr ""
+
+#: CoocPreferencePage_5
+msgctxt "CoocPreferencePage_5"
+msgid "Cooccurrences"
+msgstr ""
+
+#: CooccurrenceEditorInput_0
+msgctxt "CooccurrenceEditorInput_0"
+msgid "Cooccurrences"
+msgstr ""
+
+#: CooccurrencesEditor_0
+msgctxt "CooccurrencesEditor_0"
+msgid "sort by: "
+msgstr ""
+
+#: CooccurrencesEditor_1
+msgctxt "CooccurrencesEditor_1"
+msgid "Query: "
+msgstr ""
+
+#: CooccurrencesEditor_10
+msgid "Cofrequency"
+msgstr ""
+
+#: CooccurrencesEditor_11
+msgid "Score value is not a double float"
+msgstr ""
+
+#: CooccurrencesEditor_12
+msgid "Computing the cooccurrents of "
+msgstr ""
+
+#: CooccurrencesEditor_13
+msgid "Setting up cooccurrences process"
+msgstr ""
+
+#: CooccurrencesEditor_14
+msgid "Computing cooccurrents"
+msgstr ""
+
+#: CooccurrencesEditor_15
+msgid "Displaying results"
+msgstr ""
+
+#: CooccurrencesEditor_16
+msgid "Can't compute cooccurrences with no context"
+msgstr ""
+
+#: CooccurrencesEditor_17
+msgid "Score"
+msgstr ""
+
+#: CooccurrencesEditor_18
+msgid "The score threshold must be a real number"
+msgstr ""
+
+#: CooccurrencesEditor_2
+msgid "Search"
+msgstr ""
+
+#: CooccurrencesEditor_20
+msgid "Computing the cooccurrents of <"
+msgstr ""
+
+#: CooccurrencesEditor_21
+msgid "> in the "
+msgstr ""
+
+#: CooccurrencesEditor_22
+msgid " corpus"
+msgstr ""
+
+#: CooccurrencesEditor_23
+msgid "Done: no result."
+msgstr ""
+
+#: CooccurrencesEditor_24
+msgid "Done: one result."
+msgstr ""
+
+#: CooccurrencesEditor_25
+msgctxt "CooccurrencesEditor_25"
+msgid "Done: "
+msgstr ""
+
+#: CooccurrencesEditor_26
+msgid " results."
+msgstr ""
+
+#: CooccurrencesEditor_27
+msgid "build queries"
+msgstr ""
+
+#: CooccurrencesEditor_28
+msgid "get matches"
+msgstr ""
+
+#: CooccurrencesEditor_29
+msgid "build line signatures"
+msgstr ""
+
+#: CooccurrencesEditor_3
+msgid "Cooccurrents properties: "
+msgstr ""
+
+#: CooccurrencesEditor_30
+msgid "counting"
+msgstr ""
+
+#: CooccurrencesEditor_31
+msgid "build lexical table"
+msgstr ""
+
+#: CooccurrencesEditor_32
+msgid "get specif scores"
+msgstr ""
+
+#: CooccurrencesEditor_33
+msgid "Start computing cooccurrences"
+msgstr ""
+
+#: CooccurrencesEditor_34
+msgid " cooccurrents for "
+msgstr ""
+
+#: CooccurrencesEditor_35
+msgid " keywords"
+msgstr ""
+
+#: CooccurrencesEditor_4
+msgid "Thresholds: Freq ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_5
+msgid " Co-freq ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_6
+msgid " Score ≥ "
+msgstr ""
+
+#: CooccurrencesEditor_7
+msgctxt "CooccurrencesEditor_7"
+msgid "Frequency"
+msgstr ""
+
+#: CooccurrencesEditor_8
+msgid "Cooccurrent"
+msgstr ""
+
+#: CooccurrencesEditor_9
+msgid "Mean distance"
+msgstr ""
+
+#: CooccurrencesToConcordances_0
+msgid "Forged query "
+msgstr ""
+
+#: CorporaView_0
+msgid "Corpus"
+msgstr ""
+
+#: CorporaView_1
+msgctxt "CorporaView_1"
+msgid "Error: "
+msgstr ""
+
+#: CorporaView_10
+msgid "&Refresh"
+msgstr ""
+
+#: CorporaView_11
+msgid "Refresh the view"
+msgstr ""
+
+#: CorporaView_2
+msgid "Can't retrieve "
+msgstr ""
+
+#: CorporaView_3
+msgctxt "CorporaView_3"
+msgid "Error while computing the concordance"
+msgstr ""
+
+#: CorporaView_4
+msgid " corpus size"
+msgstr ""
+
+#: CorporaView_5
+msgid "Error while computing specificities"
+msgstr ""
+
+#: CorporaView_6
+msgctxt "CorporaView_6"
+msgid "Failed to open referencer editor : "
+msgstr ""
+
+#: CorporaView_7
+msgctxt "CorporaView_7"
+msgid "Error while computing the lexical table"
+msgstr ""
+
+#: CorporaView_8
+msgid "#PopupMenu"
+msgstr ""
+
+#: CorporaView_9
+msgctxt "CorporaView_9"
+msgid " cannot be written"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_0
+msgctxt "CorrespondanceAnalysisEditorInput_0"
+msgid "Singular values"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_1
+msgid "Fact. plan"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_10
+msgctxt "CorrespondanceAnalysisEditorInput_10"
+msgid "CA"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_11
+msgctxt "CorrespondanceAnalysisEditorInput_11"
+msgid "Type"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_12
+msgctxt "CorrespondanceAnalysisEditorInput_12"
+msgid "Frequency"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_2
+msgid "Singular values histogram"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_21
+msgctxt "CorrespondanceAnalysisEditorInput_21"
+msgid "Rows"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_23
+msgctxt "CorrespondanceAnalysisEditorInput_23"
+msgid "Q12"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_24
+msgctxt "CorrespondanceAnalysisEditorInput_24"
+msgid "Q13"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_25
+msgctxt "CorrespondanceAnalysisEditorInput_25"
+msgid "Q23"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_26
+msgctxt "CorrespondanceAnalysisEditorInput_26"
+msgid "Mass"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_27
+msgctxt "CorrespondanceAnalysisEditorInput_27"
+msgid "Dist"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_29
+msgctxt "CorrespondanceAnalysisEditorInput_29"
+msgid "Cont"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_3
+msgid "Correspondance analysis result cannot be null"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_30
+msgctxt "CorrespondanceAnalysisEditorInput_30"
+msgid "Cos²"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_32
+msgctxt "CorrespondanceAnalysisEditorInput_32"
+msgid "c1"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_33
+msgctxt "CorrespondanceAnalysisEditorInput_33"
+msgid "c2"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_34
+msgctxt "CorrespondanceAnalysisEditorInput_34"
+msgid "c3"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_4
+msgid "Factor"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_44
+msgctxt "CorrespondanceAnalysisEditorInput_44"
+msgid "Cols"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_46
+msgctxt "CorrespondanceAnalysisEditorInput_46"
+msgid "Q12"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_47
+msgctxt "CorrespondanceAnalysisEditorInput_47"
+msgid "Q13"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_48
+msgctxt "CorrespondanceAnalysisEditorInput_48"
+msgid "Q23"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_49
+msgctxt "CorrespondanceAnalysisEditorInput_49"
+msgid "Mass"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_5
+msgctxt "CorrespondanceAnalysisEditorInput_5"
+msgid "Singular values"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_50
+msgctxt "CorrespondanceAnalysisEditorInput_50"
+msgid "Dist"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_52
+msgctxt "CorrespondanceAnalysisEditorInput_52"
+msgid "Cont"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_53
+msgctxt "CorrespondanceAnalysisEditorInput_53"
+msgid "Cos²"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_55
+msgctxt "CorrespondanceAnalysisEditorInput_55"
+msgid "c1"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_56
+msgctxt "CorrespondanceAnalysisEditorInput_56"
+msgid "c2"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_57
+msgctxt "CorrespondanceAnalysisEditorInput_57"
+msgid "c3"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_6
+msgctxt "CorrespondanceAnalysisEditorInput_6"
+msgid "Integer"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_7
+msgctxt "CorrespondanceAnalysisEditorInput_7"
+msgid "Double"
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_8
+msgid "Rows infos "
+msgstr ""
+
+#: CorrespondanceAnalysisEditorInput_9
+msgid "Cols infos"
+msgstr ""
+
+#: Correspondance_Analysis
+msgid "Compute Correspondance Analysis"
+msgstr ""
+
+#: CreateFile_1
+msgid "New file "
+msgstr ""
+
+#: CreateFolder_1
+msgid "New folder "
+msgstr ""
+
+#: CreateFrequencyListDialog_0
+msgctxt "CreateFrequencyListDialog_0"
+msgid "Lexicon"
+msgstr ""
+
+#: CreateFrequencyList_0
+msgid "Processing word lexicon of corpus "
+msgstr ""
+
+#: CreateFrequencyList_1
+msgid "&Dictionary"
+msgstr ""
+
+#: CreateFrequencyList_10
+msgctxt "CreateFrequencyList_10"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: CreateFrequencyList_2
+msgid "Creating a lexicon."
+msgstr ""
+
+#: CreateFrequencyList_3
+msgctxt "CreateFrequencyList_3"
+msgid "Done: found "
+msgstr ""
+
+#: CreateFrequencyList_4
+msgctxt "CreateFrequencyList_4"
+msgid "Error while computing lexicon"
+msgstr ""
+
+#: CreateFrequencyList_5
+msgid " elements"
+msgstr ""
+
+#: CreateFrequencyList_6
+msgctxt "CreateFrequencyList_6"
+msgid "Error while computing lexicon"
+msgstr ""
+
+#: CreateFrequencyList_7
+msgid "Computing frequencies"
+msgstr ""
+
+#: CreateFrequencyList_8
+msgctxt "CreateFrequencyList_8"
+msgid "Loading frequencies results..."
+msgstr ""
+
+#: CreatePartitionDialog_0
+msgid "Create Partition"
+msgstr ""
+
+#: CreatePartitionDialog_1
+msgctxt "CreatePartitionDialog_1"
+msgid "Simple"
+msgstr ""
+
+#: CreatePartitionDialog_10
+msgctxt "CreatePartitionDialog_10"
+msgid "&Part "
+msgstr ""
+
+#: CreatePartitionDialog_11
+msgid "All property values must be assigned to a part"
+msgstr ""
+
+#: CreatePartitionDialog_13
+msgctxt "CreatePartitionDialog_13"
+msgid "Invalid name"
+msgstr ""
+
+#: CreatePartitionDialog_14
+msgctxt "CreatePartitionDialog_14"
+msgid "Name cannot be left empty."
+msgstr ""
+
+#: CreatePartitionDialog_15
+msgctxt "CreatePartitionDialog_15"
+msgid "Invalid query"
+msgstr ""
+
+#: CreatePartitionDialog_16
+msgid "Queries cannot be left empty."
+msgstr ""
+
+#: CreatePartitionDialog_2
+msgctxt "CreatePartitionDialog_2"
+msgid "&Structure:"
+msgstr ""
+
+#: CreatePartitionDialog_20
+msgid ""
+"Cannot ask for the advanced tab when the user has selected the simple tab"
+msgstr ""
+
+#: CreatePartitionDialog_3
+msgctxt "CreatePartitionDialog_3"
+msgid "Assisted"
+msgstr ""
+
+#: CreatePartitionDialog_4
+msgctxt "CreatePartitionDialog_4"
+msgid "&Property:"
+msgstr ""
+
+#: CreatePartitionDialog_5
+msgctxt "CreatePartitionDialog_5"
+msgid "Advanced"
+msgstr ""
+
+#: CreatePartitionDialog_6
+msgctxt "CreatePartitionDialog_6"
+msgid "&Name:"
+msgstr ""
+
+#: CreatePartitionDialog_7
+msgctxt "CreatePartitionDialog_7"
+msgid "&Part "
+msgstr ""
+
+#: CreatePartitionDialog_9
+msgid "No partition name was specified. We've generated one."
+msgstr ""
+
+#: CreatePartition_0
+msgid "Creating a new partition on "
+msgstr ""
+
+#: CreatePartition_1
+msgid "New &Partition"
+msgstr ""
+
+#: CreatePartition_2
+msgid "Create a new partition on a corpus."
+msgstr ""
+
+#: CreatePartition_3
+msgid " structural unit: "
+msgstr ""
+
+#: CreatePartition_4
+msgid ", structure properties :"
+msgstr ""
+
+#: CreatePartition_5
+msgctxt "CreatePartition_5"
+msgid "Done: "
+msgstr ""
+
+#: CreatePartition_6
+msgid " part(s)"
+msgstr ""
+
+#: CreatePartition_7
+msgid "Error while computing the partition"
+msgstr ""
+
+#: CreatePartition_8
+msgctxt "CreatePartition_8"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: CreatePartition_9
+msgctxt "CreatePartition_9"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: CreateSubCorpus_1
+msgctxt "CreateSubCorpus_1"
+msgid " with "
+msgstr ""
+
+#: CreateSubCorpus_2
+msgid " struct: "
+msgstr ""
+
+#: CreateSubCorpus_begin
+msgid "Creating a sub-corpus in the Search Engine"
+msgstr ""
+
+#: CreateSubCorpus_create
+msgid "Creating a sub-corpus on "
+msgstr ""
+
+#: CreateSubCorpus_refresh
+msgctxt "CreateSubCorpus_refresh"
+msgid "Refreshing corpora..."
+msgstr ""
+
+#: CreateSubcorpusDialog_0
+msgid "Create subcorpus"
+msgstr ""
+
+#: CreateSubcorpusDialog_1
+msgctxt "CreateSubcorpusDialog_1"
+msgid "&Name:"
+msgstr ""
+
+#: CreateSubcorpusDialog_10
+msgctxt "CreateSubcorpusDialog_10"
+msgid "&Query:"
+msgstr ""
+
+#: CreateSubcorpusDialog_11
+msgctxt "CreateSubcorpusDialog_11"
+msgid "Invalid name"
+msgstr ""
+
+#: CreateSubcorpusDialog_12
+msgctxt "CreateSubcorpusDialog_12"
+msgid "Name cannot be left empty."
+msgstr ""
+
+#: CreateSubcorpusDialog_13
+msgctxt "CreateSubcorpusDialog_13"
+msgid "Invalid query"
+msgstr ""
+
+#: CreateSubcorpusDialog_14
+msgctxt "CreateSubcorpusDialog_14"
+msgid "Query cannot be left empty."
+msgstr ""
+
+#: CreateSubcorpusDialog_2
+msgctxt "CreateSubcorpusDialog_2"
+msgid "Simple"
+msgstr ""
+
+#: CreateSubcorpusDialog_3
+msgctxt "CreateSubcorpusDialog_3"
+msgid "&Structure:"
+msgstr ""
+
+#: CreateSubcorpusDialog_5
+msgctxt "CreateSubcorpusDialog_5"
+msgid "&Property:"
+msgstr ""
+
+#: CreateSubcorpusDialog_6
+msgid "&Value:"
+msgstr ""
+
+#: CreateSubcorpusDialog_7
+msgctxt "CreateSubcorpusDialog_7"
+msgid "Assisted"
+msgstr ""
+
+#: CreateSubcorpusDialog_8
+msgid "No subcorpus name was specified. We've generated one."
+msgstr ""
+
+#: CreateSubcorpusDialog_9
+msgctxt "CreateSubcorpusDialog_9"
+msgid "Advanced"
+msgstr ""
+
+#: CreateSubcorpus_0
+msgid "Create SubCorpus on "
+msgstr ""
+
+#: CreateSubcorpus_1
+msgid "New &Subcorpus"
+msgstr ""
+
+#: CreateSubcorpus_10
+msgid "Refresh corpora..."
+msgstr ""
+
+#: CreateSubcorpus_2
+msgid "Create a new sobcorpus."
+msgstr ""
+
+#: CreateSubcorpus_3
+msgid ", query : "
+msgstr ""
+
+#: CreateSubcorpus_4
+msgid ", name :"
+msgstr ""
+
+#: CreateSubcorpus_5
+msgid "Error while creating subcorpus"
+msgstr ""
+
+#: CreateSubcorpus_6
+msgctxt "CreateSubcorpus_6"
+msgid "Done: "
+msgstr ""
+
+#: CreateSubcorpus_7
+msgid "Compute SubCorpus on "
+msgstr ""
+
+#: CreateSubcorpus_8
+msgid "Done: created  "
+msgstr ""
+
+#: CreateSubcorpus_9
+msgid "Create subcorpus in searchengine"
+msgstr ""
+
+#: DefineReferencePattern_0
+msgid "References pattern definition"
+msgstr ""
+
+#: DefineReferencePattern_1
+msgid "Define &references' pattern"
+msgstr ""
+
+#: DefineReferencePattern_2
+msgid "Define the references' pattern"
+msgstr ""
+
+#: DeleteInCorporaView_1
+msgid "Error while deleting subcorpus"
+msgstr ""
+
+#: DeleteInCorporaView_2
+msgid "Error while deleting partition"
+msgstr ""
+
+#: DeleteLines_0
+msgid "The table must contain at least one line"
+msgstr ""
+
+#: DeleteLines_1
+msgctxt "DeleteLines_1"
+msgid "Are you sure ?"
+msgstr ""
+
+#: DeleteObject_0
+msgid "Do you really want to delete "
+msgstr ""
+
+#: DeleteObject_1
+msgid " ?"
+msgstr ""
+
+#: DeleteObject_10
+msgid "deleted object: "
+msgstr ""
+
+#: DeleteObject_11
+msgid "deleted index: "
+msgstr ""
+
+#: DeleteObject_12
+msgid "deleted base: "
+msgstr ""
+
+#: DeleteObject_2
+msgid "Delete object "
+msgstr ""
+
+#: DeleteObject_3
+msgid "Error: delete() returned 'false'"
+msgstr ""
+
+#: DeleteObject_4
+msgid "Error while delete "
+msgstr ""
+
+#: DeleteObject_5
+msgid "Deleting: "
+msgstr ""
+
+#: DeleteObject_7
+msgid "deleted partition: "
+msgstr ""
+
+#: DeleteObject_8
+msgid "deleted lexicon: "
+msgstr ""
+
+#: DeleteObject_9
+msgid "deleted specif: "
+msgstr ""
+
+#: DiagnosticPreferencePage_1
+msgid "Description"
+msgstr ""
+
+#: DiagnosticPreferencePage_2
+msgid "Number of property's value shown"
+msgstr ""
+
+#: DiagnosticPreferencePage_3
+msgid "Order partition's parts by size"
+msgstr ""
+
+#: Diagnostique_0
+msgid "Structural Units: "
+msgstr ""
+
+#: Diagnostique_1
+msgid "Lexical Units Properties: "
+msgstr ""
+
+#: Diagnostique_10
+msgid "get structural units data"
+msgstr ""
+
+#: Diagnostique_11
+msgid "Open editor..."
+msgstr ""
+
+#: Diagnostique_2
+msgid " already exists. Do you want to compute a new one ?"
+msgstr ""
+
+#: Diagnostique_3
+msgid "Base of corpus "
+msgstr ""
+
+#: Diagnostique_4
+msgid " not found"
+msgstr ""
+
+#: Diagnostique_7
+msgid "create Informations"
+msgstr ""
+
+#: Diagnostique_8
+msgid "get general data"
+msgstr ""
+
+#: Diagnostique_9
+msgid "get lexical properties data"
+msgstr ""
+
+#: DictionnaryEditor_0
+msgid "Lexicon:\n"
+msgstr ""
+
+#: DictionnaryEditor_1
+msgctxt "DictionnaryEditor_1"
+msgid "\tPartition: "
+msgstr ""
+
+#: DictionnaryEditor_10
+msgctxt "DictionnaryEditor_10"
+msgid "\tFmax: "
+msgstr ""
+
+#: DictionnaryEditor_3
+msgctxt "DictionnaryEditor_3"
+msgid "\tCorpus: "
+msgstr ""
+
+#: DictionnaryEditor_5
+msgctxt "DictionnaryEditor_5"
+msgid "\tQuery: "
+msgstr ""
+
+#: DictionnaryEditor_7
+msgctxt "DictionnaryEditor_7"
+msgid "\tProperties: "
+msgstr ""
+
+#: DictionnaryEditor_9
+msgctxt "DictionnaryEditor_9"
+msgid "\tFmin: "
+msgstr ""
+
+#: ERROR_WHILE_LOADING_CONCORDANCE_LINE
+msgid "An error occurred while retrieving the concordance lines"
+msgstr ""
+
+#: EmpantWidget_0
+msgid "Context: "
+msgstr ""
+
+#: EmpantWidget_1
+msgid "word"
+msgstr ""
+
+#: EmpantWidget_2
+msgid "structure"
+msgstr ""
+
+#: EmpantWidget_3
+msgid "from -"
+msgstr ""
+
+#: EmpantWidget_4
+msgid "to -"
+msgstr ""
+
+#: EmpantWidget_5
+msgid "and from"
+msgstr ""
+
+#: EmpantWidget_6
+msgid "to"
+msgstr ""
+
+#: EmpantWidget_7
+msgid "include the keyword structure in the count"
+msgstr ""
+
+#: Error_computing_specificities
+msgid "Error while computing specificities %s"
+msgstr ""
+
+#: Error_creating_partition
+msgid "Error while creating a partition : %s"
+msgstr ""
+
+#: ExecuteRText_1
+msgid "Error while executing R code "
+msgstr ""
+
+#: ExecuteScriptGroovy_0
+msgctxt "ExecuteScriptGroovy_0"
+msgid "Script file "
+msgstr ""
+
+#: ExecuteScriptGroovy_1
+msgctxt "ExecuteScriptGroovy_1"
+msgid " does not exist"
+msgstr ""
+
+#: ExecuteScriptGroovy_10
+msgid "end of execution "
+msgstr ""
+
+#: ExecuteScriptGroovy_4
+msgid "caused by::\n"
+msgstr ""
+
+#: ExecuteScriptGroovy_6
+msgid "start execution of "
+msgstr ""
+
+#: ExecuteScriptGroovy_Error_loading
+msgid "Error while loading script : "
+msgstr ""
+
+#: ExecuteScriptGroovy_Error_open
+msgctxt "ExecuteScriptGroovy_Error_open"
+msgid "Error while opening groovy script"
+msgstr ""
+
+#: ExecuteScriptImport_0
+msgid "Start importing"
+msgstr ""
+
+#: ExecuteScriptImport_1
+msgctxt "ExecuteScriptImport_1"
+msgid "Script file "
+msgstr ""
+
+#: ExecuteScriptImport_10
+msgctxt "ExecuteScriptImport_10"
+msgid " will be deleted"
+msgstr ""
+
+#: ExecuteScriptImport_11
+msgid "Importing new workspace"
+msgstr ""
+
+#: ExecuteScriptImport_19
+msgid "writing import report..."
+msgstr ""
+
+#: ExecuteScriptImport_2
+msgid "Starting script execution"
+msgstr ""
+
+#: ExecuteScriptImport_3
+msgctxt "ExecuteScriptImport_3"
+msgid "Restarting the TXM platform..."
+msgstr ""
+
+#: ExecuteScriptImport_4
+msgctxt "ExecuteScriptImport_4"
+msgid "TXM ready."
+msgstr ""
+
+#: ExecuteScriptImport_43
+msgid "Failed to save report: "
+msgstr ""
+
+#: ExecuteScriptImport_5
+msgctxt "ExecuteScriptImport_5"
+msgid "TXM ready."
+msgstr ""
+
+#: ExecuteScriptImport_6
+msgid "End of execution"
+msgstr ""
+
+#: ExecuteScriptImport_7
+msgid " does not exists"
+msgstr ""
+
+#: ExecuteScriptImport_8
+msgctxt "ExecuteScriptImport_8"
+msgid "Confirm"
+msgstr ""
+
+#: ExecuteScriptImport_9
+msgid "The base and the corpus "
+msgstr ""
+
+#: ExecuteScriptR_0
+msgid "The script R does not exists : "
+msgstr ""
+
+#: ExecuteScriptR_1
+msgid "Error while executing R file "
+msgstr ""
+
+#: ExecuteText_0
+msgctxt "ExecuteText_0"
+msgid "Script file "
+msgstr ""
+
+#: ExecuteText_1
+msgctxt "ExecuteText_1"
+msgid " does not exist"
+msgstr ""
+
+#: Exit_Menu_Label
+msgid "Exit"
+msgstr ""
+
+#: Explorer_0
+msgid "Folder "
+msgstr ""
+
+#: Explorer_1
+msgid "^"
+msgstr ""
+
+#: Explorer_11
+msgid " should not be delete"
+msgstr ""
+
+#: Explorer_2
+msgid "GO"
+msgstr ""
+
+#: Explorer_3
+msgctxt "Explorer_3"
+msgid "TXM"
+msgstr ""
+
+#: ExportCorpus_0
+msgid "Failed to export corpus: "
+msgstr ""
+
+#: ExportPreferencePage_1
+msgid "Export settings"
+msgstr ""
+
+#: ExportPreferencePage_18
+msgid "Column separator"
+msgstr ""
+
+#: ExportPreferencePage_19
+msgid "Text separator"
+msgstr ""
+
+#: ExportPreferencePage_21
+msgid "Default R graphical device"
+msgstr ""
+
+#: ExportPreferencePage_3
+msgid "Export file encoding"
+msgstr ""
+
+#: ExportPreferencePage_4
+msgid "Show export result in the text editor"
+msgstr ""
+
+#: ExportResult_0
+msgid "Exporting results."
+msgstr ""
+
+#: ExportResult_1
+msgctxt "ExportResult_1"
+msgid "Error: "
+msgstr ""
+
+#: ExportResult_2
+msgid " is not a file"
+msgstr ""
+
+#: ExportResult_3
+msgid "Export: Can't create file: "
+msgstr ""
+
+#: ExportResult_5
+msgid " is not readable"
+msgstr ""
+
+#: ExportResult_6
+msgid "Failed to export result: "
+msgstr ""
+
+#: ExportSVG_0
+msgid "Export graphic..."
+msgstr ""
+
+#: ExportSVG_1
+msgid "could not copy "
+msgstr ""
+
+#: ExportSVG_2
+msgctxt "ExportSVG_2"
+msgid " to "
+msgstr ""
+
+#: FAILED_TO_PARSE_OPTIONS
+msgid "Failed to parse TXM options"
+msgstr ""
+
+#: FAILED_TO_SAVE_PREFERENCES
+msgid "Failed to save preferences."
+msgstr ""
+
+#: FactorialMapEditor_0
+msgid "Factors: "
+msgstr ""
+
+#: FactorialMapEditor_10
+msgid "Internal error: CA plan selection error"
+msgstr ""
+
+#: FactorialMapEditor_11
+msgid "Resize"
+msgstr ""
+
+#: FactorialMapEditor_13
+msgid "Reseting factorial map"
+msgstr ""
+
+#: FactorialMapEditor_15
+msgctxt "FactorialMapEditor_15"
+msgid "Error: "
+msgstr ""
+
+#: FactorialMapEditor_16
+msgid " is not writeable"
+msgstr ""
+
+#: FactorialMapEditor_4
+msgid "Show: "
+msgstr ""
+
+#: FactorialMapEditor_5
+msgid "individuals"
+msgstr ""
+
+#: FactorialMapEditor_6
+msgid "variables"
+msgstr ""
+
+#: FactorialMapEditor_7
+msgctxt "FactorialMapEditor_7"
+msgid "Refresh"
+msgstr ""
+
+#: FactorialMapEditor_8
+msgid "Reloading factorial map"
+msgstr ""
+
+#: FrequencyListEditorInput_0
+msgctxt "FrequencyListEditorInput_0"
+msgid "Lexicon"
+msgstr ""
+
+#: FrequencyListEditorInput_1
+msgid "Pareto"
+msgstr ""
+
+#: FrequencyListEditorInput_10
+msgctxt "FrequencyListEditorInput_10"
+msgid "Frequency"
+msgstr ""
+
+#: FrequencyListEditorInput_11
+msgid "add pareto input "
+msgstr ""
+
+#: FrequencyListEditorInput_2
+msgid "Lexicon cannot be null"
+msgstr ""
+
+#: FrequencyListEditorInput_3
+msgctxt "FrequencyListEditorInput_3"
+msgid "Form"
+msgstr ""
+
+#: FrequencyListEditorInput_4
+msgctxt "FrequencyListEditorInput_4"
+msgid "Frequency"
+msgstr ""
+
+#: FrequencyListEditorInput_5
+msgctxt "FrequencyListEditorInput_5"
+msgid "String"
+msgstr ""
+
+#: FrequencyListEditorInput_6
+msgctxt "FrequencyListEditorInput_6"
+msgid "Integer"
+msgstr ""
+
+#: FrequencyListEditorInput_7
+msgid "processing pareto graphic"
+msgstr ""
+
+#: FrequencyListEditorInput_9
+msgctxt "FrequencyListEditorInput_9"
+msgid "Type"
+msgstr ""
+
+#: GenericMultiPageEditor_0
+msgid "page creation: "
+msgstr ""
+
+#: GenericMultiPageEditor_1
+msgid "The input "
+msgstr ""
+
+#: GenericMultiPageEditor_2
+msgid " cannot be displayed."
+msgstr ""
+
+#: GenericMultiPageEditor_3
+msgid "The number of editors ("
+msgstr ""
+
+#: GenericMultiPageEditor_4
+msgid ") and number of inputs ("
+msgstr ""
+
+#: GenericMultiPageEditor_5
+msgid ") must be equal."
+msgstr ""
+
+#: GenericMultiPageEditor_6
+msgid ", with "
+msgstr ""
+
+#: GenericMultiPageEditor_7
+msgid "get editor partname: "
+msgstr ""
+
+#: GetConcordancesDialog_0
+msgid "ERROR_GetConcordancesDialog"
+msgstr ""
+
+#: GetConcordancesDialog_1
+msgid "Compute specificities"
+msgstr ""
+
+#: GetConcordancesDialog_10
+msgctxt "GetConcordancesDialog_10"
+msgid "Invalid query"
+msgstr ""
+
+#: GetConcordancesDialog_11
+msgctxt "GetConcordancesDialog_11"
+msgid "Query cannot be left empty."
+msgstr ""
+
+#: GetConcordancesDialog_13
+msgid "you must select a property."
+msgstr ""
+
+#: GetConcordancesDialog_14
+msgid "Invalid view property"
+msgstr ""
+
+#: GetConcordancesDialog_15
+msgid "you must select an view property."
+msgstr ""
+
+#: GetConcordancesDialog_17
+msgid "\\[.*\\]"
+msgstr ""
+
+#: GetConcordancesDialog_18
+msgid ".*\".*\""
+msgstr ""
+
+#: GetConcordancesDialog_2
+msgctxt "GetConcordancesDialog_2"
+msgid "&Query:"
+msgstr ""
+
+#: GetConcordancesDialog_4
+msgid "&View property:"
+msgstr ""
+
+#: GetConcordancesDialog_5
+msgid "&Left context size:"
+msgstr ""
+
+#: GetConcordancesDialog_6
+msgid "&Right context size:"
+msgstr ""
+
+#: GetConcordancesDialog_7
+msgid "&Reference:"
+msgstr ""
+
+#: GetConcordances_1
+msgid "&Concordancer"
+msgstr ""
+
+#: GetConcordances_2
+msgid "Get concordances."
+msgstr ""
+
+#: GetConcordances_4
+msgid "Error while computing concordances"
+msgstr ""
+
+#: GraphicalLogger_0
+msgctxt "GraphicalLogger_0"
+msgid "error"
+msgstr ""
+
+#: GraphicalLogger_1
+msgid ""
+"\n"
+"CWB search engine error ("
+msgstr ""
+
+#: GraphicalLogger_2
+msgid "\n"
+msgstr ""
+
+#: GraphicalLogger_3
+msgid ""
+"\n"
+"Connection lost with CWB search engine"
+msgstr ""
+
+#: GraphicalLogger_4
+msgid ""
+"\n"
+"Statistical engine error"
+msgstr ""
+
+#: GraphicalLogger_5
+msgid ":\n"
+msgstr ""
+
+#: GraphicalLogger_6
+msgctxt "GraphicalLogger_6"
+msgid "error"
+msgstr ""
+
+#: GroovyConsole_4
+msgid ""
+"\n"
+"Console reports an Internal error."
+msgstr ""
+
+#: GroovyConsole_5
+msgid "The error is: "
+msgstr ""
+
+#: ImportDialog_0
+msgid "Import setup"
+msgstr ""
+
+#: ImportDialog_1
+msgid "Source directory: "
+msgstr ""
+
+#: ImportDialog_11
+msgctxt "ImportDialog_11"
+msgid "Warning"
+msgstr ""
+
+#: ImportDialog_13
+msgid "This directory seems to contain a binary corpus"
+msgstr ""
+
+#: ImportDialog_14
+msgid "This computer encoding: "
+msgstr ""
+
+#: ImportDialog_16
+msgid "Guess: "
+msgstr ""
+
+#: ImportDialog_18
+msgctxt "ImportDialog_18"
+msgid "Select: "
+msgstr ""
+
+#: ImportDialog_19
+msgid "This computer language: "
+msgstr ""
+
+#: ImportDialog_22
+msgctxt "ImportDialog_22"
+msgid "Select: "
+msgstr ""
+
+#: ImportDialog_23
+msgid "Options"
+msgstr ""
+
+#: ImportDialog_3
+msgid "- Optional parameters -"
+msgstr ""
+
+#: ImportDialog_4
+msgid "Sources characters encoding: "
+msgstr ""
+
+#: ImportDialog_5
+msgid "Main language: "
+msgstr ""
+
+#: ImportDialog_6
+msgid "Tokenizer parameter file: "
+msgstr ""
+
+#: ImportDialog_8
+msgctxt "ImportDialog_8"
+msgid "Edit"
+msgstr ""
+
+#: ImportFormEditor_0
+msgid "Warning: the import script is missing: "
+msgstr ""
+
+#: ImportSelectedText_0
+msgid "Import clipboard text "
+msgstr ""
+
+#: ImportSelectedText_1
+msgid "text"
+msgstr ""
+
+#: ImportSelectedText_2
+msgid "Clipboard is empty"
+msgstr ""
+
+#: ImportSelectedText_3
+msgctxt "ImportSelectedText_3"
+msgid "Confirm"
+msgstr ""
+
+#: ImportSelectedText_4
+msgid "The base and the corpus"
+msgstr ""
+
+#: ImportSelectedText_5
+msgctxt "ImportSelectedText_5"
+msgid " will be deleted"
+msgstr ""
+
+#: InternalCorpusView_0
+msgid "Error while computing corpus summary"
+msgstr ""
+
+#: InternalCorpusView_1
+msgid "Reload"
+msgstr ""
+
+#: InternalCorpusView_2
+msgid "Error: getText: "
+msgstr ""
+
+#: Invalid_analysis_property
+msgid "Invalid property"
+msgstr ""
+
+#: LanguageSwitchHandler_0
+msgid "Interface language (LOCALE) was not set"
+msgstr ""
+
+#: LanguageSwitchHandler_1
+msgid "The file "
+msgstr ""
+
+#: LanguageSwitchHandler_2
+msgid " doesn't exist"
+msgstr ""
+
+#: LanguageSwitchHandler_3
+msgid "Choose the language"
+msgstr ""
+
+#: LanguageSwitchHandler_4
+msgctxt "LanguageSwitchHandler_4"
+msgid "TXM.ini : "
+msgstr ""
+
+#: LanguageSwitchHandler_5
+msgid "SwitchLanguage: Malformed url: "
+msgstr ""
+
+#: LanguageSwitchHandler_7
+msgctxt "LanguageSwitchHandler_7"
+msgid "TXM.ini : "
+msgstr ""
+
+#: LexicalTableEditorInput_0
+msgctxt "LexicalTableEditorInput_0"
+msgid "Form"
+msgstr ""
+
+#: LexicalTableEditorInput_1
+msgctxt "LexicalTableEditorInput_1"
+msgid "Frequency"
+msgstr ""
+
+#: LexicalTableEditorInput_2
+msgctxt "LexicalTableEditorInput_2"
+msgid "String"
+msgstr ""
+
+#: LexicalTableEditorInput_3
+msgctxt "LexicalTableEditorInput_3"
+msgid "Integer"
+msgstr ""
+
+#: LexicalTableEditorInput_4
+msgctxt "LexicalTableEditorInput_4"
+msgid "error"
+msgstr ""
+
+#: LexicalTableEditorInput_5
+msgctxt "LexicalTableEditorInput_5"
+msgid "Lexicon"
+msgstr ""
+
+#: LexicalTableEditor_0
+msgctxt "LexicalTableEditor_0"
+msgid "t "
+msgstr ""
+
+#: LexicalTableEditor_1
+msgctxt "LexicalTableEditor_1"
+msgid ", v "
+msgstr ""
+
+#: LexicalTableEditor_10
+msgid "Merge or Delete columns"
+msgstr ""
+
+#: LexicalTableEditor_11
+msgid "Merge cols "
+msgstr ""
+
+#: LexicalTableEditor_12
+msgid "Delete cols "
+msgstr ""
+
+#: LexicalTableEditor_13
+msgid "Merge or Delete rows"
+msgstr ""
+
+#: LexicalTableEditor_14
+msgctxt "LexicalTableEditor_14"
+msgid "Frequency"
+msgstr ""
+
+#: LexicalTableEditor_15
+msgctxt "LexicalTableEditor_15"
+msgid "Form"
+msgstr ""
+
+#: LexicalTableEditor_16
+msgid "Filtering lines"
+msgstr ""
+
+#: LexicalTableEditor_18
+msgctxt "LexicalTableEditor_18"
+msgid "Merging lines"
+msgstr ""
+
+#: LexicalTableEditor_2
+msgid ", Fmin "
+msgstr ""
+
+#: LexicalTableEditor_20
+msgctxt "LexicalTableEditor_20"
+msgid "Sorting column"
+msgstr ""
+
+#: LexicalTableEditor_3
+msgid ", Fmax "
+msgstr ""
+
+#: LexicalTableEditor_4
+msgid "Keep"
+msgstr ""
+
+#: LexicalTableEditor_5
+msgid "keep: Nline:"
+msgstr ""
+
+#: LexicalTableEditor_6
+msgid "and Fmin:"
+msgstr ""
+
+#: LexicalTableEditor_7
+msgctxt "LexicalTableEditor_7"
+msgid "Are you sure ?"
+msgstr ""
+
+#: LexicalTableEditor_8
+msgid "Number of lines: "
+msgstr ""
+
+#: LexicalTableEditor_9
+msgctxt "LexicalTableEditor_9"
+msgid "Sort done."
+msgstr ""
+
+#: LexicalTablePreferencePage_0
+msgid "Lexical table"
+msgstr ""
+
+#: LexicalTablePreferencePage_1
+msgid "Lower frequency"
+msgstr ""
+
+#: LexicalTable_1
+msgctxt "LexicalTable_1"
+msgid "Property: "
+msgstr ""
+
+#: LexicalTable_2
+msgid "Number of types: "
+msgstr ""
+
+#: LexicalTable_3
+msgid "Number of tokens: "
+msgstr ""
+
+#: LexicalTable_4
+msgid "Token"
+msgstr ""
+
+#: LexicalTable_5
+msgctxt "LexicalTable_5"
+msgid "Frequency"
+msgstr ""
+
+#: LineLabelProvider_1
+msgctxt "LineLabelProvider_1"
+msgid "Should not happen"
+msgstr ""
+
+#: LocalePreferencePage_1
+msgid "Configuration of the user interface language"
+msgstr ""
+
+#: LocalePreferencePage_2
+msgid "User interface language "
+msgstr ""
+
+#: MainPage_0
+msgctxt "MainPage_0"
+msgid "MainPage"
+msgstr ""
+
+#: MainPage_1
+msgid "Main"
+msgstr ""
+
+#: MainPage_11
+msgctxt "MainPage_11"
+msgid "TXM workspace is not initialise, restart TXM."
+msgstr ""
+
+#: MainPage_12
+msgid "yes"
+msgstr ""
+
+#: MainPage_13
+msgid "no"
+msgstr ""
+
+#: MainPage_14
+msgid "Warning this corpus exists"
+msgstr ""
+
+#: MainPage_15
+msgid "The corpus "
+msgstr ""
+
+#: MainPage_16
+msgid " already exists. Do you want to erase it ?"
+msgstr ""
+
+#: MainPage_17
+msgid "Abandon import of "
+msgstr ""
+
+#: MainPage_18
+msgid "Front XSLT"
+msgstr ""
+
+#: MainPage_19
+msgid "Tokenizer parameters"
+msgstr ""
+
+#: MainPage_2
+msgid "Import parameters of "
+msgstr ""
+
+#: MainPage_20
+msgid "Main language"
+msgstr ""
+
+#: MainPage_23
+msgid "Source characters encoding"
+msgstr ""
+
+#: MainPage_28
+msgid "Error while getting encoding"
+msgstr ""
+
+#: MainPage_29
+msgid "Sources location"
+msgstr ""
+
+#: MainPage_3
+msgid "Base infos"
+msgstr ""
+
+#: MainPage_30
+msgid "From directory"
+msgstr ""
+
+#: MainPage_31
+msgid "From file selection"
+msgstr ""
+
+#: MainPage_32
+msgid "From URL list"
+msgstr ""
+
+#: MainPage_33
+msgid "from url"
+msgstr ""
+
+#: MainPage_34
+msgid "Files"
+msgstr ""
+
+#: MainPage_4
+msgid "Base name"
+msgstr ""
+
+#: MainPage_6
+msgid "Import: base name must not be empty"
+msgstr ""
+
+#: MainPage_7
+msgid "Import: No source directory has been selected"
+msgstr ""
+
+#: MainPage_8
+msgid "Import: No source files"
+msgstr ""
+
+#: MainPage_9
+msgctxt "MainPage_9"
+msgid "TXM workspace is not initialise, restart TXM."
+msgstr ""
+
+#: MergeCols_1
+msgctxt "MergeCols_1"
+msgid "New name"
+msgstr ""
+
+#: MergeCols_2
+msgid "Edit the name of the new column created by the merged columns"
+msgstr ""
+
+#: MergeCols_5
+msgid "Names: "
+msgstr ""
+
+#: MergeCols_6
+msgid "End of column merge."
+msgstr ""
+
+#: MergeDeleteDialog_0
+msgid "merge"
+msgstr ""
+
+#: MergeDeleteDialog_1
+msgid "Merge/Delete"
+msgstr ""
+
+#: MergeDeleteDialog_2
+msgctxt "MergeDeleteDialog_2"
+msgid "delete"
+msgstr ""
+
+#: MergeDeleteDialog_4
+msgid "merge result name"
+msgstr ""
+
+#: MergeLines_1
+msgctxt "MergeLines_1"
+msgid "New name"
+msgstr ""
+
+#: MergeLines_2
+msgid "Edit the name of the new line created by the merged lines"
+msgstr ""
+
+#: MergeLines_3
+msgctxt "MergeLines_3"
+msgid "Merging lines"
+msgstr ""
+
+#: MetadataPage_0
+msgctxt "MetadataPage_0"
+msgid "MainPage"
+msgstr ""
+
+#: MetadataPage_1
+msgid "Metadata"
+msgstr ""
+
+#: MetadataPage_10
+msgid "noname"
+msgstr ""
+
+#: MetadataPage_11
+msgid "noshortname"
+msgstr ""
+
+#: MetadataPage_12
+msgid "nolongname"
+msgstr ""
+
+#: MetadataPage_14
+msgid "Remove selected metadata definitions"
+msgstr ""
+
+#: MetadataPage_15
+msgctxt "MetadataPage_15"
+msgid "Name"
+msgstr ""
+
+#: MetadataPage_16
+msgid "Longname"
+msgstr ""
+
+#: MetadataPage_17
+msgctxt "MetadataPage_17"
+msgid "Type"
+msgstr ""
+
+#: MetadataPage_18
+msgid "Selection"
+msgstr ""
+
+#: MetadataPage_19
+msgid "Partition"
+msgstr ""
+
+#: MetadataPage_2
+msgid "Metadatas parameters"
+msgstr ""
+
+#: MetadataPage_20
+msgid "Display"
+msgstr ""
+
+#: MetadataPage_3
+msgid "Open a metadata file"
+msgstr ""
+
+#: MetadataPage_7
+msgid "No metadata file : "
+msgstr ""
+
+#: MetadataPage_8
+msgid "Clear metadata definitions"
+msgstr ""
+
+#: MetadataPage_9
+msgid "Add a new metadata definition"
+msgstr ""
+
+#: ObjectExplorer_0
+msgid "Informations: "
+msgstr ""
+
+#: ObjectExplorer_1
+msgid "Key\t"
+msgstr ""
+
+#: ObjectExplorer_10
+msgid "Remove property"
+msgstr ""
+
+#: ObjectExplorer_12
+msgid "Enter a property name to remove"
+msgstr ""
+
+#: ObjectExplorer_15
+msgid "add a new property to all children"
+msgstr ""
+
+#: ObjectExplorer_2
+msgctxt "ObjectExplorer_2"
+msgid "Value"
+msgstr ""
+
+#: ObjectExplorer_21
+msgid "remove a property from the children"
+msgstr ""
+
+#: ObjectExplorer_26
+msgctxt "ObjectExplorer_26"
+msgid "Name"
+msgstr ""
+
+#: ObjectExplorer_27
+msgid "Key"
+msgstr ""
+
+#: ObjectExplorer_28
+msgctxt "ObjectExplorer_28"
+msgid "Value"
+msgstr ""
+
+#: ObjectExplorer_3
+msgid "New property"
+msgstr ""
+
+#: ObjectExplorer_4
+msgid "Property name"
+msgstr ""
+
+#: ObjectExplorer_5
+msgid "Enter a property name to add"
+msgstr ""
+
+#: ObjectExplorer_6
+msgid "No metadata for this Object"
+msgstr ""
+
+#: ObjectExplorer_7
+msgid "new name"
+msgstr ""
+
+#: ObjectExplorer_9
+msgctxt "ObjectExplorer_9"
+msgid ""
+msgstr ""
+
+#: ObjectSelectionDialog_0
+msgid "Value selector"
+msgstr ""
+
+#: ObjectSelectionDialog_3
+msgid "Found "
+msgstr ""
+
+#: ObjectSelectionDialog_4
+msgid " value(s)"
+msgstr ""
+
+#: ObjectSelectionDialog_5
+msgid "Wrong regular expression: "
+msgstr ""
+
+#: ObjectSelector_0
+msgid "Obj:"
+msgstr ""
+
+#: ObjectSelector_1
+msgid "Select"
+msgstr ""
+
+#: OpenBiblio_0
+msgid "Openbiblio error: corpus base is null."
+msgstr ""
+
+#: OpenBiblio_1
+msgid "No text in base: "
+msgstr ""
+
+#: OpenBiblio_10
+msgid " has no biblio"
+msgstr ""
+
+#: OpenBiblio_2
+msgid "Select text id"
+msgstr ""
+
+#: OpenBiblio_5
+msgid "code: "
+msgstr ""
+
+#: OpenBiblio_6
+msgid "cancel"
+msgstr ""
+
+#: OpenBiblio_7
+msgid "Could not find text "
+msgstr ""
+
+#: OpenBiblio_8
+msgid "in base "
+msgstr ""
+
+#: OpenBiblio_9
+msgid "Text "
+msgstr ""
+
+#: OpenEdition_0
+msgid "Select a part"
+msgstr ""
+
+#: OpenEdition_1
+msgid "Failed to load edition of "
+msgstr ""
+
+#: OpenEdition_2
+msgid "Error while loading the edition of the corpus "
+msgstr ""
+
+#: OpenEdition_3
+msgctxt "OpenEdition_3"
+msgid "Error: "
+msgstr ""
+
+#: OpenEdition_4
+msgid "OpenEdition error : corpus base is null."
+msgstr ""
+
+#: OpenEmptyEditor_2
+msgid "Could not find directory: "
+msgstr ""
+
+#: OpenGraph_8
+msgid "Can't open graphic "
+msgstr ""
+
+#: OpenParaBrowser_0
+msgid "Opening the parabrowser"
+msgstr ""
+
+#: OpenSVGGraph_0
+msgid "SVG Graphic"
+msgstr ""
+
+#: OpenTXMUserPreferences_0
+msgid "Default settings"
+msgstr ""
+
+#: OpenURI_0
+msgid "Desktop is not supported (fatal)"
+msgstr ""
+
+#: OpenURI_1
+msgid "Error while oponing file "
+msgstr ""
+
+#: ParaBrowserEditor_10
+msgid ":"
+msgstr ""
+
+#: ParaBrowserEditor_11
+msgid "get next("
+msgstr ""
+
+#: ParaBrowserEditor_12
+msgid ") "
+msgstr ""
+
+#: ParaBrowserEditor_13
+msgid " paraid "
+msgstr ""
+
+#: ParaBrowserEditor_14
+msgid " value "
+msgstr ""
+
+#: ParaBrowserEditor_18
+msgid "-MOVE to "
+msgstr ""
+
+#: ParaBrowserEditor_19
+msgid "-Don't MOVE !!!!! NEXT is "
+msgstr ""
+
+#: ParaBrowserEditor_20
+msgctxt "ParaBrowserEditor_20"
+msgid ""
+msgstr ""
+
+#: ParaBrowserEditor_21
+msgid "_"
+msgstr ""
+
+#: ParaBrowserEditor_22
+msgid "Open Parabrowser"
+msgstr ""
+
+#: ParaBrowserEditor_3
+msgid "Ref: "
+msgstr ""
+
+#: ParaBrowserEditor_4
+msgid "Références"
+msgstr ""
+
+#: ParaBrowserEditor_5
+msgctxt "ParaBrowserEditor_5"
+msgid "Structure"
+msgstr ""
+
+#: ParaBrowserEditor_9
+msgid "Ref:"
+msgstr ""
+
+#: PartitionComposer_0
+msgid "Structure: "
+msgstr ""
+
+#: PartitionComposer_1
+msgctxt "PartitionComposer_1"
+msgid "Property: "
+msgstr ""
+
+#: PartitionComposer_10
+msgid "Add selected : "
+msgstr ""
+
+#: PartitionComposer_11
+msgid "Remove"
+msgstr ""
+
+#: PartitionComposer_12
+msgid "Rmv selected : "
+msgstr ""
+
+#: PartitionComposer_2
+msgid "Select values to assign: "
+msgstr ""
+
+#: PartitionComposer_3
+msgid "New part"
+msgstr ""
+
+#: PartitionComposer_4
+msgid "add part"
+msgstr ""
+
+#: PartitionComposer_5
+msgid "Part "
+msgstr ""
+
+#: PartitionComposer_6
+msgid "Rmv all the parts"
+msgstr ""
+
+#: PartitionComposer_8
+msgid "Title: "
+msgstr ""
+
+#: PartitionComposer_9
+msgid "Assign"
+msgstr ""
+
+#: PartsSize_10
+msgid "Dimensions of partition "
+msgstr ""
+
+#: PartsSize_11
+msgid " of corpus "
+msgstr ""
+
+#: PartsSize_12
+msgid " ordered by size"
+msgstr ""
+
+#: PartsSize_18
+msgid "Dimensions: "
+msgstr ""
+
+#: Preferences_Menu_Label
+msgid "Preferences"
+msgstr ""
+
+#: ProgressionPreferencePage_2
+msgid "Progression"
+msgstr ""
+
+#: ProgressionPreferencePage_3
+msgid "Default graph type is cumulative"
+msgstr ""
+
+#: ProgressionPreferencePage_4
+msgid "Curves are Monochrome"
+msgstr ""
+
+#: ProgressionPreferencePage_5
+msgid "Curves have the same style"
+msgstr ""
+
+#: ProgressionPreferencePage_6
+msgid "Repeat the values of the structure properties"
+msgstr ""
+
+#: ProgressionPreferencePage_7
+msgid "Bande size multiplier"
+msgstr ""
+
+#: PropertiesSelector_0
+msgid "Can't load properties from corpus "
+msgstr ""
+
+#: PropertiesSelector_1
+msgid "Properties: "
+msgstr ""
+
+#: PropertiesSelector_2
+msgctxt "PropertiesSelector_2"
+msgid "Edit"
+msgstr ""
+
+#: PropertiesSelector_3
+msgid " (reason:"
+msgstr ""
+
+#: PropertiesSelector_4
+msgid ")"
+msgstr ""
+
+#: PropertySelector_0
+msgid "Select a property"
+msgstr ""
+
+#: QueriesView_1
+msgid "Export all"
+msgstr ""
+
+#: QueriesView_10
+msgid "error:"
+msgstr ""
+
+#: QueriesView_4
+msgctxt "QueriesView_4"
+msgid "TXM"
+msgstr ""
+
+#: QueriesView_5
+msgid "Queries:\n"
+msgstr ""
+
+#: QueryAssistDialog_0
+msgid "Query Assistant"
+msgstr ""
+
+#: QueryAssistDialog_1
+msgid "Add a word"
+msgstr ""
+
+#: QueryAssistDialog_10
+msgid "equals to"
+msgstr ""
+
+#: QueryAssistDialog_11
+msgid "starts with"
+msgstr ""
+
+#: QueryAssistDialog_12
+msgid "ends with"
+msgstr ""
+
+#: QueryAssistDialog_13
+msgctxt "QueryAssistDialog_13"
+msgid "contains"
+msgstr ""
+
+#: QueryAssistDialog_2
+msgid "I'm looking for: "
+msgstr ""
+
+#: QueryAssistDialog_3
+msgid " word"
+msgstr ""
+
+#: QueryAssistDialog_32
+msgid "followed by "
+msgstr ""
+
+#: QueryAssistDialog_33
+msgid "separated by at least 0 word"
+msgstr ""
+
+#: QueryAssistDialog_34
+msgid "separated by at least 1 word"
+msgstr ""
+
+#: QueryAssistDialog_5
+msgid " words"
+msgstr ""
+
+#: QueryAssistDialog_8
+msgid "- Word n°"
+msgstr ""
+
+#: QueryAssistDialog_9
+msgid ": with its property "
+msgstr ""
+
+#: RPreferencePage_0
+msgid "r_path_to_executable"
+msgstr ""
+
+#: RPreferencePage_1
+msgid "R Configuration"
+msgstr ""
+
+#: RPreferencePage_2
+msgid "Path to R binary"
+msgstr ""
+
+#: RPreferencePage_3
+msgid "Remote connexion"
+msgstr ""
+
+#: RPreferencePage_4
+msgid "Server adress"
+msgstr ""
+
+#: RPreferencePage_5
+msgid "user"
+msgstr ""
+
+#: RPreferencePage_6
+msgid "password"
+msgstr ""
+
+#: RPreferencePage_7
+msgid "Use file based R data transfert"
+msgstr ""
+
+#: RVariablesView_1
+msgid "Refresh variables"
+msgstr ""
+
+#: RVariablesView_2
+msgid "Show eval logs"
+msgstr ""
+
+#: RVariablesView_9
+msgid " >> "
+msgstr ""
+
+#: ReferenceLabelProvider_0
+msgctxt "ReferenceLabelProvider_0"
+msgid "Should not happen"
+msgstr ""
+
+#: ReferencerEditor_0
+msgid "Compute references of < "
+msgstr ""
+
+#: ReferencerEditor_1
+msgid "> in "
+msgstr ""
+
+#: ReferencerEditor_10
+msgid "Get indexes"
+msgstr ""
+
+#: ReferencerEditor_11
+msgid "References"
+msgstr ""
+
+#: ReferencerEditor_12
+msgid "Group positions by indexes"
+msgstr ""
+
+#: ReferencerEditor_13
+msgid "Refresh ui"
+msgstr ""
+
+#: ReferencerEditor_15
+msgctxt "ReferencerEditor_15"
+msgid "Done: "
+msgstr ""
+
+#: ReferencerEditor_16
+msgid " result(s)"
+msgstr ""
+
+#: ReferencerEditor_17
+msgid "Showing first result page"
+msgstr ""
+
+#: ReferencerEditor_19
+msgid "Showing last result page"
+msgstr ""
+
+#: ReferencerEditor_2
+msgctxt "ReferencerEditor_2"
+msgid ""
+msgstr ""
+
+#: ReferencerEditor_21
+msgid "Showing next result page"
+msgstr ""
+
+#: ReferencerEditor_23
+msgid "Showing previous result page"
+msgstr ""
+
+#: ReferencerEditor_25
+msgid "Opening concordances"
+msgstr ""
+
+#: ReferencerEditor_3
+msgid " for property "
+msgstr ""
+
+#: ReferencerEditor_4
+msgid " and pattern "
+msgstr ""
+
+#: ReferencerEditor_5
+msgid "Computing references of "
+msgstr ""
+
+#: ReferencerEditor_6
+msgid "Reference pattern "
+msgstr ""
+
+#: ReferencerEditor_7
+msgid "No results"
+msgstr ""
+
+#: ReferencerEditor_8
+msgid "Get matches"
+msgstr ""
+
+#: ReferencerEditor_9
+msgctxt "ReferencerEditor_9"
+msgid "Units"
+msgstr ""
+
+#: ReferencerPreferencePage_2
+msgid "Referencer"
+msgstr ""
+
+#: ReferencerPreferencePage_3
+msgid "Order references by frequency"
+msgstr ""
+
+#: RemoveBase_1
+msgctxt "RemoveBase_1"
+msgid "base: "
+msgstr ""
+
+#: RemoveProject_1
+msgctxt "RemoveProject_1"
+msgid "project: "
+msgstr ""
+
+#: RemoveScript_1
+msgid "script: "
+msgstr ""
+
+#: RemoveText_1
+msgid "text: "
+msgstr ""
+
+#: ProgressionDialog_0
+msgid "Progression Parameters"
+msgstr ""
+
+#: ProgressionDialog_1
+msgid "Graph type: "
+msgstr ""
+
+#: ProgressionDialog_10
+msgid "Progression dialog : wrong regular expression: "
+msgstr ""
+
+#: ProgressionDialog_11
+msgid "Bandewidth multiplier :"
+msgstr ""
+
+#: ProgressionDialog_13
+msgid "Display options"
+msgstr ""
+
+#: ProgressionDialog_14
+msgid "Multiple line style"
+msgstr ""
+
+#: ProgressionDialog_15
+msgid "Repeat same values"
+msgstr ""
+
+#: ProgressionDialog_16
+msgid "Monochrome"
+msgstr ""
+
+#: ProgressionDialog_17
+msgid "Bande multiplier error : "
+msgstr ""
+
+#: ProgressionDialog_2
+msgid "cumulative"
+msgstr ""
+
+#: ProgressionDialog_3
+msgid "density"
+msgstr ""
+
+#: ProgressionDialog_4
+msgid "Structural Unit: "
+msgstr ""
+
+#: ProgressionDialog_5
+msgctxt "ProgressionDialog_5"
+msgid "delete"
+msgstr ""
+
+#: ProgressionDialog_6
+msgctxt "ProgressionDialog_6"
+msgid "Property: "
+msgstr ""
+
+#: ProgressionDialog_7
+msgid "Regex: "
+msgstr ""
+
+#: ProgressionDialog_8
+msgid "Queries: "
+msgstr ""
+
+#: ProgressionDialog_9
+msgid "add"
+msgstr ""
+
+#: ProgressionEditorInput_0
+msgid "PROGRESSION NAME"
+msgstr ""
+
+#: RestartTXM_1
+msgid "Restart TXM"
+msgstr ""
+
+#: RunGroovyScript_0
+msgid "Script execution"
+msgstr ""
+
+#: RunGroovyScript_1
+msgid "&Run script"
+msgstr ""
+
+#: RunGroovyScript_2
+msgid "Run script"
+msgstr ""
+
+#: RunGroovyScript_3
+msgid "*.groovy"
+msgstr ""
+
+#: RunGroovyScript_4
+msgctxt "RunGroovyScript_4"
+msgid "Error while opening groovy script"
+msgstr ""
+
+#: RunGroovyScript_5
+msgid "Error while loading script"
+msgstr ""
+
+#: RunGroovyScript_6
+msgid "Error while parsing script"
+msgstr ""
+
+#: RunGroovyScript_7
+msgctxt "RunGroovyScript_7"
+msgid "Error while running script"
+msgstr ""
+
+#: RunGroovyScript_8
+msgctxt "RunGroovyScript_8"
+msgid "Error while running script"
+msgstr ""
+
+#: RunGroovyScript_9
+msgid "Execute script"
+msgstr ""
+
+#: RunScript_0
+msgid "script type "
+msgstr ""
+
+#: RunScript_11
+msgid "annotate"
+msgstr ""
+
+#: RunScript_12
+msgid "importer"
+msgstr ""
+
+#: RunScript_13
+msgid "txm"
+msgstr ""
+
+#: RunScript_2
+msgid "compilation script on base: "
+msgstr ""
+
+#: RunScript_4
+msgid "edition script on base: "
+msgstr ""
+
+#: RunScript_6
+msgid "annotation script on base: "
+msgstr ""
+
+#: RunScript_8
+msgid "importer script on base: "
+msgstr ""
+
+#: SVGComposite_0
+msgid "Status"
+msgstr ""
+
+#: SVGComposite_1
+msgid "Cannot get graphic root element"
+msgstr ""
+
+#: SVGComposite_11
+msgid "current reel "
+msgstr ""
+
+#: SVGComposite_2
+msgid "current translate "
+msgstr ""
+
+#: SVGComposite_4
+msgctxt "SVGComposite_4"
+msgid "Error"
+msgstr ""
+
+#: SVGComposite_5
+msgid "NO MESSAGE"
+msgstr ""
+
+#: SVGComposite_6
+msgctxt "SVGComposite_6"
+msgid "Error"
+msgstr ""
+
+#: SVGComposite_7
+msgid "Message"
+msgstr ""
+
+#: SVGComposite_8
+msgid "current zoom "
+msgstr ""
+
+#: SVGComposite_9
+msgid "current mouse "
+msgstr ""
+
+#: SVGGraphicEditorInput_0
+msgid "SVG graphic "
+msgstr ""
+
+#: SVGGraphicEditor_1
+msgid "Cannot draw a graphic with the information provided."
+msgstr ""
+
+#: SVGPanel_0
+msgid "Center"
+msgstr ""
+
+#: ScriptPreferencePage_0
+msgid "The next session number"
+msgstr ""
+
+#: ScriptPreferencePage_2
+msgid "Groovy Scripts configuration"
+msgstr ""
+
+#: ScriptPreferencePage_3
+msgid "&Root folder"
+msgstr ""
+
+#: ScriptPreferencePage_4
+msgid "&Current folder"
+msgstr ""
+
+#: SetContextSize_1
+msgid "Set &contexts' size"
+msgstr ""
+
+#: SetContextSize_2
+msgid "Set the contexts size"
+msgstr ""
+
+#: SetContextSize_3
+msgid "Left context size"
+msgstr ""
+
+#: SetContextSize_4
+msgid "Right context size"
+msgstr ""
+
+#: SetLineNumber_0
+msgid "Lines per page"
+msgstr ""
+
+#: SetLineNumber_1
+msgid "Line n°"
+msgstr ""
+
+#: SetSortProperty_1
+msgid "Set &Sort property"
+msgstr ""
+
+#: SetSortProperty_2
+msgid "Set the sort property"
+msgstr ""
+
+#: SetSortProperty_3
+msgid "Sort property"
+msgstr ""
+
+#: ShowSelected_0
+msgid "informations: \n"
+msgstr ""
+
+#: ShowSelected_4
+msgid "Set the 'LANG' property"
+msgstr ""
+
+#: ShowSelected_5
+msgid "ISO-638 code for the 'LANG' property"
+msgstr ""
+
+#: ShowSvgHelp_0
+msgid "SVG controls"
+msgstr ""
+
+#: ShowSvgHelp_1
+msgid "\tPan : Shif t+Left Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_2
+msgid "\tZoom in&out : Shif t+Right Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_3
+msgid "\tZoom to selection : Ctrl+Left Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_4
+msgid "\tRotate : Ctrl+Right Mouse+drag\n"
+msgstr ""
+
+#: ShowSvgHelp_5
+msgid "\tReset the view : F5"
+msgstr ""
+
+#: SingularValuesEditor_0
+msgid "wrong input"
+msgstr ""
+
+#: SingularValuesEditor_1
+msgctxt "SingularValuesEditor_1"
+msgid "Sort done."
+msgstr ""
+
+#: SingularValuesEditor_2
+msgctxt "SingularValuesEditor_2"
+msgid "Sorting column"
+msgstr ""
+
+#: SortPropertySelectionDialog_0
+msgid "Select sort properties"
+msgstr ""
+
+#: SortPropertySelection_0
+msgid "Select Sort properties"
+msgstr ""
+
+#: SpecificitiesPreferencePage_1
+msgid "Monochrome graph"
+msgstr ""
+
+#: SpecificitiesPreferencePage_2
+msgid "Specificities"
+msgstr ""
+
+#: SpecificitiesPreferencePage_4
+msgid "Group graphic bars by line entry"
+msgstr ""
+
+#: SpecificitiesPreferencePage_5
+msgid "Graphic : draw curves"
+msgstr ""
+
+#: SpecificitiesPreferencePage_6
+msgid "Graphic : draw bars"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_0
+msgid "Values"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_1
+msgid "Graphic"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_10
+msgctxt "SpecificitiesResultEditorInput_10"
+msgid "Integer"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_11
+msgctxt "SpecificitiesResultEditorInput_11"
+msgid "Double"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_2
+msgctxt "SpecificitiesResultEditorInput_2"
+msgid "Cannot compute simultaneously part and form specificities"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_3
+msgctxt "SpecificitiesResultEditorInput_3"
+msgid "Cannot compute simultaneously part and form specificities"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_4
+msgctxt "SpecificitiesResultEditorInput_4"
+msgid "Form"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_5
+msgid "Total frequency"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_6
+msgid "Sub frequency"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_7
+msgid "Specificities index"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_8
+msgctxt "SpecificitiesResultEditorInput_8"
+msgid "String"
+msgstr ""
+
+#: SpecificitiesResultEditorInput_9
+msgctxt "SpecificitiesResultEditorInput_9"
+msgid "Integer"
+msgstr ""
+
+#: SpecificitiesTableEditor_0
+msgid "Unable to compute the specificities"
+msgstr ""
+
+#: SpecificitiesTableEditor_1
+msgid "Error while sorting specificities"
+msgstr ""
+
+#: SpecificitiesTableEditor_10
+msgid "/TXM/specif.svg"
+msgstr ""
+
+#: SpecificitiesTableEditor_11
+msgid " T"
+msgstr ""
+
+#: SpecificitiesTableEditor_12
+msgctxt "SpecificitiesTableEditor_12"
+msgid "Sort done."
+msgstr ""
+
+#: SpecificitiesTableEditor_13
+msgctxt "SpecificitiesTableEditor_13"
+msgid "Error while computing the lexical table"
+msgstr ""
+
+#: SpecificitiesTableEditor_15
+msgctxt "SpecificitiesTableEditor_15"
+msgid "Sorting column"
+msgstr ""
+
+#: SpecificitiesTableEditor_16
+msgid "Graph: "
+msgstr ""
+
+#: SpecificitiesTableEditor_17
+msgid "Opening the specificities table"
+msgstr ""
+
+#: SpecificitiesTableEditor_2
+msgctxt "SpecificitiesTableEditor_2"
+msgid "Units"
+msgstr ""
+
+#: SpecificitiesTableEditor_25
+msgctxt "SpecificitiesTableEditor_25"
+msgid "Error: "
+msgstr ""
+
+#: SpecificitiesTableEditor_26
+msgctxt "SpecificitiesTableEditor_26"
+msgid " cannot be written"
+msgstr ""
+
+#: SpecificitiesTableEditor_3
+msgid "Types"
+msgstr ""
+
+#: SpecificitiesTableEditor_4
+msgctxt "SpecificitiesTableEditor_4"
+msgid "Frequency"
+msgstr ""
+
+#: SpecificitiesTableEditor_5
+msgid "Unexpected error in the statistical engine R"
+msgstr ""
+
+#: SpecificitiesTableEditor_6
+msgctxt "SpecificitiesTableEditor_6"
+msgid "Frequency"
+msgstr ""
+
+#: SpecificitiesTableEditor_8
+msgid "Compute the histogram of the lines selected"
+msgstr ""
+
+#: SpecificitiesTableEditor_9
+msgid "error while computing the histogram"
+msgstr ""
+
+#: Structure_field_not_empty
+msgid "structure field is mandatory."
+msgstr ""
+
+#: Submit_0
+msgid "Save script"
+msgstr ""
+
+#: Submit_1
+msgid "Error during R data transfert"
+msgstr ""
+
+#: TXMCqpServerWatcher_0
+msgid "CQP server is down"
+msgstr ""
+
+#: TXMCqpServerWatcher_1
+msgid "Please wait for searchengine to restart..."
+msgstr ""
+
+#: TXMCqpServerWatcher_2
+msgctxt "TXMCqpServerWatcher_2"
+msgid "Ok"
+msgstr ""
+
+#: TXMRServeWatcher_0
+msgid "StatEngine server is down"
+msgstr ""
+
+#: TXMRServeWatcher_1
+msgid "Please wait for StatEngine to restart..."
+msgstr ""
+
+#: TXMRServeWatcher_2
+msgctxt "TXMRServeWatcher_2"
+msgid "Ok"
+msgstr ""
+
+#: TXMRServeWatcher_3
+msgid "Reloading corpora view..."
+msgstr ""
+
+#: TXMRServeWatcher_4
+msgid "Please wait..."
+msgstr ""
+
+#: TablableVector_0
+msgid "The two arrays must have the same size."
+msgstr ""
+
+#: TableEditor_0
+msgid "Cannot draw a table with the information provided."
+msgstr ""
+
+#: TableSorter_0
+msgid "Column index is too big."
+msgstr ""
+
+#: TestCreateSVGGraphic_1
+msgid "Test new &SVG graphic"
+msgstr ""
+
+#: TestCreateSVGGraphic_2
+msgid "Test the creation of a new SVG graphic."
+msgstr ""
+
+#: TestCreateSVGGraphic_4
+msgid "library(grDevices)"
+msgstr ""
+
+#: TestCreateSVGGraphic_5
+msgid "data(iris); attach(iris)"
+msgstr ""
+
+#: TestCreateSVGGraphic_8
+msgid "Can't open svg graphics device:\n"
+msgstr ""
+
+#: TextometriePreferencePage_1
+msgid "TXM Settings"
+msgstr ""
+
+#: TreeTaggerPreferencePage_0
+msgid "TreeTagger"
+msgstr ""
+
+#: TreeTaggerPreferencePage_1
+msgid "Path to treetagger install directory"
+msgstr ""
+
+#: TreeTaggerPreferencePage_2
+msgid "Path to treetagger models directory"
+msgstr ""
+
+#: TxmBrowser_0
+msgid "Beginning"
+msgstr ""
+
+#: TxmBrowser_1
+msgid "firstPage "
+msgstr ""
+
+#: TxmBrowser_10
+msgid ""
+"Could not launch the internal web browser. You must set that parameter in "
+"the preferences, menu: General>WebNavigator"
+msgstr ""
+
+#: TxmBrowser_2
+msgid "lastPage"
+msgstr ""
+
+#: TxmBrowser_3
+msgid "previousPage"
+msgstr ""
+
+#: TxmBrowser_4
+msgid "nextPage"
+msgstr ""
+
+#: TxmBrowser_5
+msgid "Previous page"
+msgstr ""
+
+#: TxmBrowser_6
+msgid "Next page"
+msgstr ""
+
+#: TxmBrowser_7
+msgid "End"
+msgstr ""
+
+#: TxmBrowser_8
+msgid "Next text"
+msgstr ""
+
+#: TxmBrowser_9
+msgid "Previous text"
+msgstr ""
+
+#: Unable_retrieve_info_corpus
+msgctxt "Unable_retrieve_info_corpus"
+msgid ""
+msgstr ""
+
+#: UserPreferencePage_0
+msgid "User page"
+msgstr ""
+
+#: UserPreferencePage_3
+msgid "Do not confirm to delete an object"
+msgstr ""
+
+#: ViewPropertySelectionDialog_0
+msgid "Select view properties"
+msgstr ""
+
+#: ViewPropertySelection_0
+msgid "Select View properties"
+msgstr ""
+
+#: VocabularyEditor_0
+msgid "Index : query is empty"
+msgstr ""
+
+#: VocabularyEditor_1
+msgid "Failed to compute index"
+msgstr ""
+
+#: VocabularyEditor_10
+msgid "> with property: "
+msgstr ""
+
+#: VocabularyEditor_11
+msgid " in the corpus: "
+msgstr ""
+
+#: VocabularyEditor_12
+msgctxt "VocabularyEditor_12"
+msgid "Done: "
+msgstr ""
+
+#: VocabularyEditor_13
+msgctxt "VocabularyEditor_13"
+msgid " results"
+msgstr ""
+
+#: VocabularyEditor_14
+msgctxt "VocabularyEditor_14"
+msgid "Index of <"
+msgstr ""
+
+#: VocabularyEditor_15
+msgctxt "VocabularyEditor_15"
+msgid "Units"
+msgstr ""
+
+#: VocabularyEditor_16
+msgid "reload table "
+msgstr ""
+
+#: VocabularyEditor_17
+msgid "Index:\n"
+msgstr ""
+
+#: VocabularyEditor_18
+msgctxt "VocabularyEditor_18"
+msgid "Frequency"
+msgstr ""
+
+#: VocabularyEditor_19
+msgctxt "VocabularyEditor_19"
+msgid "\tPartition: "
+msgstr ""
+
+#: VocabularyEditor_2
+msgctxt "VocabularyEditor_2"
+msgid "Index of <"
+msgstr ""
+
+#: VocabularyEditor_20
+msgid " in the partition: "
+msgstr ""
+
+#: VocabularyEditor_21
+msgctxt "VocabularyEditor_21"
+msgid ""
+msgstr ""
+
+#: VocabularyEditor_22
+msgid "Couldn't initialize Index table"
+msgstr ""
+
+#: VocabularyEditor_23
+msgctxt "VocabularyEditor_23"
+msgid "\tCorpus: "
+msgstr ""
+
+#: VocabularyEditor_24
+msgctxt "VocabularyEditor_24"
+msgid "one result"
+msgstr ""
+
+#: VocabularyEditor_25
+msgid ", fmin "
+msgstr ""
+
+#: VocabularyEditor_26
+msgid ", fmax "
+msgstr ""
+
+#: VocabularyEditor_27
+msgctxt "VocabularyEditor_27"
+msgid "t "
+msgstr ""
+
+#: VocabularyEditor_28
+msgctxt "VocabularyEditor_28"
+msgid ", v "
+msgstr ""
+
+#: VocabularyEditor_29
+msgid "Opening the Index results"
+msgstr ""
+
+#: VocabularyEditor_3
+msgctxt "VocabularyEditor_3"
+msgid "Query: "
+msgstr ""
+
+#: VocabularyEditor_30
+msgctxt "VocabularyEditor_30"
+msgid "\tQuery: "
+msgstr ""
+
+#: VocabularyEditor_31
+msgctxt "VocabularyEditor_31"
+msgid "no result"
+msgstr ""
+
+#: VocabularyEditor_32
+msgctxt "VocabularyEditor_32"
+msgid "\tProperties: "
+msgstr ""
+
+#: VocabularyEditor_33
+msgid "Computing index"
+msgstr ""
+
+#: VocabularyEditor_34
+msgctxt "VocabularyEditor_34"
+msgid "\tFmin: "
+msgstr ""
+
+#: VocabularyEditor_35
+msgctxt "VocabularyEditor_35"
+msgid "\tFmax: "
+msgstr ""
+
+#: VocabularyEditor_36
+msgctxt "VocabularyEditor_36"
+msgid "Sorting column"
+msgstr ""
+
+#: VocabularyEditor_37
+msgctxt "VocabularyEditor_37"
+msgid "Sort done."
+msgstr ""
+
+#: VocabularyEditor_4
+msgctxt "VocabularyEditor_4"
+msgid "&Search"
+msgstr ""
+
+#: VocabularyEditor_5
+msgctxt "VocabularyEditor_5"
+msgid "Fmin: "
+msgstr ""
+
+#: VocabularyEditor_6
+msgid "Fmax: "
+msgstr ""
+
+#: VocabularyEditor_7
+msgid "Vmax: "
+msgstr ""
+
+#: VocabularyEditor_8
+msgid "Page size: "
+msgstr ""
+
+#: VocabularyEditor_9
+msgid "Thresholds: "
+msgstr ""
+
+#: VocabularyToCooccurrence_0
+msgid "Error while linking Index to Cooccurences"
+msgstr ""
+
+#: VocabularyToLexicalTable_0
+msgid "Cannot create a Lexical Table based on an Index created with a Corpus"
+msgstr ""
+
+#: VocabularyToLexicalTable_1
+msgctxt "VocabularyToLexicalTable_1"
+msgid "Opening the lexical table"
+msgstr ""
+
+#: VocabularyToLexicalTable_2
+msgctxt "VocabularyToLexicalTable_2"
+msgid "Opening marge configuration dialog"
+msgstr ""
+
+#: VocabularyToLexicalTable_3
+msgctxt "VocabularyToLexicalTable_3"
+msgid "Use all occurrences"
+msgstr ""
+
+#: VocabularyToLexicalTable_4
+msgctxt "VocabularyToLexicalTable_4"
+msgid "User index occrrences"
+msgstr ""
+
+#: VocabularyToLexicalTable_5
+msgctxt "VocabularyToLexicalTable_5"
+msgid "Select which margins you want to use"
+msgstr ""
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.po
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.po	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.po	(revision 122)
@@ -0,0 +1,3246 @@
+# Serge Heiden <slh@ens-lyon.fr>, 2011.
+#. extracted from messages.properties, messages_fr.properties
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-09-14 12:10+0200\n"
+"PO-Revision-Date: 2011-09-19 16:27+0200\n"
+"Last-Translator: Serge Heiden <slh@ens-lyon.fr>\n"
+"Language-Team: LinCoBaTO\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.5.2\n"
+
+#: About_Menu_Label
+msgid "About TXM..."
+msgstr "À propos de TXM..."
+
+#: AdapterFactory_0
+msgid ""
+"Warning: the corpus {0} is corrupted. Some commands won't work correctly. "
+msgstr ""
+"Avertissement : le corpus {0} est corrompu. Certaines commandes ne "
+"fonctionneront pas correctement."
+
+#: AddBase_1
+msgid "Add a Base: {0}"
+msgstr "La base {0} a été ajoutée."
+
+#: AddBase_10
+msgid "TXM is ready."
+msgstr "TXM prêt."
+
+#: AddBase_11
+msgid "Failed to copy the registry file: {0} to: {1}"
+msgstr "Échec de la copie du fichier de registre : {0} vers {1}"
+
+#: AddBase_16
+msgid "Cannot set the 'LANG' property from the 'txmcorpus' structure: "
+msgstr ""
+"Impossible d'affecter la langue {0} à la propriété 'LANG' de la structure "
+"<txmcorpus>"
+
+#: AddBase_17
+msgid "Cannot read the file {0}"
+msgstr "Impossible de lire le fichier {0}"
+
+#: AddBase_19
+msgid "Warning"
+msgstr "Attention"
+
+#: AddBase_2
+msgid ""
+"Failed to load base from directory: {0}.\n"
+"We cannot find the necessary components"
+msgstr ""
+"Échec du chargement du corpus à partir du répertoire : {0}.\n"
+"Impossible de trouver les composants nécessaires."
+
+#: AddBase_20
+msgid "The {0} directory already exists. Do you want to replace it ?"
+msgstr "Le répertoire {0} existe déjà. Voulez-vous le remplacer ?"
+
+#: AddBase_22
+msgid "This file is not a TXM file: {0}"
+msgstr "Le fichier {0} n'est pas un fichier TXM."
+
+#: AddBase_23
+msgid "The corpus {0} has no 'LANG' set in 'txmcorpus'"
+msgstr ""
+"Le corpus {0} n'a pas de propriété 'LANG' associée à la structure "
+"<txmcorpus>"
+
+#: AddBase_24
+msgid "Failed to load base {0} "
+msgstr "Échec du chargement du corpus {0}"
+
+#: AddBase_25
+msgid "A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+"Un corpus TXM au format binaire est soit un fichier d'extension .txm ou "
+".zip, soit un répertoire composé des sous-répertoires 'html', 'data', "
+"'registry', 'txm'"
+
+#: AddBase_27
+msgid "Load binary corpus"
+msgstr "Charger un corpus"
+
+#: AddBase_28
+msgid "Unziping binary corpus"
+msgstr "Extraction du corpus binaire"
+
+#: AddBase_29
+msgid "Unziping {0} in {1}"
+msgstr "Extraction de {0} dans {1}"
+
+#: AddBase_3
+msgid "Enter the base name"
+msgstr "Saisissez le nom du corpus"
+
+#: AddBase_31
+msgid "Could not dezip binary corpus, reason= "
+msgstr "Échec de l'extraction du corpus binaire : "
+
+#: AddBase_32
+msgid "Loading the corpus in the toolbox"
+msgstr "Chargement du corpus dans la plateforme"
+
+#: AddBase_33
+msgid "Restarting the toolbox"
+msgstr "Redémarrage de la plateforme"
+
+#: AddBase_34
+msgid "TXM workspace is not initialized, please restart TXM."
+msgstr ""
+"L'espace de travail de TXM n'est pas initialisé, veuillez redémarrer TXM."
+
+#: AddBase_37
+msgid "TXM registry directory not set: "
+msgstr "Répertoire de registre de TXM non défini : "
+
+#: AddBase_38
+msgid "The copy of the registry file '{0}' failed"
+msgstr "La copie du fichier de registre '{0}' n'a pas abouti"
+
+#: AddProject_3
+msgid "Enter project name"
+msgstr "Saisissez le nom du projet"
+
+#: AdvancePreferencePage_0
+msgid "TXM Advanced settings"
+msgstr "Préférences avancées"
+
+#: AdvancePreferencePage_1
+msgid "TXM Install directory"
+msgstr "Dossier d'installation de TXM"
+
+#: AdvancePreferencePage_12
+msgid "Log level"
+msgstr "Niveau de commentaire"
+
+#: AdvancePreferencePage_13
+msgid "Log in the console"
+msgstr "Commentaires dans la console"
+
+#: AdvancePreferencePage_14
+msgid "Log in a file"
+msgstr "Commentaires dans un fichier"
+
+#: AdvancePreferencePage_2
+msgid "TXM user directory"
+msgstr "Répertoire utilisateur TXM"
+
+#: ApplicationWorkbenchAdvisor_0
+msgid "Initializing Toolbox..."
+msgstr "Initialisation de la plateforme..."
+
+#: ApplicationWorkbenchAdvisor_1
+msgid "Initialization of the Toolbox"
+msgstr "Initialisation de la plateforme..."
+
+#: ApplicationWorkbenchAdvisor_11
+msgid "Load sample corpora"
+msgstr "Chargement des corpus d'exemple "
+
+#: ApplicationWorkbenchAdvisor_12
+msgid "TXMHOME was set ({0}) sbut not created: "
+msgstr "La variable TXMHOME était bien définie ({0}) mais pas créée : "
+
+#: ApplicationWorkbenchAdvisor_13
+msgid "Could not create TXMHOME directory : {0}"
+msgstr "Échec de la création du répertoire TXMHOME : {0}"
+
+#: ApplicationWorkbenchAdvisor_19
+msgid "Could not configure TreeTagger parameters, reason= {0}"
+msgstr "Impossible de configurer les paramètres du logiciel TreeTagger : {0}"
+
+#: ApplicationWorkbenchAdvisor_2
+msgid "Loading TXM install preferences"
+msgstr "Chargement des préférences d'installation de TXM"
+
+#: ApplicationWorkbenchAdvisor_22
+msgid ""
+"The UI locale has been set to {0}, changes will be applied at next startup"
+msgstr ""
+"La langue de l'interface a été positionnée à {0}, les modifications seront "
+"appliquées au prochain démarrage."
+
+#: ApplicationWorkbenchAdvisor_24
+msgid "Restart TXM to apply language changes."
+msgstr "Redémarrez TXM pour appliquer le changement de langue."
+
+#: ApplicationWorkbenchAdvisor_25
+msgid "reading preferences from the install path: {0}"
+msgstr "Lecture des préférences depuis le chemin d'installation : {0}"
+
+#: ApplicationWorkbenchAdvisor_3
+msgid "Checking if the workspace directory already exists"
+msgstr "Vérification de la présence du répertoire de travail"
+
+#: ApplicationWorkbenchAdvisor_31
+msgid "Failed to create TXM default.xml workspace"
+msgstr "Échec de la création de l'espace de travail 'default.xml'"
+
+#: ApplicationWorkbenchAdvisor_32
+msgid "TreeTagger is not installed or paths are incorrect."
+msgstr "TreeTagger n'est pas installé, ou les chemins d'accès sont incorrects."
+
+#: ApplicationWorkbenchAdvisor_33
+msgid "TreeTagger paths have been set to default values"
+msgstr ""
+"Les chemins d'accès à TreeTagger ont été réglés à des valeurs par défaut."
+
+#: ApplicationWorkbenchAdvisor_39
+msgid "Missing folder in TXM install dir: {0}"
+msgstr "Répertoire manquant dans le répertoire d'installation de TXM : {0}"
+
+#: ApplicationWorkbenchAdvisor_4
+msgid "Checking TreeTagger installation"
+msgstr "Vérification de l'installation de TreeTagger"
+
+#: ApplicationWorkbenchAdvisor_40
+msgid "Failed to copy TXM files from TXMINSTALL DIR to TXMHOME : {0}"
+msgstr ""
+"Échec de la copie des fichiers TXM du répertoire TXMINSTALL vers TXMHOME : "
+"{0}"
+
+#: ApplicationWorkbenchAdvisor_41
+msgid "Failed to set preferences : {0}"
+msgstr "Échec de réglage des préférences : {0}"
+
+#: ApplicationWorkbenchAdvisor_45
+msgid "Cannot read file {0}"
+msgstr "Impossible de lire le fichier {0}"
+
+#: ApplicationWorkbenchAdvisor_5
+msgid "System Output"
+msgstr "Sortie standard"
+
+#: ApplicationWorkbenchAdvisor_52
+msgid "Failed to load sample corpora. reason={0}"
+msgstr "Impossible de charger les corpus d'exemple : {0}"
+
+#: ApplicationWorkbenchAdvisor_7
+msgid ""
+"Creating TXM user working directory\n"
+"Loading sample corpora."
+msgstr ""
+"Création de l'espace de travail utilisateur de TXM.\n"
+"Chargement des corpus d'exemple."
+
+#: ApplicationWorkbenchAdvisor_8
+msgid "install path: {0}"
+msgstr "Chemin d'installation : {0}"
+
+#: ApplicationWorkbenchAdvisor_9
+msgid "Could not read install preferences file"
+msgstr "Échec de lecture du fichier des préférences d'installation"
+
+#: ApplicationWorkbenchAdvisor_init
+msgid "Starting up..."
+msgstr "Démarrage..."
+
+#: ApplicationWorkbenchAdvisor_init_failed
+msgid ""
+"Startup failed, please check TXM preferences (in the 'File>Preferences' "
+"menu) or contact txm-users mailing list (menu: Help>"
+msgstr ""
+"Le démarrage de la plateforme a été interrompu, veuillez régler les "
+"préférences de TXM (dans le menu 'Fichier>Préférences')"
+
+#: ApplicationWorkbenchAdvisor_ready
+msgid "Ready."
+msgstr "Prêt."
+
+#: ApplicationWorkbenchWindowAdvisor_statusready
+msgid "Waking up..."
+msgstr "Démarrage en cours..."
+
+#: Application_6
+msgid ""
+"You need to install Java version 1.6 at least before launching TXM, your "
+"actual Java version is {0} "
+msgstr ""
+"Vous devez installer la version 1.6 de Java ou supérieur avant de lancer "
+"TXM, la version courante de Java sur cette machine est {0}"
+
+#: AssistedQueryWidget_0
+msgid "Open the query assistant"
+msgstr "Ouvrir l'assistant de requêtes"
+
+#: BackToText_0
+msgid "Display in full text"
+msgstr "Afficher en plein texte"
+
+#: CAHPreferencePage_0
+msgid "Display graphics in 2D"
+msgstr "Afficher les graphiques en 2D"
+
+#: CAHPreferencePage_1
+msgid "Classification"
+msgstr "Classification"
+
+#: CAHPreferencePage_2
+msgid "Number of cluster"
+msgstr "Nombre de clusters"
+
+#: CAHPreferencePage_3
+msgid "Method"
+msgstr "Méthode"
+
+#: CAHPreferencePage_4
+msgid "Metric"
+msgstr "Métrique"
+
+#: CANT_CREATE_GRAPHIC
+msgid "Cannot create the graphic"
+msgstr "Impossible de créer le graphique"
+
+#: CAPreferencePage_0
+msgid "Quality column format"
+msgstr "Format de la colonne Qualité"
+
+#: CAPreferencePage_1
+msgid "Contribution column format"
+msgstr "Format de la colonne Contribution"
+
+#: CAPreferencePage_3
+msgid "Show the individuals (columns) in the factorial plane graphic"
+msgstr "Afficher les colonnes dans le graphique du plan factoriel"
+
+#: CAPreferencePage_4
+msgid "Show the variables (rows) in the factorial plane graphic"
+msgstr "Afficher les lignes dans le graphique du plan factoriel"
+
+#: CAPreferencePage_5
+msgid "Mass column format"
+msgstr "Format de la colonne Masse"
+
+#: CAPreferencePage_6
+msgid "Distance column format"
+msgstr "Format de la colonne Distance"
+
+#: CAPreferencePage_7
+msgid "Cos² column format"
+msgstr "Format de la colonne Cos²"
+
+#: CAPreferencePage_8
+msgid "Coord column format"
+msgstr "Format de la colonne Coord"
+
+#: CQPPreferenceInitializer_0
+msgid "localhost"
+msgstr "localhost"
+
+#: CQPPreferenceInitializer_1
+msgid "anonymous"
+msgstr "anonymous"
+
+#: CQPPreferenceInitializer_6
+msgid " -b 1000000"
+msgstr " -b 1000000"
+
+#: CQPPreferencePage_0
+msgid "CWB Server Configuration"
+msgstr "Configuration du serveur CWB"
+
+#: CQPPreferencePage_10
+msgid "&Remote CWB server address:"
+msgstr "&Serveur CWB distant"
+
+#: CQPPreferencePage_11
+msgid "CWB server : &host:"
+msgstr "Serveur distant : nom de machine"
+
+#: CQPPreferencePage_12
+msgid "CWB server : &port:"
+msgstr "Serveur distant : numéro de &port"
+
+#: CQPPreferencePage_13
+msgid "CWB server : &login:"
+msgstr "Serveur distant : &login"
+
+#: CQPPreferencePage_14
+msgid "CWB server : &password:"
+msgstr "Serveur distant : &mot de passe"
+
+#: CQPPreferencePage_15
+msgid "Path to CWB server binary"
+msgstr "Chemin vers le fichier &exécutable 'cqpserver'"
+
+#: CQPPreferencePage_16
+msgid "Path to CWB server registry"
+msgstr "Chemin vers le répertoire de &Registre du serveur CWB"
+
+#: CQPPreferencePage_17
+msgid "Path to CWB server initialisation file"
+msgstr "Chemin vers le fichier d'initialisation du serveur CWB"
+
+#: CQPPreferencePage_18
+msgid "Additionnal &options for the CWB server:"
+msgstr "Options additionnelles pour le serveur CWB : "
+
+#: Cannot_ask_simple_when_advance
+msgid ""
+"Cannot ask for the simple tab when the user has selected the advanced tab"
+msgstr ""
+"Impossible d'afficher l'onglet des options simples quand l'utilisateur a "
+"sélectionné l'affichage des options avancées"
+
+#: ColRowInfosLabelProvider_19
+msgid "Qual"
+msgstr "Qual"
+
+#: ColRowInfosLabelProvider_9
+msgid "Chi²"
+msgstr "χ²"
+
+#: ColsRowsInfosEditor_0
+msgid "Wrong input"
+msgstr "Entrée erronée"
+
+#: ColsRowsInfosEditor_2
+msgid "Infos: {0}"
+msgstr "Infos: {0}"
+
+#: ComplexSortSelector_0
+msgid "sort keys: "
+msgstr "Clés de tri : "
+
+#: ComplexSortSelector_1
+msgid "Complex sort: "
+msgstr "Tri multiple : "
+
+#: ComplexSortSelector_5
+msgid "Error during sort: {0}"
+msgstr "Erreur pendant le tri : {0}"
+
+#: ComplexSortSelector_6
+msgid "default"
+msgstr "par défaut"
+
+#: ComplexSort_0
+msgid "Opening complex sort dialog"
+msgstr "Ouverture de la boite de dialogue du tri composé"
+
+#: ComplexSort_1
+msgid "&Multiple Sort"
+msgstr "&Tri composé"
+
+#: ComplexSort_10
+msgid "Invalid comparator"
+msgstr "Comparateur invalide"
+
+#: ComplexSort_11
+msgid "you must select at least 2 comparators"
+msgstr "Il faut sélectionner au moins deux comparateurs"
+
+#: ComplexSort_12
+msgid "Adding to selection"
+msgstr "Ajouter à la sélection"
+
+#: ComplexSort_14
+msgid "Remove from selection"
+msgstr "Retirer de la sélection"
+
+#: ComplexSort_16
+msgid "Moving up the selection"
+msgstr "Monter d'un cran la sélection"
+
+#: ComplexSort_18
+msgid "Moving down the selection"
+msgstr "Descendre d'un cran la sélection"
+
+#: ComplexSort_2
+msgid "Define and use a composite sorter"
+msgstr "Définir et utiliser un tri composé"
+
+#: ComplexSort_3
+msgid "Select a composite sorter"
+msgstr "Sélectionnez un tri composé"
+
+#: ComplexSort_4
+msgid "&New"
+msgstr "&Nouveau"
+
+#: ComplexSort_5
+msgid "Create a new sorter"
+msgstr "Créer une nouvelle méthode de tri"
+
+#: ComplexSort_6
+msgid "Name:"
+msgstr "Nom : "
+
+#: ComplexSort_9
+msgid "Name is mandatory."
+msgstr "Le champ Nom est obligatoire."
+
+#: ComplexSubcorpusPanel_0
+msgid "Match"
+msgstr "Sélectionner"
+
+#: ComplexSubcorpusPanel_1
+msgid "All criteria"
+msgstr "Tous les critères"
+
+#: ComplexSubcorpusPanel_16
+msgid "does not contain"
+msgstr "ne contient pas"
+
+#: ComplexSubcorpusPanel_2
+msgid "Some criteria"
+msgstr "certains critères"
+
+#: ComplexSubcorpusPanel_4
+msgid "Query "
+msgstr "Requête "
+
+#: ComplexSubcorpusPanel_5
+msgid "Refresh"
+msgstr "Rafraîchir"
+
+#: ComputeCAH_0
+msgid "Compute Classification"
+msgstr "Calcul de la Classification"
+
+#: ComputeCAH_1
+msgid "Show graphic"
+msgstr "Afficher le graphique"
+
+#: ComputeCAH_2
+msgid "Error: temporary file created cannot be written: "
+msgstr "** Impossible d'écrire dans le fichier temporaire"
+
+#: ComputeClassification_0
+msgid "create Classification"
+msgstr "Création de la Classification"
+
+#: ComputeClassification_1
+msgid "draw Classification"
+msgstr "Affichage de la Classification"
+
+#: ComputeClassification_3
+msgid "Classification parameters"
+msgstr "Paramètres de la Classification"
+
+#: ComputeClassification_4
+msgid "N cluster"
+msgstr "Clusters"
+
+#: ComputeClassification_5
+msgid "Cols"
+msgstr "Colonnes"
+
+#: ComputeClassification_6
+msgid "Rows"
+msgstr "Lignes"
+
+#: ComputeConcordance_0
+msgid "Opening the Concordance result"
+msgstr "Ouverture de la fenêtre de concordance"
+
+#: ComputeCoocFromLines_0
+msgid "Computing Cooccurrents"
+msgstr "Calcul des cooccurrents en cours"
+
+#: ComputeCoocFromLines_1
+msgid "Opening the Cooccurrents table"
+msgstr "Ouverture du tableau de cooccurrents"
+
+#: ComputeCooccurrences_0
+msgid "Opening cooccurrents table"
+msgstr "Chargement du tableau de cooccurrents"
+
+#: ComputeCooccurrences_1
+msgid "cannot compute cooccurrences with the selection "
+msgstr "** Impossible de calculer les cooccurrents de la sélection"
+
+#: ComputeCorrespondanceAnalysisDialog_0
+msgid "Correspondance analysis"
+msgstr "Analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysisDialog_1
+msgid "Property:"
+msgstr "Propriétés : "
+
+#: ComputeCorrespondanceAnalysisDialog_2
+msgid "Max lines N: "
+msgstr "Nombre de lignes :"
+
+#: ComputeCorrespondanceAnalysis_0
+msgid "Computing Correspondance analysis on {0} with property {1}"
+msgstr "Calcul de l'analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysis_13
+msgid "Can't compute CA on lexical table with less than 4 columns"
+msgstr ""
+"** Impossible de calculer l'analyse factorielle des correspondances avec "
+"moins de 4 colonnes "
+
+#: ComputeCorrespondanceAnalysis_14
+msgid "Opening the Correspondance Analysis results"
+msgstr "Ouverture des résultats de l'analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysis_15
+msgid "Create CA"
+msgstr "Création de la fenêtre de l'AFC"
+
+#: ComputeCorrespondanceAnalysis_16
+msgid "Get LexicalTable CA"
+msgstr "Création de la table lexicale pour l'AFC"
+
+#: ComputeCorrespondanceAnalysis_17
+msgid "Compute CA"
+msgstr "Calcul de l'AFC"
+
+#: ComputeCorrespondanceAnalysis_3
+msgid "Error"
+msgstr "Erreur"
+
+#: ComputeCorrespondanceAnalysis_4
+msgid ""
+"Cannot compute factorial analysis with only {0} parts (the minimum is 4 "
+"parts)."
+msgstr "** Impossible de calculer l'analyse factorielle avec seulement "
+
+#: ComputeCorrespondanceAnalysis_6
+msgid "OK"
+msgstr "OK"
+
+#: ComputeCorrespondanceAnalysis_8
+msgid "Loading correspondances analysis results..."
+msgstr "Chargement des résultats de l'analyse factorielle"
+
+#: ComputeFrequencyList_2
+msgid "Processing word lexicon of {0} in the corpus {1}"
+msgstr "Calcul du lexique de la propriété {0} dans le corpus {1}"
+
+#: ComputeIndexFromLines_0
+msgid "Send selection to Index"
+msgstr "Envoyer la sélection vers la commande Index"
+
+#: ComputeLexicalTable_0
+msgid "Computing the Lexical Table"
+msgstr "Calcul de la table lexicale"
+
+#: ComputeLexicalTable_1
+msgid "Computing the Lexical Table {0} with the property {1} "
+msgstr "Calcul de la table lexicale {0} avec la propriété {1}"
+
+#: ComputeLexicalTable_10
+msgid "Opening the lexical table"
+msgstr "Ouverture de la table lexicale"
+
+#: ComputeLexicalTable_12
+msgid "User index occurrences"
+msgstr "Occurrences d'index"
+
+#: ComputeLexicalTable_13
+msgid "Select which margins you want to use"
+msgstr "Sélectionnez les marges à utiliser"
+
+#: ComputeLexicalTable_16
+msgid "Use all occurrences"
+msgstr "Utiliser toutes les occurrences"
+
+#: ComputeLexicalTable_3
+msgid "Opening marge configuration dialog"
+msgstr "Ouverture de la boite de dialogue de configuration des marges"
+
+#: ComputeLexicalTable_5
+msgid "Can not create a lexical table with an Index created on a Corpus"
+msgstr ""
+"** Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"corpus"
+
+#: ComputeLexicalTable_6
+msgid "Vocabularies must share the same properties: {0}"
+msgstr ""
+"** Les vocabulaires doivent être composés de la même combinaison de "
+"propriétés : {0}"
+
+#: ComputeLexicalTable_7
+msgid "Vocabularies must share the same partition: {0}"
+msgstr "Les vocabulaires doivent avoir la même partition : {0}"
+
+#: ComputeLexicalTable_9
+msgid "LexicalTable dialog, failed to get corpus size. Reason={0} "
+msgstr ""
+"** Boite de dialogue de la table lexicale : impossible d'obtenir la taille "
+"du corpus. Cause {0}"
+
+#: ComputeReferencer_0
+msgid "Open references editor"
+msgstr "Ouverture du résultat du Référenceur"
+
+#: ComputeProgression_10
+msgid "Opening progression graphic"
+msgstr "Ouverture du graphique de progression"
+
+#: ComputeProgression_12
+msgid "Done: Number of positions: {0}"
+msgstr "Terminé : {0} positions affichées"
+
+#: ComputeProgression_13
+msgid "Progression failed: {0}"
+msgstr "** Échec du calcul de la progression : {0}"
+
+#: ComputeProgression_2
+msgid "Computing progression of {0} in the corpus {1} "
+msgstr "Calcul de la progression de <{0}> dans le corpus {1}"
+
+#: ComputeProgression_4
+msgid ""
+"Computing progression of {0} with queries: {1}, structural unit: {2}, "
+"property: {3}, cumulative: {4}"
+msgstr ""
+"Calcul de la progression de {0} avec la requête : {1}, la structure : {2}, "
+"la propriété : {3}, cumulatif: {4}"
+
+#: ComputeProgression_9
+msgid "{0} is not writable"
+msgstr "** {0} n'est pas accessible en écriture"
+
+#: ComputeSpecificitiesDialog_0
+msgid "ERROR_ComputeSpecificitiesDialog {0}"
+msgstr "** Boite de dialogue 'Calcul des Spécificités' - {0}"
+
+#: ComputeSpecificitiesDialog_1
+msgid "Regex syntax error: {0}"
+msgstr "Erreur de syntaxe dans l'expression régulière : {0}"
+
+#: ComputeSpecificitiesDialog_3
+msgid "Focus:"
+msgstr "Focus :"
+
+#: ComputeSpecificitiesDialog_4
+msgid "Part focus:"
+msgstr "Focus de partie :"
+
+#: ComputeSpecificitiesDialog_9
+msgid "No filtering of part available"
+msgstr "Pas de filtrage de partie disponible"
+
+#: ComputeSpecificities_0
+msgid "Computing Specificites"
+msgstr "Calcul des spécificités sur"
+
+#: ComputeSpecificities_1
+msgid "&Specificities"
+msgstr "&Specificités"
+
+#: ComputeSpecificities_10
+msgid "Computing Specificities on subcorpus {0} with corpus {1}. Property: {2}"
+msgstr "Calcul des spécificités du sous-corpus {0} du corpus {1}, propriété {2}"
+
+#: ComputeSpecificities_2
+msgid ""
+"Computing Specificites on {0} and property {1} with word focus: {2} and part "
+"focus: {3} "
+msgstr ""
+"Calcul des spécificités de {0}, propriété {1} focus de mot : {2}, focus de "
+"partie : {3} "
+
+#: ComputeSpecificities_7
+msgid "Loading specificities results..."
+msgstr "Chargement du tableau des spécificités..."
+
+#: ComputeSpecifities_10
+msgid "Opening specificities results table"
+msgstr "Ouverture du tableau de résultats des spécificités"
+
+#: ComputeSpecifities_11
+msgid "Compute Specificities on with lexical table {0}"
+msgstr "Calcul des spécificités de la table lexicale {0}"
+
+#: ComputeSpecifities_2
+msgid "Refreshing corpora view..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: ComputeSpecifities_3
+msgid ""
+"Computing Specificities on subcorpus {0} with corpus {1}. Properties: {2} "
+msgstr "Calcul des spécificités du sous-corpus {0} du corpus {1}, propriété {2}"
+
+#: ComputeVocabulary_0
+msgid "Opening Index results"
+msgstr "Ouverture de l'Index"
+
+#: Compute_Specificities
+msgid "Computing specificities."
+msgstr "Calcul des Spécificités"
+
+#: ConcordancerPreferencePage_3
+msgid "Concordance Parameters"
+msgstr "Paramètres des Concordances "
+
+#: ConcordancerPreferencePage_4
+msgid "Number of lines per &Page:"
+msgstr "Lignes par &Page : "
+
+#: ConcordancerPreferencePage_5
+msgid "&Left context length in words"
+msgstr "Contexte &Gauche (en mots)"
+
+#: ConcordancerPreferencePage_6
+msgid "&Right context length in words"
+msgstr "Contexte &Droit (en mots)"
+
+#: ConcordancesEditorContributor_0
+msgid "Concordance"
+msgstr "Concordance"
+
+#: ConcordancesEditor_1
+msgid "Reference"
+msgstr "Référence"
+
+#: ConcordancesEditor_11
+msgid "|<"
+msgstr "|<"
+
+#: ConcordancesEditor_12
+msgid "<"
+msgstr "<"
+
+#: ConcordancesEditor_13
+msgid ">"
+msgstr ">"
+
+#: ConcordancesEditor_14
+msgid ">|"
+msgstr ">|"
+
+#: ConcordancesEditor_16
+msgid "&Keyword:"
+msgstr "&Pivot: "
+
+#: ConcordancesEditor_18
+msgid "&Edit"
+msgstr "&Editer"
+
+#: ConcordancesEditor_19
+msgid "Found {0} occurrences"
+msgstr "{0} occurrences"
+
+#: ConcordancesEditor_2
+msgid "Left context"
+msgstr "Contexte gauche"
+
+#: ConcordancesEditor_20
+msgid "Loading line informations..."
+msgstr "Chargement des informations sur la ligne..."
+
+#: ConcordancesEditor_23
+msgid "BackToText: Project {0} is missing"
+msgstr "Retour au texte : projet {0} manquant"
+
+#: ConcordancesEditor_25
+msgid "BackToText: Base {0} is missing"
+msgstr "Retour au texte : corpus {0} manquant "
+
+#: ConcordancesEditor_26
+msgid "Project id {0} Base id {1} Text id {2}"
+msgstr "id projet {0} id corpus {1} id texte {2}"
+
+#: ConcordancesEditor_27
+msgid "BackToText: Text {0} is missing"
+msgstr "Retour au texte : texte {0} manquant"
+
+#: ConcordancesEditor_29
+msgid "No page found... for "
+msgstr "Page non trouvée... pour "
+
+#: ConcordancesEditor_3
+msgid "Keyword"
+msgstr "Pivot"
+
+#: ConcordancesEditor_30
+msgid "BackToText: default edition is missing"
+msgstr "Retour au texte : édition par défaut introuvable"
+
+#: ConcordancesEditor_34
+msgid "Opening the Concordance"
+msgstr "Chargement de la concordance"
+
+#: ConcordancesEditor_37
+msgid "Sorting reference column"
+msgstr "Tri des références"
+
+#: ConcordancesEditor_38
+msgid "Hide settings"
+msgstr "Cacher paramètres"
+
+#: ConcordancesEditor_39
+msgid "Show settings"
+msgstr "Afficher paramètres"
+
+#: ConcordancesEditor_4
+msgid "Right context"
+msgstr "Contexte droit"
+
+#: ConcordancesEditor_41
+msgid "Sorting left context column"
+msgstr "Tri du contexte gauche"
+
+#: ConcordancesEditor_43
+msgid "The {0} corpus has no default references: {1} "
+msgstr "Le corpus {0} n'a pas de références par défaut : {1}"
+
+#: ConcordancesEditor_45
+msgid "Sorting keyword column"
+msgstr "Tri du pivot"
+
+#: ConcordancesEditor_46
+msgid "Full text display failed: {0}"
+msgstr "** Impossible d'afficher en plein texte : {0}"
+
+#: ConcordancesEditor_48
+msgid "Sorting right context column"
+msgstr "Tri du contexte droit"
+
+#: ConcordancesEditor_5
+msgid "Concordance of <{0}> in corpus {1}"
+msgstr "Concordance de <{0}> dans le corpus {1}"
+
+#: ConcordancesEditor_50
+msgid "Opening corpus edition"
+msgstr "Ouverture de l'édition"
+
+#: ConcordancesEditor_52
+msgid "Done: one result"
+msgstr "Terminé : un résultat"
+
+#: ConcordancesEditor_55
+msgid "Opening view property dialog"
+msgstr "Ouverture de la boite de dialogue des propriétés"
+
+#: ConcordancesEditor_56
+msgid "Start computing concordance"
+msgstr "Début du calcul des concordances"
+
+#: CoocPreferencePage_0
+msgid "Score format (default 0.0000E00)"
+msgstr "Format de l'indice (par défault 0.0000E00)"
+
+#: CoocPreferencePage_1
+msgid "Minimum frequency threshold of the cooccurent"
+msgstr "Seuil minimum de fréquence du cooccurrent"
+
+#: CoocPreferencePage_2
+msgid "Minimum cooccurency count threshold"
+msgstr "Seuil minimum de fréquence de cooccurrences"
+
+#: CoocPreferencePage_3
+msgid "Minimum cooccurency score threshold"
+msgstr "Seuil minimum de l'indice de cooccurrences"
+
+#: CoocPreferencePage_5
+msgid "Cooccurrences"
+msgstr "Cooccurrences"
+
+#: CooccurrencesEditor_0
+msgid "Sort by: {0}"
+msgstr "Trier par : {0}"
+
+#: CooccurrencesEditor_10
+msgid "Cofrequency"
+msgstr "Cofréquence"
+
+#: CooccurrencesEditor_11
+msgid "Score value is not a double float"
+msgstr "La valeur de l'indice n'est pas un flottant double"
+
+#: CooccurrencesEditor_12
+msgid "Computing the cooccurrents of {0}"
+msgstr "Calcul des cooccurrents de {0}"
+
+#: CooccurrencesEditor_13
+msgid "Setting up cooccurrences process"
+msgstr "Réglage du calcul des cooccurrents"
+
+#: CooccurrencesEditor_14
+msgid "Computing cooccurrents"
+msgstr "Calcul des cooccurrents"
+
+#: CooccurrencesEditor_15
+msgid "Displaying results"
+msgstr "Affichage des résultats"
+
+#: CooccurrencesEditor_16
+msgid "Can't compute cooccurrences with no context"
+msgstr "** Impossible de calculer les cooccurrences sans contexte"
+
+#: CooccurrencesEditor_17
+msgid "Score"
+msgstr "Indice"
+
+#: CooccurrencesEditor_18
+msgid "The score threshold must be a real number != {0}"
+msgstr "Le seuil d'indice doit être un nombre réel différent de {0}"
+
+#: CooccurrencesEditor_2
+msgid "Search"
+msgstr "Calculer"
+
+#: CooccurrencesEditor_20
+msgid "Computing the cooccurrents of <{0}> in the {1} corpus"
+msgstr "Calcul des cooccurrents de <{0}> dans le corpus {1}"
+
+#: CooccurrencesEditor_23
+msgid "Done: no result."
+msgstr "Terminé : aucun résultat."
+
+#: CooccurrencesEditor_24
+msgid "Done: one result."
+msgstr "Terminé : un résultat."
+
+#: CooccurrencesEditor_27
+msgid "build queries"
+msgstr "Calcul des requêtes"
+
+#: CooccurrencesEditor_28
+msgid "get matches"
+msgstr "Calcul des retours"
+
+#: CooccurrencesEditor_29
+msgid "build line signatures"
+msgstr "Calcul des signatures de lignes"
+
+#: CooccurrencesEditor_3
+msgid "Cooccurrents properties: "
+msgstr "Propriétés des cooccurrents : "
+
+#: CooccurrencesEditor_30
+msgid "counting"
+msgstr "Comptage"
+
+#: CooccurrencesEditor_31
+msgid "build lexical table"
+msgstr "Calcul de la table lexicale"
+
+#: CooccurrencesEditor_32
+msgid "get specif scores"
+msgstr "Calcul des indices de spécificité\t"
+
+#: CooccurrencesEditor_33
+msgid "Start computing cooccurrences"
+msgstr "Début du calcul des cooccurrences"
+
+#: CooccurrencesEditor_34
+msgid "Done: {0} cooccurrents for {1} keywords"
+msgstr "Terminé : {0} cooccurrents de {1} occurrences de pivot"
+
+#: CooccurrencesEditor_4
+msgid "Thresholds: Freq ≥ "
+msgstr "Seuils : Fréq ≥ "
+
+#: CooccurrencesEditor_5
+msgid " Co-freq ≥ "
+msgstr " Co-fréq ≥ "
+
+#: CooccurrencesEditor_6
+msgid " Score ≥ "
+msgstr "Indice ≥ "
+
+#: CooccurrencesEditor_8
+msgid "Cooccurrent"
+msgstr "Cooccurrent"
+
+#: CooccurrencesEditor_9
+msgid "Mean distance"
+msgstr "Distance moyenne"
+
+#: CorporaView_0
+msgid "Corpus"
+msgstr "Corpus"
+
+#: CorporaView_1
+msgid "Error: {0}"
+msgstr "** Erreur : {0}"
+
+#: CorporaView_10
+msgid "&Refresh"
+msgstr "&Rafraîchir"
+
+#: CorporaView_11
+msgid "Refresh the view"
+msgstr "Rafraîchir l'affichage"
+
+#: CorporaView_2
+msgid "Can't retrieve {0} corpus size"
+msgstr "** Échec de récupération de la dimension du corpus {0}"
+
+#: CorporaView_3
+msgid "Error while computing the concordance: "
+msgstr "** Une erreur est survenue lors du calcul de la concordance"
+
+#: CorporaView_5
+msgid "Error while computing specificities:"
+msgstr "** Une erreur est survenue lors du calcul des spécificités"
+
+#: CorporaView_6
+msgid "Failed to open referencer editor: "
+msgstr "** Échec de l'ouverture de la fenêtre du Référenceur\t"
+
+#: CorporaView_7
+msgid "Error while computing the lexical table:"
+msgstr "** Une erreur est survenue lors du calcul du tableau lexical"
+
+#: CorporaView_9
+msgid "Error: {0} is not writeable"
+msgstr "** Erreur : impossible d'écrire dans {0}"
+
+#: CorrespondanceAnalysisEditorInput_0
+msgid "Singular values"
+msgstr "Valeurs propres"
+
+#: CorrespondanceAnalysisEditorInput_1
+msgid "Fact. plan"
+msgstr "Plan fact."
+
+#: CorrespondanceAnalysisEditorInput_10
+msgid "CA"
+msgstr "AFC"
+
+#: CorrespondanceAnalysisEditorInput_2
+msgid "Singular values histogram"
+msgstr "Histogramme des valeurs propres"
+
+#: CorrespondanceAnalysisEditorInput_25
+msgid "Q23"
+msgstr "Q23"
+
+#: CorrespondanceAnalysisEditorInput_26
+msgid "Mass"
+msgstr "Mass"
+
+#: CorrespondanceAnalysisEditorInput_27
+msgid "Dist"
+msgstr "Dist"
+
+#: CorrespondanceAnalysisEditorInput_29
+msgid "Cont"
+msgstr "Cont"
+
+#: CorrespondanceAnalysisEditorInput_3
+msgid "Correspondance analysis result cannot be null"
+msgstr "Le résultat de l'analyse des correspondances ne peut être nul "
+
+#: CorrespondanceAnalysisEditorInput_30
+msgid "Cos²"
+msgstr "Cos²"
+
+#: CorrespondanceAnalysisEditorInput_32
+msgid "c1"
+msgstr "c1"
+
+#: CorrespondanceAnalysisEditorInput_33
+msgid "c2"
+msgstr "c2"
+
+#: CorrespondanceAnalysisEditorInput_34
+msgid "c3"
+msgstr "c3"
+
+#: CorrespondanceAnalysisEditorInput_4
+msgid "Factor"
+msgstr "Facteur"
+
+#: CorrespondanceAnalysisEditorInput_46
+msgid "Q12"
+msgstr "Q12"
+
+#: CorrespondanceAnalysisEditorInput_47
+msgid "Q13"
+msgstr "Q13"
+
+#: CorrespondanceAnalysisEditorInput_8
+msgid "Rows infos "
+msgstr "Info Lignes"
+
+#: CorrespondanceAnalysisEditorInput_9
+msgid "Cols infos"
+msgstr "Info Colonnes"
+
+#: Correspondance_Analysis
+msgid "Compute Correspondance Analysis"
+msgstr "Calcul de l'analyse factorielle des correspondances"
+
+#: CreateFile_1
+msgid "New file: {0}"
+msgstr "Nouveau fichier : {0}"
+
+#: CreateFolder_1
+msgid "New folder: {0}"
+msgstr "Nouveau répertoire : {0}"
+
+#: CreateFrequencyList_0
+msgid "Processing word lexicon of corpus {0}"
+msgstr "Calcul de la liste des fréquences de formes du corpus {0}"
+
+#: CreateFrequencyList_1
+msgid "&Dictionary"
+msgstr "&Liste des fréquences"
+
+#: CreateFrequencyList_2
+msgid "Creating a lexicon."
+msgstr "Création d'une liste de fréquences"
+
+#: CreateFrequencyList_7
+msgid "Computing frequencies"
+msgstr "Calcul des fréquences"
+
+#: CreateFrequencyList_8
+msgid "Loading frequencies results..."
+msgstr "Chargement du tableau des fréquences"
+
+#: CreatePartitionDialog_0
+msgid "Create Partition"
+msgstr "Créer une Partition"
+
+#: CreatePartitionDialog_1
+msgid "Simple"
+msgstr "Simple"
+
+#: CreatePartitionDialog_11
+msgid "All property values must be assigned to a part"
+msgstr "Toutes les valeurs de la propriété doivent être attribuées à une partie"
+
+#: CreatePartitionDialog_16
+msgid "Queries cannot be left empty."
+msgstr "Les requêtes ne doivent pas être vides"
+
+#: CreatePartitionDialog_2
+msgid "&Structure:"
+msgstr "&Structure : "
+
+#: CreatePartitionDialog_20
+msgid ""
+"Cannot ask for the advanced tab when the user has selected the simple tab"
+msgstr ""
+"Impossible d'afficher l'onglet des options simples quand l'utilisateur a "
+"sélectionné l'affichage des options avancées"
+
+#: CreatePartitionDialog_3
+msgid "Assisted"
+msgstr "Assisté"
+
+#: CreatePartitionDialog_4
+msgid "&Property:"
+msgstr "&Propriété : "
+
+#: CreatePartitionDialog_5
+msgid "Advanced"
+msgstr "Avancé"
+
+#: CreatePartitionDialog_6
+msgid "&Name:"
+msgstr "&Nom : "
+
+#: CreatePartitionDialog_7
+msgid "&Part "
+msgstr "&Partie "
+
+#: CreatePartitionDialog_9
+msgid "No partition name was specified. We've generated one."
+msgstr "Un nom de partition a été généré."
+
+#: CreatePartition_0
+msgid "Creating a new partition on "
+msgstr "Création d'une partition sur "
+
+#: CreatePartition_1
+msgid "New &Partition"
+msgstr "Nouvelle &Partition"
+
+#: CreatePartition_5
+msgid "Done: {0} result(s)"
+msgstr "Terminé : {0} occurrences"
+
+#: CreatePartition_6
+msgid "Done: {0} part(s)"
+msgstr "Terminé : {0} partie(s)"
+
+#: CreatePartition_9
+msgid "Refreshing corpora..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: CreateSubCorpus_begin
+msgid "Creating a sub-corpus in the Search Engine"
+msgstr "Nouveau &Sous-corpus"
+
+#: CreateSubCorpus_create
+msgid "Creating a sub-corpus on {0}"
+msgstr "Créer un nouveau sous-corpus de {0}"
+
+#: CreateSubcorpusDialog_0
+msgid "Create subcorpus"
+msgstr "Créer un sous-corpus"
+
+#: CreateSubcorpusDialog_10
+msgid "&Query:"
+msgstr "&Requête : "
+
+#: CreateSubcorpusDialog_11
+msgid "Invalid name"
+msgstr "Nom incorrect"
+
+#: CreateSubcorpusDialog_13
+msgid "Invalid query"
+msgstr "Requête invalide"
+
+#: CreateSubcorpusDialog_14
+msgid "Query cannot be left empty."
+msgstr "Le champ Requête ne doit pas être vide."
+
+#: CreateSubcorpusDialog_6
+msgid "&Value:"
+msgstr "&Valeur : "
+
+#: CreateSubcorpusDialog_8
+msgid "No subcorpus name was specified. We've generated one."
+msgstr "Un nom de sous-corpus a été généré."
+
+#: CreateSubcorpus_1
+msgid "New &Subcorpus"
+msgstr "Nouveau &Sous-corpus"
+
+#: CreateSubcorpus_10
+msgid "Refresh corpora..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: CreateSubcorpus_7
+msgid "Compute SubCorpus on {0}. Structs: {1} & props {2}: {3}"
+msgstr "Calcul d'un sous-corpus de {0}, structure {1}, propriété {2} : {3}"
+
+#: CreateSubcorpus_8
+msgid "Done: created  "
+msgstr "Terminé : créé  "
+
+#: CreateSubcorpus_9
+msgid "Compute SubCorpus on {0}. Query: {1}"
+msgstr "Calcul d'un sous-corpus de {0} avec la requête <{1}>"
+
+#: DefineReferencePattern_0
+msgid "References pattern definition"
+msgstr "Patron des références"
+
+#: DefineReferencePattern_1
+msgid "Define &references' pattern"
+msgstr "Patron des &références"
+
+#: DefineReferencePattern_2
+msgid "Define the references' pattern"
+msgstr "Patron des références"
+
+#: DeleteInCorporaView_1
+msgid "Error while deleting subcorpus: {0}"
+msgstr "** Erreur lors de la suppression du sous-corpus {0}"
+
+#: DeleteInCorporaView_2
+msgid "Error while deleting partition: {0}"
+msgstr "** Erreur lors de la suppression de la partition {0}"
+
+#: DeleteLines_0
+msgid "The table must contain at least one line"
+msgstr "Le tableau doit comporter au moins une ligne"
+
+#: DeleteLines_1
+msgid "Are you sure ?"
+msgstr "Sûr(e) ?"
+
+#: DeleteObject_0
+msgid "Deleting {0}, continue ?"
+msgstr "Voulez-vous vraiment supprimer {0} ?"
+
+#: DeleteObject_10
+msgid "Deleted: {0}"
+msgstr "{0} supprimé"
+
+#: DeleteObject_3
+msgid "Error: delete() returned 'false'"
+msgstr "** Erreur lors de la suppression"
+
+#: DeleteObject_4
+msgid "Error while deleting {0}: {1}"
+msgstr "Erreur lors de la suppression de {0} : {1}"
+
+#: DeleteObject_5
+msgid "Deleting {0}"
+msgstr "Suppression de {0}"
+
+#: DiagnosticPreferencePage_1
+msgid "Description"
+msgstr "Description"
+
+#: DiagnosticPreferencePage_2
+msgid "Number of property's value shown"
+msgstr "Nombre de valeurs de propriété affiché"
+
+#: DiagnosticPreferencePage_3
+msgid "Order partition's parts by size"
+msgstr "Ordonner les parties par taille"
+
+#: Diagnostique_0
+msgid "Structural Units of {0}"
+msgstr "Unités de structure de {0}"
+
+#: Diagnostique_1
+msgid "Informations of {0} already exists. Do you want to compute a new one ?"
+msgstr ""
+"Les informations de {0} ont déjà été calculées. Souhaitez vous les "
+"recalculer ?"
+
+#: Diagnostique_10
+msgid "get structural units data"
+msgstr "Récupération des informations sur les unités de structure"
+
+#: Diagnostique_11
+msgid "Open editor..."
+msgstr "Ouverture de la fenêtre"
+
+#: Diagnostique_7
+msgid "create Informations"
+msgstr "Création de la fenêtre d'informations"
+
+#: Diagnostique_8
+msgid "get general data"
+msgstr "Récupération des informations générales"
+
+#: Diagnostique_9
+msgid "get lexical properties data"
+msgstr "Récupération des données sur les unités lexicales"
+
+#: DictionnaryEditor_1
+msgid ""
+"Lexicon:\n"
+"\tPartition {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Lexique :\n"
+"\tPartition {0}\n"
+"\tRequête {1}\n"
+"\tPropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: DictionnaryEditor_3
+msgid ""
+"Lexicon:\n"
+"\tCorpus {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Lexique :\n"
+"\tCorpus {0}\n"
+"\tRequête {1}\n"
+"\tPropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: ERROR_WHILE_LOADING_CONCORDANCE_LINE
+msgid "An error occurred while retrieving the concordance lines: {0}"
+msgstr ""
+"** Une erreur est survenue lors du chargement des lignes de la concordance : "
+"{0}"
+
+#: EmpantWidget_0
+msgid "Context: "
+msgstr "Contexte : "
+
+#: EmpantWidget_1
+msgid "word"
+msgstr "forme"
+
+#: EmpantWidget_2
+msgid "structure"
+msgstr "structure"
+
+#: EmpantWidget_3
+msgid "from -"
+msgstr "de -"
+
+#: EmpantWidget_4
+msgid "to -"
+msgstr "à -"
+
+#: EmpantWidget_5
+msgid "and from"
+msgstr "et de"
+
+#: EmpantWidget_6
+msgid "to"
+msgstr "à"
+
+#: EmpantWidget_7
+msgid "include the keyword structure in the count"
+msgstr "inclure la structure contenant le pivot dans les décomptes"
+
+#: Error_computing_specificities
+msgid "Error while computing specificities: {0}"
+msgstr "** Erreur lors du calcul des spécificités : {0}"
+
+#: Error_creating_partition
+msgid "Error while creating a partition: {0}"
+msgstr "** Erreur lors de la création de la partition : {0}"
+
+#: ExecuteRText_1
+msgid "Error while executing R code {0} : {1}"
+msgstr "** Erreur lors de l'exécution du script R {0} : {1}"
+
+#: ExecuteScriptGroovy_1
+msgid " does not exist"
+msgstr " n'existe pas"
+
+#: ExecuteScriptGroovy_10
+msgid "end of execution "
+msgstr "fin d'exécution "
+
+#: ExecuteScriptGroovy_4
+msgid "caused by::\n"
+msgstr "causé par :\n"
+
+#: ExecuteScriptGroovy_6
+msgid "start execution of "
+msgstr "début de l'exécution de  "
+
+#: ExecuteScriptGroovy_Error_loading
+msgid "Error while loading script : "
+msgstr "** Erreur lors du chargement du script : "
+
+#: ExecuteScriptImport_0
+msgid "Start importing"
+msgstr "Début de l'importation"
+
+#: ExecuteScriptImport_1
+msgid "Script file {0} does not exists"
+msgstr "Le fichier de script {0} n'existe pas"
+
+#: ExecuteScriptImport_19
+msgid "writing import report..."
+msgstr "Écriture du rapport d'importation"
+
+#: ExecuteScriptImport_43
+msgid "Failed to save report: {0} "
+msgstr "** Échec de la sauvegarde du rapport d'importation : {0}"
+
+#: ExecuteScriptR_0
+msgid "The script R does not exists : {0}"
+msgstr "Le fichier de script R {0} n'existe pas"
+
+#: ExecuteScriptR_1
+msgid "Error while executing R file {0}: {1}"
+msgstr "** Erreur lors de l'exécution du script R {0} : {1}"
+
+#: Exit_Menu_Label
+msgid "Exit"
+msgstr "Quitter"
+
+#: Explorer_0
+msgid "Folder {0} should not be delete"
+msgstr "Le répertoire {0} ne devrait pas être supprimé"
+
+#: Explorer_1
+msgid "^"
+msgstr "^"
+
+#: Explorer_2
+msgid "GO"
+msgstr "GO"
+
+#: Explorer_3
+msgid "TXM"
+msgstr "TXM"
+
+#: ExportCorpus_0
+msgid "Failed to export corpus: {0}"
+msgstr "** Échec de l'exportation du corpus {0}"
+
+#: ExportPreferencePage_1
+msgid "Export settings"
+msgstr "Configuration de l'export"
+
+#: ExportPreferencePage_18
+msgid "Column separator"
+msgstr "Séparateur de champs"
+
+#: ExportPreferencePage_19
+msgid "Text separator"
+msgstr "Séparateur de texte"
+
+#: ExportPreferencePage_21
+msgid "Default R graphical device"
+msgstr "Format des graphiques R par défaut"
+
+#: ExportPreferencePage_3
+msgid "Export file encoding"
+msgstr "Encodage des fichiers d'export"
+
+#: ExportPreferencePage_4
+msgid "Show export result in the text editor"
+msgstr "Afficher le résultat de l'export dans un éditeur de texte"
+
+#: ExportResult_0
+msgid "Exporting results."
+msgstr "Exportation des résultats"
+
+#: ExportResult_3
+msgid "Export: Can't create file {0}: {1} "
+msgstr "** Export : impossible de créer le fichier {0} : {1}"
+
+#: ExportResult_5
+msgid "Error: {0} is not readable"
+msgstr "** Impossible de lire {0}"
+
+#: ExportResult_6
+msgid "Failed to export result {0}: {1} "
+msgstr "** Échec d'exportation du résultat {0} : {1}"
+
+#: FAILED_TO_PARSE_OPTIONS
+msgid "Failed to parse TXM options {0}: {1}"
+msgstr "** Échec d'analyse des options de TXM {0} : {1}"
+
+#: FAILED_TO_SAVE_PREFERENCES
+msgid "Failed to save preferences: "
+msgstr "** Échec de la sauvegarde des préférences"
+
+#: FactorialMapEditor_0
+msgid "Factors: "
+msgstr "Facteurs:  "
+
+#: FactorialMapEditor_10
+msgid "Internal error: CA plan selection error"
+msgstr "** Erreur interne : erreur de sélection du plan de l'AFC"
+
+#: FactorialMapEditor_11
+msgid "Resize"
+msgstr "Redimensionner"
+
+#: FactorialMapEditor_13
+msgid "Reseting factorial map"
+msgstr "Mise à jour du plan factoriel"
+
+#: FactorialMapEditor_4
+msgid "Show: "
+msgstr "Afficher : "
+
+#: FactorialMapEditor_5
+msgid "individuals"
+msgstr "colonnes"
+
+#: FactorialMapEditor_6
+msgid "variables"
+msgstr "lignes"
+
+#: FactorialMapEditor_8
+msgid "Reloading factorial map"
+msgstr "Rechargement du plan factoriel"
+
+#: FrequencyListEditorInput_0
+msgid "Lexicon"
+msgstr "Lexique"
+
+#: FrequencyListEditorInput_1
+msgid "Pareto"
+msgstr "Pareto"
+
+#: FrequencyListEditorInput_11
+msgid "add pareto input "
+msgstr "ajouter l'entrée de pareto"
+
+#: FrequencyListEditorInput_2
+msgid "Lexicon cannot be null"
+msgstr "Le lexique ne peut être vide"
+
+#: FrequencyListEditorInput_3
+msgid "Form"
+msgstr "Forme"
+
+#: FrequencyListEditorInput_4
+msgid "Frequency"
+msgstr "Fréquence"
+
+#: FrequencyListEditorInput_5
+msgid "String"
+msgstr "Chaîne de caractères"
+
+#: FrequencyListEditorInput_6
+msgid "Integer"
+msgstr "Entier"
+
+#: FrequencyListEditorInput_7
+msgid "processing pareto graphic"
+msgstr "Calcul du graphique de Pareto"
+
+#: FrequencyListEditorInput_9
+msgid "Type"
+msgstr "Type"
+
+#: GenericMultiPageEditor_0
+msgid "page creation: "
+msgstr "Création de la page : "
+
+#: GenericMultiPageEditor_1
+msgid "The input {0} cannot be displayed."
+msgstr "** Erreur interne : Impossible d'afficher la donnée {0}."
+
+#: GenericMultiPageEditor_3
+msgid "The number of editors ({0}) and number of inputs ({1}) must be equal."
+msgstr ""
+"** Erreur interne : le nombre d'éditeurs RCP ({0}) doit correspondre au "
+"nombre d'inputs ({1})."
+
+#: GetConcordancesDialog_0
+msgid "ERROR_GetConcordancesDialog: {0}"
+msgstr "** Fenêtre de dialogue de concordances : {0}"
+
+#: GetConcordancesDialog_1
+msgid "Compute specificities"
+msgstr "Calcul des spécificités "
+
+#: GetConcordancesDialog_13
+msgid "you must select a property."
+msgstr "Vous devez sélectionner une propriété"
+
+#: GetConcordancesDialog_14
+msgid "Invalid view property"
+msgstr "Propriété invalide"
+
+#: GetConcordancesDialog_15
+msgid "you must select an view property."
+msgstr "Vous devez sélectionner une propriété"
+
+#: GetConcordancesDialog_17
+msgid "\\[.*\\]"
+msgstr "\\[.*\\]"
+
+#: GetConcordancesDialog_18
+msgid ".*\".*\""
+msgstr ".*\".*\""
+
+#: GetConcordancesDialog_4
+msgid "&View property:"
+msgstr "&Propriété : "
+
+#: GetConcordancesDialog_5
+msgid "&Left context size:"
+msgstr "Contexte &Gauche (mots) : "
+
+#: GetConcordancesDialog_6
+msgid "&Right context size:"
+msgstr "Contexte &Droit (mots) : "
+
+#: GetConcordancesDialog_7
+msgid "&Reference:"
+msgstr "&Référence : "
+
+#: GetConcordances_1
+msgid "&Concordancer"
+msgstr "&Concordance"
+
+#: GetConcordances_2
+msgid "Get concordances."
+msgstr "Récupérer les concordances."
+
+#: GetConcordances_4
+msgid "Error while computing concordances: {0}"
+msgstr "** Erreur lors du calcul des concordances : {0}"
+
+#: GraphicalLogger_0
+msgid "Error {0}"
+msgstr "** Erreur {0}"
+
+#: GraphicalLogger_1
+msgid ""
+"\n"
+"CWB search engine error ("
+msgstr ""
+"\n"
+"** Erreur du moteur de recherche CWB ("
+
+#: GraphicalLogger_2
+msgid "\n"
+msgstr "\n"
+
+#: GraphicalLogger_3
+msgid ""
+"\n"
+"Connection lost with CWB search engine"
+msgstr ""
+"\n"
+"Connexion au moteur de recherche CWB perdue"
+
+#: GraphicalLogger_4
+msgid ""
+"\n"
+"Statistical engine error"
+msgstr ""
+"\n"
+"** Erreur du moteur statistique R"
+
+#: GraphicalLogger_5
+msgid ":\n"
+msgstr ":\n"
+
+#: GroovyConsole_4
+msgid ""
+"\n"
+"Console reports an Internal error."
+msgstr ""
+"\n"
+"Erreur Interne."
+
+#: GroovyConsole_5
+msgid "The error is: "
+msgstr "L'erreur est :  "
+
+#: ImportDialog_0
+msgid "Import setup - {0}"
+msgstr "Paramètres d'importation - {0}"
+
+#: ImportDialog_1
+msgid "Source directory: "
+msgstr "Répertoire source"
+
+#: ImportDialog_13
+msgid "This directory seems to contain a binary corpus"
+msgstr "Ce répertoire semble contenir un corpus au format binaire"
+
+#: ImportDialog_14
+msgid "This computer encoding: "
+msgstr "Encodage par défaut de cet ordinateur"
+
+#: ImportDialog_16
+msgid "Guess: "
+msgstr "Deviner"
+
+#: ImportDialog_19
+msgid "This computer language: "
+msgstr "Langue par défaut de cet ordinateur"
+
+#: ImportDialog_22
+msgid "Select: "
+msgstr "Sélectionner"
+
+#: ImportDialog_23
+msgid "Options"
+msgstr "Options"
+
+#: ImportDialog_3
+msgid "- Optional parameters -"
+msgstr "- Paramètres Optionnels -"
+
+#: ImportDialog_4
+msgid "Sources characters encoding: "
+msgstr "Encodage des caractères des sources : "
+
+#: ImportDialog_5
+msgid "Main language: "
+msgstr "Langue principale : "
+
+#: ImportDialog_6
+msgid "Tokenizer parameter file: "
+msgstr "Paramètres du segmenteur lexical : "
+
+#: ImportFormEditor_0
+msgid "Warning: the import script is missing: {0}"
+msgstr "** le script d'import est manquant {0} "
+
+#: ImportSelectedText_0
+msgid "Import clipboard text "
+msgstr "Importe le texte du presse-papier"
+
+#: ImportSelectedText_1
+msgid "text"
+msgstr "texte"
+
+#: ImportSelectedText_2
+msgid "Clipboard is empty"
+msgstr "Le presse-papier est vide"
+
+#: ImportSelectedText_3
+msgid "Confirm"
+msgstr "Confirmer"
+
+#: ImportSelectedText_4
+msgid "The base and the corpus {0} will be deleted"
+msgstr "Le corpus {0} va être supprimé"
+
+#: InternalCorpusView_0
+msgid "Error while computing corpus summary"
+msgstr "** Erreur lors du calcul des informations du corpus"
+
+#: InternalCorpusView_1
+msgid "Reload"
+msgstr "Recharger"
+
+#: InternalCorpusView_2
+msgid "Error: getText: {0}"
+msgstr "** Erreur interne : getText {0}"
+
+#: Invalid_analysis_property
+msgid "Invalid property"
+msgstr "Propriété invalide"
+
+#: LanguageSwitchHandler_0
+msgid "Interface language (LOCALE) was not set"
+msgstr "La langue de l'interface (LOCALE) n'a pas été fixée"
+
+#: LanguageSwitchHandler_1
+msgid "The file {0} does not exist"
+msgstr "Le fichier {0} n'existe pas"
+
+#: LanguageSwitchHandler_3
+msgid "Choose the language"
+msgstr "Choisir la langue"
+
+#: LanguageSwitchHandler_5
+msgid "SwitchLanguage: Malformed url: {0}"
+msgstr "** Changement de langue : URL {0} mal formée"
+
+#: LanguageSwitchHandler_7
+msgid "TXM.ini : "
+msgstr "TXM.ini : "
+
+#: LexicalTableEditor_10
+msgid "Merge or Delete columns"
+msgstr "Fusion ou Suppr. de colonnes"
+
+#: LexicalTableEditor_11
+msgid "Merge cols: {0}"
+msgstr "Fusion de colonnes : {0}"
+
+#: LexicalTableEditor_12
+msgid "Delete cols: {0}"
+msgstr "Suppr. de colonnes : {0}"
+
+#: LexicalTableEditor_13
+msgid "Merge or Delete rows"
+msgstr "Fusion ou Suppr. de lignes"
+
+#: LexicalTableEditor_16
+msgid "Filtering lines"
+msgstr "Filtrage de lignes"
+
+#: LexicalTableEditor_18
+msgid "Merging lines"
+msgstr "Fusion de lignes"
+
+#: LexicalTableEditor_2
+msgid ", Fmin "
+msgstr ", Fmin "
+
+#: LexicalTableEditor_3
+msgid ", Fmax "
+msgstr ", Fmax "
+
+#: LexicalTableEditor_4
+msgid "Keep"
+msgstr "Garder"
+
+#: LexicalTableEditor_5
+msgid "keep: {0} lines and Fmin={1}"
+msgstr "Garder {0} lignes, Fmin={1}"
+
+#: LexicalTableEditor_6
+msgid "Fmin:"
+msgstr "ET Fmin "
+
+#: LexicalTableEditor_8
+msgid "Number of lines: "
+msgstr "Nombre de lignes"
+
+#: LexicalTablePreferencePage_0
+msgid "Lexical table"
+msgstr "Table lexicale"
+
+#: LexicalTablePreferencePage_1
+msgid "Lower frequency"
+msgstr "Fréquence minimale"
+
+#: LexicalTable_1
+msgid "Property: "
+msgstr "Propriété"
+
+#: LexicalTable_2
+msgid "Number of types: {0}"
+msgstr "Nombre de formes : {0}"
+
+#: LexicalTable_3
+msgid "Number of tokens: {0}"
+msgstr "Nombre d'occurrences : {0}"
+
+#: LexicalTable_4
+msgid "Token"
+msgstr "Occurrence"
+
+#: LineLabelProvider_1
+msgid "Should not happen"
+msgstr "Ne devrait pas se produire"
+
+#: LocalePreferencePage_1
+msgid "Configuration of the user interface language"
+msgstr "Configuration de la langue de l'interface utilisateur"
+
+#: LocalePreferencePage_2
+msgid "User interface language "
+msgstr "Langue de l'interface "
+
+#: MainPage_0
+msgid "MainPage"
+msgstr "Page principale"
+
+#: MainPage_1
+msgid "Main"
+msgstr "Principal"
+
+#: MainPage_11
+msgid "TXM workspace is not initialise, please restart TXM."
+msgstr ""
+"** L'espace de travail de TXM n'est pas initialisé, veuillez relancer TXM."
+
+#: MainPage_12
+msgid "yes"
+msgstr "oui"
+
+#: MainPage_13
+msgid "no"
+msgstr "non"
+
+#: MainPage_14
+msgid "Warning this corpus already exists"
+msgstr "Avertissement : ce corpus existe déjà"
+
+#: MainPage_15
+msgid "The corpus {0} already exists. Do you want to erase it ?"
+msgstr "Le corpus {0} existe déjà. Souhaitez vous supprimer l'ancien ?"
+
+#: MainPage_17
+msgid "Abandon import of {0}"
+msgstr "** Abandon de l'importation de {0}"
+
+#: MainPage_18
+msgid "Front XSLT"
+msgstr "Feuille XSL"
+
+#: MainPage_19
+msgid "Tokenizer parameters"
+msgstr "Paramètres du segmenteur lexical"
+
+#: MainPage_2
+msgid "Import parameters of {0}"
+msgstr "Paramètres d'importation de {0}"
+
+#: MainPage_20
+msgid "Main language"
+msgstr "Langue principale"
+
+#: MainPage_23
+msgid "Source characters encoding"
+msgstr "Encodage des caractères des sources"
+
+#: MainPage_28
+msgid "Error while getting encoding"
+msgstr "** Erreur lors de la récupération de l'encodage"
+
+#: MainPage_29
+msgid "Sources location"
+msgstr "Localisation des sources"
+
+#: MainPage_3
+msgid "Base infos"
+msgstr "Informations sur la base"
+
+#: MainPage_30
+msgid "From directory"
+msgstr "À partir d'un répertoire"
+
+#: MainPage_31
+msgid "From file selection"
+msgstr "À partir d'une sélection de fichiers"
+
+#: MainPage_32
+msgid "From URL list"
+msgstr "À partir d'une liste d'URL"
+
+#: MainPage_33
+msgid "from url"
+msgstr "À partir d'une URL"
+
+#: MainPage_34
+msgid "Files"
+msgstr "Fichiers"
+
+#: MainPage_4
+msgid "Base name"
+msgstr "Nom de la base"
+
+#: MainPage_6
+msgid "Import: base name must not be empty"
+msgstr "** importation : le nom de la base doit être renseigné"
+
+#: MainPage_7
+msgid "Import: No source directory has been selected"
+msgstr "** importation : aucun répertoire source n'a été indiqué"
+
+#: MainPage_8
+msgid "Import: No source files"
+msgstr "** importation : aucun fichier source"
+
+#: MergeCols_1
+msgid "New name"
+msgstr "Nouveau nom"
+
+#: MergeCols_2
+msgid "Edit the name of the new column created by the merged columns"
+msgstr "Nom de la nouvelle colonne issue de la fusion"
+
+#: MergeCols_5
+msgid "Names: "
+msgstr "Noms : "
+
+#: MergeCols_6
+msgid "End of column merge."
+msgstr "Fin de la fusion des colonnes."
+
+#: MergeDeleteDialog_0
+msgid "merge"
+msgstr "fusionner"
+
+#: MergeDeleteDialog_1
+msgid "Merge/Delete"
+msgstr "Fusionner/Supprimer"
+
+#: MergeDeleteDialog_4
+msgid "merge result name"
+msgstr "nom du résultat de la fusion"
+
+#: MergeLines_2
+msgid "Edit the name of the new line created by the merged lines"
+msgstr "Saisissez le nom de la nouvelle ligne issue de la fusion"
+
+#: MetadataPage_1
+msgid "Metadata"
+msgstr "Métadonnées"
+
+#: MetadataPage_10
+msgid "noname"
+msgstr "noname"
+
+#: MetadataPage_11
+msgid "noshortname"
+msgstr "noshortname"
+
+#: MetadataPage_12
+msgid "nolongname"
+msgstr "nolongname"
+
+#: MetadataPage_14
+msgid "Remove selected metadata definitions"
+msgstr "Supprimer les définitions de métadonnées sélectionnées"
+
+#: MetadataPage_16
+msgid "Longname"
+msgstr "Nom long"
+
+#: MetadataPage_18
+msgid "Selection"
+msgstr "Sélection"
+
+#: MetadataPage_19
+msgid "Partition"
+msgstr "Partition"
+
+#: MetadataPage_2
+msgid "Metadatas parameters"
+msgstr "Paramètres des méta"
+
+#: MetadataPage_20
+msgid "Display"
+msgstr "Affichage"
+
+#: MetadataPage_3
+msgid "Open a metadata file"
+msgstr "Ouvrir un fichier de métadonnées"
+
+#: MetadataPage_7
+msgid "No metadata file : {0}"
+msgstr "** Fichier de métadonnées {0} introuvable"
+
+#: MetadataPage_8
+msgid "Clear metadata definitions"
+msgstr "Effacer les définitions de métadonnées"
+
+#: MetadataPage_9
+msgid "Add a new metadata definition"
+msgstr "Ajouter une définition de métadonnée"
+
+#: ObjectExplorer_0
+msgid "Informations: "
+msgstr "Informations : "
+
+#: ObjectExplorer_1
+msgid "Key\t"
+msgstr "Clé\t"
+
+#: ObjectExplorer_10
+msgid "Remove property"
+msgstr "Supprimer une propriété"
+
+#: ObjectExplorer_12
+msgid "Enter a property name to remove"
+msgstr "Saisir le nom d'une propriété à supprimer"
+
+#: ObjectExplorer_15
+msgid "add a new property to all children"
+msgstr "ajouter une propriété aux descendants"
+
+#: ObjectExplorer_2
+msgid "Value"
+msgstr "Valeur"
+
+#: ObjectExplorer_21
+msgid "remove a property from the children"
+msgstr "retirer une propriété aux descendants"
+
+#: ObjectExplorer_26
+msgid "Name"
+msgstr "Nom"
+
+#: ObjectExplorer_27
+msgid "Key"
+msgstr "Clé"
+
+#: ObjectExplorer_3
+msgid "New property"
+msgstr "Nouvelle propriété"
+
+#: ObjectExplorer_4
+msgid "Property name"
+msgstr "Nom de la propriété"
+
+#: ObjectExplorer_5
+msgid "Enter a property name to add"
+msgstr "Saisir le nom d'une propriété à ajouter"
+
+#: ObjectExplorer_6
+msgid "No metadata for this Object"
+msgstr "Cet objet n'a pas de métadonnée"
+
+#: ObjectExplorer_7
+msgid "new name"
+msgstr "nouveau nom"
+
+#: ObjectExplorer_9
+msgctxt "ObjectExplorer_9"
+msgid ""
+msgstr ""
+
+#: ObjectSelectionDialog_0
+msgid "Value selector"
+msgstr "Sélecteur de valeurs"
+
+#: ObjectSelectionDialog_3
+msgid "Found {0} value(s)"
+msgstr "Trouvé {0} valeur(s)"
+
+#: ObjectSelectionDialog_5
+msgid "Wrong regular expression: {0}"
+msgstr "Expression régulière incorrecte : {0}"
+
+#: ObjectSelector_0
+msgid "Obj:"
+msgstr "Objet : "
+
+#: ObjectSelector_1
+msgid "Select"
+msgstr "Sélection"
+
+#: OpenBiblio_0
+msgid "Openbiblio error: corpus base is null."
+msgstr "** Bibliographie : corpus introuvable."
+
+#: OpenBiblio_1
+msgid "No text in base: {0}"
+msgstr "** Aucun texte {0} dans le corpus"
+
+#: OpenBiblio_2
+msgid "Select text id"
+msgstr "Sélectionner un texte"
+
+#: OpenBiblio_7
+msgid "Could not find text {0} in base {1}"
+msgstr "** Impossible de trouver le texte {0} dans le corpus {1}"
+
+#: OpenBiblio_9
+msgid "Text {0} has no bibliographic record"
+msgstr "** Le texte {0} n'a aucune entrée bibliographique"
+
+#: OpenEdition_0
+msgid "Select a part"
+msgstr "Sélectionner une partie"
+
+#: OpenEdition_1
+msgid "Failed to load edition of {0}"
+msgstr "** Échec de chargement de l'édition de {0}"
+
+#: OpenEdition_2
+msgid "Error while loading the edition of the corpus {0}"
+msgstr "** Erreur lors du chargement de l'édition du corpus {0}"
+
+#: OpenEdition_4
+msgid "OpenEdition error : corpus base is null."
+msgstr "** Bibliographie : corpus corrompu"
+
+#: OpenEmptyEditor_2
+msgid "Could not find directory: {0}"
+msgstr "** Bibliographie : répertoire {0} introuvable"
+
+#: OpenGraph_8
+msgid "Can't open graphic {0}"
+msgstr "** Impossible d'ouvrir le graphique {0}"
+
+#: OpenParaBrowser_0
+msgid "Opening the parabrowser"
+msgstr "Ouverture du Navigateur//"
+
+#: OpenSVGGraph_0
+msgid "SVG Graphic"
+msgstr "Graphique SVG "
+
+#: OpenTXMUserPreferences_0
+msgid "Default settings"
+msgstr "Paramètres par défaut"
+
+#: OpenURI_0
+msgid "Desktop is not supported (fatal)"
+msgstr "** OpenURL : Bureau non supporté"
+
+#: OpenURI_1
+msgid "Error while oponing file {0}"
+msgstr "** Erreur lors de l'ouverture du fichier {0}"
+
+#: ParaBrowserEditor_11
+msgid "get next({0}) struct {1} paraid {2} value {3}"
+msgstr "ParaBrowser : get next({0}) struct {1} paraid {2} value {3}"
+
+#: ParaBrowserEditor_18
+msgid "-MOVE to "
+msgstr "N/A_-MOVE to "
+
+#: ParaBrowserEditor_19
+msgid "-Don't MOVE !!!!! NEXT is "
+msgstr "N/A_-Don't MOVE !!!!! NEXT is "
+
+#: ParaBrowserEditor_21
+msgid "_"
+msgstr "N/A__"
+
+#: ParaBrowserEditor_22
+msgid "Open Parabrowser"
+msgstr "Ouvrir le Navigateur//"
+
+#: ParaBrowserEditor_3
+msgid "Ref: "
+msgstr "Réf : "
+
+#: ParaBrowserEditor_4
+msgid "Références"
+msgstr "Références"
+
+#: ParaBrowserEditor_5
+msgid "Structure"
+msgstr "Structure"
+
+#: ParaBrowserEditor_9
+msgid "Ref: {0} : {1}"
+msgstr "Réf : {0} : {1}"
+
+#: PartitionComposer_0
+msgid "Structure: "
+msgstr "Structure : "
+
+#: PartitionComposer_10
+msgid "Add selected values: {0} "
+msgstr "Ajouter les valeurs sélectionnés : {0}"
+
+#: PartitionComposer_11
+msgid "Remove"
+msgstr "Supprimer"
+
+#: PartitionComposer_12
+msgid "Rmv selected values: {0}"
+msgstr "Supprimer les valeurs sélectionnées : {0}"
+
+#: PartitionComposer_2
+msgid "Select values to assign: "
+msgstr "Sélectionner les valeurs à affecter : "
+
+#: PartitionComposer_3
+msgid "New part"
+msgstr "Nouvelle partie"
+
+#: PartitionComposer_4
+msgid "add part"
+msgstr "ajouter une partie"
+
+#: PartitionComposer_5
+msgid "Part "
+msgstr "Partie"
+
+#: PartitionComposer_6
+msgid "Rmv all the parts"
+msgstr "Supp. toutes les parties"
+
+#: PartitionComposer_8
+msgid "Title: "
+msgstr "Titre : "
+
+#: PartitionComposer_9
+msgid "Assign"
+msgstr "Affecter"
+
+#: PartsSize_10
+msgid "Dimensions of partition {0} of corpus {1} ordered by size"
+msgstr "Dimensions de la partition {0} du corpus {1} ordonnées par taille"
+
+#: PartsSize_18
+msgid "Dimensions: {0}"
+msgstr "Dimensions : {0}"
+
+#: Preferences_Menu_Label
+msgid "Preferences"
+msgstr "Préférences"
+
+#: ProgressionPreferencePage_2
+msgid "Progression"
+msgstr "Progression"
+
+#: ProgressionPreferencePage_3
+msgid "Default graph type is cumulative"
+msgstr "Graphe de progression cumulatif"
+
+#: ProgressionPreferencePage_4
+msgid "Curves are Monochrome"
+msgstr "Traits N/B"
+
+#: ProgressionPreferencePage_5
+msgid "Curves have the same style"
+msgstr "Traits de même style"
+
+#: ProgressionPreferencePage_6
+msgid "Repeat the values of the structure properties"
+msgstr "Répéter les valeurs de propriétés de structures"
+
+#: ProgressionPreferencePage_7
+msgid "Bande size multiplier"
+msgstr "Échelle des limites de structures"
+
+#: PropertiesSelector_0
+msgid "Can't load properties from corpus {0} (reason: {1})"
+msgstr "Impossible de charger les propriétés du corpus {0} ({1})"
+
+#: PropertiesSelector_1
+msgid "Properties: "
+msgstr "Propriétés : "
+
+#: PropertiesSelector_2
+msgid "Edit"
+msgstr "Editer"
+
+#: PropertiesSelector_3
+msgid " (reason:"
+msgstr " (cause : "
+
+#: PropertiesSelector_4
+msgid ")"
+msgstr ")"
+
+#: PropertySelector_0
+msgid "Select a property"
+msgstr "Sélectionner une propriété"
+
+#: QueriesView_1
+msgid "Export all"
+msgstr "Tout exporter"
+
+#: QueriesView_10
+msgid "Error with element {0}"
+msgstr "erreur : "
+
+#: QueriesView_5
+msgid "Queries:\n"
+msgstr "Requêtes :\n"
+
+#: QueryAssistDialog_0
+msgid "Query Assistant"
+msgstr "Assistant de Requête"
+
+#: QueryAssistDialog_1
+msgid "Add a word"
+msgstr "Mot supplémentaire"
+
+#: QueryAssistDialog_10
+msgid "equals to"
+msgstr "correspond à"
+
+#: QueryAssistDialog_11
+msgid "starts with"
+msgstr "commence par"
+
+#: QueryAssistDialog_12
+msgid "ends with"
+msgstr "se termine par"
+
+#: QueryAssistDialog_13
+msgid "contains"
+msgstr "contient"
+
+#: QueryAssistDialog_2
+msgid "I'm looking for one word"
+msgstr "Je recherche : "
+
+#: QueryAssistDialog_3
+msgid "I'm looking for {0} words"
+msgstr " mot"
+
+#: QueryAssistDialog_32
+msgid "followed by "
+msgstr "suivi de "
+
+#: QueryAssistDialog_33
+msgid "separated by at least 0 word"
+msgstr "séparé d'au moins 0 mot"
+
+#: QueryAssistDialog_34
+msgid "separated by at least 1 word"
+msgstr "séparé d'au moins 1 mot"
+
+#: QueryAssistDialog_8
+msgid "- Word n° {0} with its property "
+msgstr "- Mot n°"
+
+#: RPreferencePage_1
+msgid "R Configuration"
+msgstr "Configuration de R"
+
+#: RPreferencePage_2
+msgid "Path to R binary"
+msgstr "Chemin vers l'&exécutable de R"
+
+#: RPreferencePage_3
+msgid "Remote connexion"
+msgstr "Connexion distante"
+
+#: RPreferencePage_4
+msgid "Server adress"
+msgstr "Adresse du serveur"
+
+#: RPreferencePage_5
+msgid "user"
+msgstr "Utilisateur"
+
+#: RPreferencePage_6
+msgid "password"
+msgstr "Mot de passe"
+
+#: RPreferencePage_7
+msgid "Use file based R data transfert"
+msgstr "Utiliser la transmission de données R par fichier"
+
+#: RVariablesView_1
+msgid "Refresh variables"
+msgstr "Rafraîchir les variables"
+
+#: RVariablesView_2
+msgid "Show eval logs"
+msgstr "Afficher le journal des évaluations"
+
+#: RVariablesView_9
+msgid "\"TXM name {0} >> R name {1} "
+msgstr "nom TXM {0} >> nom R {1}"
+
+#: ReferencerEditor_0
+msgid "Compute references of <{0}> in {1} with property {2} and pattern {3}"
+msgstr ""
+"Calcul des références de <{0}> dans {1} avec la propriété {2} et le patron "
+"{3}"
+
+#: ReferencerEditor_10
+msgid "Get indexes"
+msgstr "Récupération des index"
+
+#: ReferencerEditor_11
+msgid "References"
+msgstr "Références"
+
+#: ReferencerEditor_12
+msgid "Group positions by indexes"
+msgstr "Regroupement des positions par index"
+
+#: ReferencerEditor_13
+msgid "Refresh ui"
+msgstr "Mise à jour de l'interface"
+
+#: ReferencerEditor_17
+msgid "Showing first result page"
+msgstr "Affichage de la première page de résultats"
+
+#: ReferencerEditor_19
+msgid "Showing last result page"
+msgstr "Affichage de la dernière page de résultats"
+
+#: ReferencerEditor_21
+msgid "Showing next result page"
+msgstr "Affichage de la page de résultats suivante "
+
+#: ReferencerEditor_23
+msgid "Showing previous result page"
+msgstr "Affichage de la page de résultats précédente "
+
+#: ReferencerEditor_25
+msgid "Opening concordances"
+msgstr "Ouverture de la concordance"
+
+#: ReferencerEditor_5
+msgid "Computing references of {0}"
+msgstr "Calcul des références de {0}"
+
+#: ReferencerEditor_6
+msgid "Reference pattern "
+msgstr "Patron des références "
+
+#: ReferencerEditor_7
+msgid "No results"
+msgstr "Aucun résultat"
+
+#: ReferencerEditor_8
+msgid "Get matches"
+msgstr "N/A_Get matches"
+
+#: ReferencerEditor_9
+msgid "Units"
+msgstr "Unités"
+
+#: ReferencerPreferencePage_2
+msgid "Referencer"
+msgstr "Références"
+
+#: ReferencerPreferencePage_3
+msgid "Order references by frequency"
+msgstr "Ordonner les références par fréquence"
+
+#: ProgressionDialog_0
+msgid "Progression Parameters"
+msgstr "Paramètres de la progression "
+
+#: ProgressionDialog_1
+msgid "Graph type: "
+msgstr "Type de graphe : "
+
+#: ProgressionDialog_10
+msgid "Progression dialog : wrong regular expression: "
+msgstr "Progression : mauvaise expression régulière : "
+
+#: ProgressionDialog_11
+msgid "Bandewidth multiplier :"
+msgstr "Échelle des bandeaux"
+
+#: ProgressionDialog_13
+msgid "Display options"
+msgstr "Options d'affichage"
+
+#: ProgressionDialog_14
+msgid "Multiple line style"
+msgstr "N/A_Multiple line style"
+
+#: ProgressionDialog_15
+msgid "Repeat same values"
+msgstr "Répéter les valeurs identiques"
+
+#: ProgressionDialog_16
+msgid "Monochrome"
+msgstr "N/B"
+
+#: ProgressionDialog_17
+msgid "Bande multiplier error : "
+msgstr "N/A_Bande multiplier error : "
+
+#: ProgressionDialog_2
+msgid "cumulative"
+msgstr "cumulatif"
+
+#: ProgressionDialog_3
+msgid "density"
+msgstr "densité"
+
+#: ProgressionDialog_4
+msgid "Structural Unit: "
+msgstr "Unité structurelle : "
+
+#: ProgressionDialog_5
+msgid "delete"
+msgstr "supprimer"
+
+#: ProgressionDialog_7
+msgid "Regex: "
+msgstr "Exp. Rég. : "
+
+#: ProgressionDialog_8
+msgid "Queries: "
+msgstr "Requêtes : "
+
+#: ProgressionDialog_9
+msgid "add"
+msgstr "ajouter"
+
+#: ProgressionEditorInput_0
+msgid "PROGRESSION NAME"
+msgstr "PROGRESSION NAME"
+
+#: RestartTXM_1
+msgid "Restart TXM"
+msgstr "Redémarrer TXM"
+
+#: RunGroovyScript_0
+msgid "Script execution"
+msgstr "Execution du script"
+
+#: RunGroovyScript_1
+msgid "&Run script"
+msgstr "&Exécuter un script"
+
+#: RunGroovyScript_2
+msgid "Run script"
+msgstr "Exécuter un script"
+
+#: RunGroovyScript_3
+msgid "*.groovy"
+msgstr "*.groovy"
+
+#: RunGroovyScript_4
+msgid "Error while opening groovy script: {0}"
+msgstr "Erreur lors de l'ouverture du script groovy : {0}"
+
+#: RunGroovyScript_5
+msgid "Error while loading script: {0}"
+msgstr "** Erreur lors du chargement du script groovy : {0}"
+
+#: RunGroovyScript_6
+msgid "Error while parsing script: {0}"
+msgstr "** Erreur lors de l'analyse du script groovy : {0}"
+
+#: RunGroovyScript_8
+msgid "Error while running script: {0}"
+msgstr "** Erreur lors de l'exécution du script groovy : {0}"
+
+#: RunGroovyScript_9
+msgid "Execute script"
+msgstr "Execution du script"
+
+#: SVGGraphicEditorInput_0
+msgid "SVG graphic "
+msgstr "graphique SVG "
+
+#: SVGGraphicEditor_1
+msgid "Cannot draw a graphic with the information provided."
+msgstr "Impossible d'afficher un graphique avec les informations fournies."
+
+#: SVGPanel_0
+msgid "Center"
+msgstr "N/A_Center"
+
+#: ScriptPreferencePage_0
+msgid "The next session number"
+msgstr "N/A_The next session number"
+
+#: ScriptPreferencePage_2
+msgid "Groovy Scripts configuration"
+msgstr "Paramètres des scripts Groovy"
+
+#: ScriptPreferencePage_3
+msgid "&Root folder"
+msgstr "Dossier &racine"
+
+#: ScriptPreferencePage_4
+msgid "&Current folder"
+msgstr "Dossier &courrant"
+
+#: SetContextSize_1
+msgid "Set &contexts' size"
+msgstr "Définir la taille des &contextes"
+
+#: SetContextSize_2
+msgid "Set the contexts size"
+msgstr "Définir la taille des contextes"
+
+#: SetContextSize_3
+msgid "Left context size"
+msgstr "Taille du contexte gauche"
+
+#: SetContextSize_4
+msgid "Right context size"
+msgstr "Taille du contexte droit"
+
+#: SetLineNumber_0
+msgid "Lines per page"
+msgstr "Lignes par page"
+
+#: SetLineNumber_1
+msgid "Line nÃÂ°"
+msgstr "N° de ligne"
+
+#: SetSortProperty_1
+msgid "Set &Sort property"
+msgstr "Définir la propriété de &Tri"
+
+#: SetSortProperty_2
+msgid "Set the sort property"
+msgstr "Définir la propriété de tri"
+
+#: SetSortProperty_3
+msgid "Sort property"
+msgstr "Propriété de tri"
+
+#: ShowSelected_0
+msgid "informations: \n"
+msgstr "informations : \n"
+
+#: ShowSelected_4
+msgid "Set the 'LANG' property"
+msgstr "Régler la propriété 'LANG'"
+
+#: ShowSelected_5
+msgid "ISO-638 code for the 'LANG' property"
+msgstr "Code ISO-638 de la propriété 'LANG'"
+
+#: ShowSvgHelp_0
+msgid "SVG controls"
+msgstr "Commandes SVG"
+
+#: ShowSvgHelp_1
+msgid "\tPan : Shif t+Left Mouse+drag\n"
+msgstr "Translation : Shift + Click Gauche + Glisser\n"
+
+#: ShowSvgHelp_2
+msgid "\tZoom in&out : Shif t+Right Mouse+drag\n"
+msgstr "Zoom +/- : Shift + Click Droit + Glisser\n"
+
+#: ShowSvgHelp_3
+msgid "\tZoom to selection : Ctrl+Left Mouse+drag\n"
+msgstr "Zoomer sur la sélection : Ctrl + Click Gauche + Glisser\n"
+
+#: ShowSvgHelp_4
+msgid "\tRotate : Ctrl+Right Mouse+drag\n"
+msgstr "Rotation : Ctrl + Click Droit + Glisser\n"
+
+#: ShowSvgHelp_5
+msgid "\tReset the view : F5"
+msgstr "État initial : F5"
+
+#: SingularValuesEditor_0
+msgid "wrong input"
+msgstr "Entrée erronée"
+
+#: SortPropertySelectionDialog_0
+msgctxt "SortPropertySelectionDialog_0"
+msgid "Select sort properties"
+msgstr "Sélectionner les propriétés de tri"
+
+#: SortPropertySelection_0
+msgctxt "SortPropertySelection_0"
+msgid "Select sort properties"
+msgstr "Sélectionner les propriétés de tri"
+
+#: SpecificitiesPreferencePage_1
+msgid "Monochrome graph"
+msgstr "Graphique N/B"
+
+#: SpecificitiesPreferencePage_2
+msgid "Specificities"
+msgstr "Spécificités"
+
+#: SpecificitiesPreferencePage_4
+msgid "Group graphic bars by line entry"
+msgstr "N/A_Group graphic bars by line entry"
+
+#: SpecificitiesPreferencePage_5
+msgid "Graphic : draw curves"
+msgstr "Graphique : dessiner les courbes"
+
+#: SpecificitiesPreferencePage_6
+msgid "Graphic : draw bars"
+msgstr "Graphique : dessiner les barres"
+
+#: SpecificitiesResultEditorInput_0
+msgid "Values"
+msgstr "Valeurs"
+
+#: SpecificitiesResultEditorInput_1
+msgid "Graphic"
+msgstr "Graphique"
+
+#: SpecificitiesResultEditorInput_11
+msgid "Double"
+msgstr "Flottant"
+
+#: SpecificitiesResultEditorInput_2
+msgid "Cannot compute simultaneously part and form specificities"
+msgstr ""
+"On ne peut pas calculer à la fois les spécificités d'une partie et des "
+"formes"
+
+#: SpecificitiesResultEditorInput_5
+msgid "Total frequency"
+msgstr "Fréquence totale"
+
+#: SpecificitiesResultEditorInput_6
+msgid "Sub frequency"
+msgstr "Sous-fréquence"
+
+#: SpecificitiesResultEditorInput_7
+msgid "Specificities index"
+msgstr "Index des spécificités"
+
+#: SpecificitiesTableEditor_0
+msgid "Unable to compute the specificities"
+msgstr "Le calcul des spécificités a échoué"
+
+#: SpecificitiesTableEditor_1
+msgid "Error while sorting specificities: {0}"
+msgstr "** Erreur lors du tri des spécificités"
+
+#: SpecificitiesTableEditor_11
+msgid " T"
+msgstr " T"
+
+#: SpecificitiesTableEditor_16
+msgid "Graph: "
+msgstr "Graphique : "
+
+#: SpecificitiesTableEditor_17
+msgid "Opening the specificities table"
+msgstr "Chargement de la table des spécificités"
+
+#: SpecificitiesTableEditor_3
+msgid "Types"
+msgstr "Types"
+
+#: SpecificitiesTableEditor_5
+msgid "Unexpected error in the statistical engine R {0}"
+msgstr "Erreur inattendue dans le moteur statistique R"
+
+#: SpecificitiesTableEditor_8
+msgid "Compute the histogram of the lines selected"
+msgstr "Calculer le diagramme en bâtons des lignes sélectionnées"
+
+#: Structure_field_not_empty
+msgid "structure field is mandatory."
+msgstr "Le champ structure ne doit pas être vide."
+
+#: Submit_0
+msgid "Save script"
+msgstr "Enregistrer"
+
+#: Submit_1
+msgid "Error during R data transfert"
+msgstr "Erreur de transfert des données vers R"
+
+#: TXMCqpServerWatcher_0
+msgid "CQP server is down"
+msgstr "Le moteur de recherche est arrêté"
+
+#: TXMCqpServerWatcher_1
+msgid "Please wait for searchengine to restart..."
+msgstr "Veuillez attendre que le moteur de recherche ai redémarré..."
+
+#: TXMRServeWatcher_0
+msgid "StatEngine server is down"
+msgstr "Le moteur statistique est arrêté"
+
+#: TXMRServeWatcher_1
+msgid "Please wait for StatEngine to restart..."
+msgstr "Veuillez attendre que le moteur statistique ai redémarré..."
+
+#: TXMRServeWatcher_2
+msgid "Ok"
+msgstr "Ok"
+
+#: TXMRServeWatcher_3
+msgid "Reloading corpora view..."
+msgstr "Rechargement de la vue des corpus..."
+
+#: TXMRServeWatcher_4
+msgid "Please wait..."
+msgstr "Veuillez patienter..."
+
+#: TablableVector_0
+msgid "The two arrays must have the same size."
+msgstr "Les deux tables doivent être de même taille."
+
+#: TableEditor_0
+msgid "Cannot draw a table with the information provided: {0}"
+msgstr "Impossible d'afficher un tableau avec les informations fournies"
+
+#: TableSorter_0
+msgid "Column index is too big."
+msgstr "Le numéro de colonne est trop grand."
+
+#: TestCreateSVGGraphic_1
+msgid "Test new &SVG graphic"
+msgstr "Test nouveau graphique &SVG"
+
+#: TestCreateSVGGraphic_2
+msgid "Test the creation of a new SVG graphic."
+msgstr "Test de création de nouveau graphique SVG"
+
+#: TestCreateSVGGraphic_4
+msgid "library(grDevices)"
+msgstr "Librairie(grDevices)"
+
+#: TestCreateSVGGraphic_5
+msgid "data(iris); attach(iris)"
+msgstr "données(iris); attaché(iris)"
+
+#: TestCreateSVGGraphic_8
+msgid "Can't open svg graphics device:\n"
+msgstr "Ne peut ouvrir le device svg graphics :\n"
+
+#: TextometriePreferencePage_1
+msgid "TXM Settings"
+msgstr "Préférences de TXM"
+
+#: TreeTaggerPreferencePage_0
+msgid "TreeTagger"
+msgstr "TreeTagger"
+
+#: TreeTaggerPreferencePage_1
+msgid "Path to treetagger install directory"
+msgstr "Chemin du répertoire d'installation de TreeTagger"
+
+#: TreeTaggerPreferencePage_2
+msgid "Path to treetagger models directory"
+msgstr "Chemin du répertoire de modèles linguistiques de TreeTagger"
+
+#: TxmBrowser_0
+msgid "Beginning"
+msgstr "Début"
+
+#: TxmBrowser_1
+msgid "firstPage "
+msgstr "première page "
+
+#: TxmBrowser_10
+msgid ""
+"Could not launch the internal web browser. You must set that parameter in "
+"the preferences, menu: General>WebNavigator"
+msgstr ""
+"Impossible de lancer le navigateur interne. Vous devez régler ce paramètre "
+"dans les préférences, au menu : Général / Navigateur web"
+
+#: TxmBrowser_2
+msgid "lastPage"
+msgstr "dernière page"
+
+#: TxmBrowser_3
+msgid "previousPage"
+msgstr "page précédente"
+
+#: TxmBrowser_4
+msgid "nextPage"
+msgstr "page suivante"
+
+#: TxmBrowser_5
+msgid "Previous page"
+msgstr "page précédente"
+
+#: TxmBrowser_6
+msgid "Next page"
+msgstr "page suivante"
+
+#: TxmBrowser_7
+msgid "End"
+msgstr "Fin"
+
+#: TxmBrowser_8
+msgid "Next text"
+msgstr "prochain texte"
+
+#: TxmBrowser_9
+msgid "Previous text"
+msgstr "texte précedent"
+
+#: UserPreferencePage_0
+msgid "User page"
+msgstr "Page Utilisateur"
+
+#: UserPreferencePage_3
+msgid "Do not confirm to delete an object"
+msgstr "Pas de confirmation pour supprimer un objet"
+
+#: ViewPropertySelectionDialog_0
+msgid "Select view properties"
+msgstr "Sélectionner les propriétés"
+
+#: ViewPropertySelection_0
+msgid "Select View properties"
+msgstr "Sélectionner les propriétés"
+
+#: VocabularyEditor_0
+msgid "Index : query is empty"
+msgstr "La requête est vide"
+
+#: VocabularyEditor_1
+msgid "Failed to compute index"
+msgstr "Échec du calcul de l'index"
+
+#: VocabularyEditor_17
+msgid ""
+"Index:\n"
+"\tPartition {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Index:\n"
+"\tPartition {0}\n"
+"\tRequête {1}\n"
+"\tpropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: VocabularyEditor_18
+msgid ""
+"Index:\n"
+"\tCorpus {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Index:\n"
+"\tCorpus {0}\n"
+"\tRequête {1}\n"
+"\tpropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: VocabularyEditor_2
+msgid "Index of <{0}> with property: {1} in the corpus: {2}"
+msgstr "Index de <{0}> avec la propriété {1} dans le corpus {2}"
+
+#: VocabularyEditor_20
+msgid "Index of <{0}> with property: {1} in the partition: {2}"
+msgstr "Index de <{0}> avec la propriété {1} dans la partition {2}"
+
+#: VocabularyEditor_22
+msgid "Couldn't initialize Index table"
+msgstr "Impossible d'initialiser le tableau d'index"
+
+#: VocabularyEditor_25
+msgid ", fmin "
+msgstr ", fmin "
+
+#: VocabularyEditor_26
+msgid ", fmax "
+msgstr ", fmax "
+
+#: VocabularyEditor_27
+msgid "t "
+msgstr "t "
+
+#: VocabularyEditor_28
+msgid ", v "
+msgstr ", v "
+
+#: VocabularyEditor_29
+msgid "Opening the Index results"
+msgstr "Ouverture du tableau d'index"
+
+#: VocabularyEditor_3
+msgid "Query: "
+msgstr "Requête : "
+
+#: VocabularyEditor_31
+msgid "Done: no result"
+msgstr "Aucun résultat"
+
+#: VocabularyEditor_33
+msgid "Computing index"
+msgstr "N/A_Computing index"
+
+#: VocabularyEditor_34
+msgid "\tFmin: "
+msgstr "\tFmin: "
+
+#: VocabularyEditor_36
+msgid "Sorting column"
+msgstr "Colonne à trier"
+
+#: VocabularyEditor_37
+msgid "Sort done."
+msgstr "Tri terminé."
+
+#: VocabularyEditor_4
+msgid "&Search"
+msgstr "&Chercher"
+
+#: VocabularyEditor_5
+msgid "Fmin: "
+msgstr "Fmin : "
+
+#: VocabularyEditor_6
+msgid "Fmax: "
+msgstr "Fmax : "
+
+#: VocabularyEditor_7
+msgid "Vmax: "
+msgstr "Vmax : "
+
+#: VocabularyEditor_8
+msgid "Page size: "
+msgstr "Résultats par page : "
+
+#: VocabularyEditor_9
+msgid "Thresholds: "
+msgstr "Seuils : "
+
+#: VocabularyToCooccurrence_0
+msgid "Error while linking Index to Cooccurences"
+msgstr "** Erreur lors de la liaison entre l'Index et les Cooccurrences"
+
+#: VocabularyToLexicalTable_0
+msgid "Cannot create a Lexical Table based on an Index created with a Corpus"
+msgstr ""
+"Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"Corpus"
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AdapterFactory.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AdapterFactory.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AdapterFactory.java	(revision 122)
@@ -0,0 +1,601 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.core.runtime.IAdapterFactory;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.internal.InternalView;
+import org.txm.functions.intertextualdistance.InterTextDistance;
+import org.txm.functions.progression.Progression;
+//import org.txm.functions.queryindex.QueryIndex;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+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.Lexicon;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+import org.txm.stat.data.LexicalTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A factory for creating Adapter objects.
+ * 
+ * @author jmague
+ */
+public class AdapterFactory implements IAdapterFactory {
+	
+	private static boolean firstCorpusDiag = true;
+	
+	private HashMap<Class, IWorkbenchAdapter> externalAdapters = new HashMap<Class, IWorkbenchAdapter>();
+	
+	/** The corpus manager adapter. */
+	private IWorkbenchAdapter corpusManagerAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object corpusManager) {
+			Object[] children = null;
+			try {
+				List<MainCorpus> corpora = new ArrayList<MainCorpus>(CorpusManager.getCorpusManager().getCorpora());
+				Collections.sort(corpora, new Comparator<MainCorpus>() {
+					@Override
+					public int compare(MainCorpus o1, MainCorpus o2) {
+						return o1.getName().compareTo(o2.getName());
+					}
+				});
+				
+				// check if each corpus has a Base
+				if (firstCorpusDiag) {	
+					firstCorpusDiag = false;
+					for (MainCorpus corpus : corpora) {
+						if (corpus.getBase() == null)
+							System.out.println(NLS.bind(Messages.AdapterFactory_0, corpus));
+					}
+				}
+				children = corpora.toArray();
+
+			} catch (CqiClientException e) {
+				return new Object[0];
+			}
+			return children;
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object corpusManager) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		@Override
+		public String getLabel(Object corpusManager) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		@Override
+		public Object getParent(Object corpusManager) {
+			return null;
+		}
+	};
+
+	/** The corpus adapter. */
+	private IWorkbenchAdapter corpusAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object corpus) {
+			List<Partition> partitions = ((Corpus) corpus).getPartitions();
+			List<Subcorpus> subcorpora = ((Corpus) corpus).getSubcorpora();
+			List<Object> results = ((Corpus) corpus).getResults();
+			for (int i = 0; i < results.size(); i++) {
+				Object result = results.get(i);
+				
+				// remove "id" Lexicon from displayed results
+				if (result instanceof Lexicon) {
+					Lexicon lex = (Lexicon) result;
+					if (lex.getProperty().getName().equals("id")) { //$NON-NLS-1$
+						results.remove(result);
+						i--;
+					}
+				}
+			}
+			List<Object> children = new ArrayList<Object>(partitions);
+			children.addAll(subcorpora);
+			children.addAll(results);
+			return children.toArray();
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			ImageDescriptor imageDescriptor = AbstractUIPlugin
+			.imageDescriptorFromPlugin(Application.PLUGIN_ID,
+					IImageKeys.CORPUS);
+			return imageDescriptor;
+		}
+
+		@Override
+		public String getLabel(Object corpus) {
+			if (corpus instanceof MainCorpus) {
+				return ((MainCorpus) corpus).getNameForCorporaView();
+			} else {
+				return ((Corpus) corpus).getName();
+			}
+		}
+
+		@Override
+		public Object getParent(Object corpus) {
+			if (corpus instanceof Subcorpus)
+				return ((Subcorpus) corpus).getMotherSubcorpus();
+			else
+				return CorpusManager.getCorpusManager();
+		}
+	};
+
+	/** The partition adapter. */
+	private IWorkbenchAdapter partitionAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object partition) {
+			List<Object> children = ((Partition) partition).getResults();
+			// System.out.println("PARTITION RESULTS "+children);
+			return children.toArray();
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.PARTITION);
+		}
+
+		@Override
+		public String getLabel(Object partition) {
+			return "" + ((Partition) partition).getName(); //$NON-NLS-1$
+		}
+
+		@Override
+		public Object getParent(Object partition) {
+			return ((Partition) partition).getCorpus();
+		}
+	};
+		
+//	/** The partition adapter. */
+//	private IWorkbenchAdapter queryIndexAdapter = new IWorkbenchAdapter() {
+//		@Override
+//		public Object[] getChildren(Object obj) {
+//			return new Object[0];
+//		}
+//
+//		@Override
+//		public ImageDescriptor getImageDescriptor(Object object) {
+//			return AbstractUIPlugin.imageDescriptorFromPlugin(
+//					Application.PLUGIN_ID, IImageKeys.QUERYINDEX);
+//		}
+//
+//		@Override
+//		public String getLabel(Object qindex) {
+//			return "" + ((QueryIndex) qindex).getName(); //$NON-NLS-1$
+//		}
+//
+//		@Override
+//		public Object getParent(Object qindex) {
+//			return ((QueryIndex) qindex).getParent();
+//		}
+//	};
+
+	/** The lexical table adapter. */
+	private IWorkbenchAdapter lexicalTableAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object lexicaltable) {
+			// List<Object> children = ((LexicalTable)
+			// lexicaltable).getResults();
+			// System.out.println("PARTITION RESULTS "+children);
+			return ((LexicalTable)lexicaltable).getResults().toArray();
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.LEXICALTABLE);
+		}
+
+		@Override
+		public String getLabel(Object lexicaltable) {
+			return "" + ((LexicalTable) lexicaltable).getProperty(); //$NON-NLS-1$
+		}
+
+		@Override
+		public Object getParent(Object lexicaltable) {
+			return ((LexicalTable) lexicaltable).getPartition();
+		}
+	};
+
+	/** The Progression adapter. */
+	private IWorkbenchAdapter ProgressionAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object progression) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_PROGRESSION);
+		}
+
+		@Override
+		public String getLabel(Object progression) {
+			return ((Progression) progression).getDetails(); 
+		}
+
+		@Override
+		public Object getParent(Object progression) {
+			return ((Progression) progression).getCorpus();
+		}
+	};
+	
+	/** The Progression adapter. */
+	private IWorkbenchAdapter interTextDistAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object dist) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_INTERTEXTDIST);
+		}
+
+		@Override
+		public String getLabel(Object dist) {
+			return ((InterTextDistance) dist).getLabel(); 
+		}
+
+		@Override
+		public Object getParent(Object dist) {
+			return ((InterTextDistance) dist).getTable(); 
+		}
+	};
+	
+	/** The InternalView adapter. */
+	private IWorkbenchAdapter InternalViewAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object internal) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_INTERNALVIEW);
+		}
+
+		@Override
+		public String getLabel(Object internalView) {
+			return ((InternalView) internalView).getDetails(); 
+		}
+
+		@Override
+		public Object getParent(Object internalView) {
+			return ((InternalView) internalView).getCorpus();
+		}
+	};
+
+	/** The CAH adapter. */
+	private IWorkbenchAdapter CAHAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object cah) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_CAH);
+		}
+
+		@Override
+		public String getLabel(Object cah) {
+			return "" + ((CAH) cah).getName(); //$NON-NLS-1$
+		}
+
+		@Override
+		public Object getParent(Object cah) {
+			return ((CAH) cah).getParent();
+		}
+	};
+
+	/** The Cooccurrence adapter. */
+	private IWorkbenchAdapter CooccurrenceAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object cooccurrence) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_COOCCURRENCE);
+		}
+
+		@Override
+		public String getLabel(Object cooccurrence) {
+			return ((Cooccurrence) cooccurrence).getName(); 
+		}
+
+		@Override
+		public Object getParent(Object cooccurrence) {
+			return ((Cooccurrence) cooccurrence).getCorpus();
+		}
+	};
+
+	/** The specificities result adapter. */
+	private IWorkbenchAdapter specificitiesResultAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object o) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_SPECIFICITIES);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ((SpecificitesResult) o).getName();
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((SpecificitesResult) o).getParent();
+		}
+
+	};
+
+	/** The referencer adapter. */
+	private IWorkbenchAdapter referencerAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object o) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_REFERENCER);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ((Referencer) o).getName();
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((Referencer) o).getParent();
+		}
+	};
+
+	/** The concordance adapter. */
+	private IWorkbenchAdapter concordanceAdapter = new IWorkbenchAdapter() {
+		@Override
+		public Object[] getChildren(Object o) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_CONCORDANCES);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ((Concordance) o).getQuery().getQueryString();
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((Concordance) o).getCorpus();
+		}
+	};
+
+	/** The CA adapter. */
+	private IWorkbenchAdapter CAAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object o) {
+			return ((CA)o).getResults().toArray();
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID,
+					IImageKeys.ACTION_CORRESPONDANCE_ANALYSIS);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ""+((CA) o).getName(); //$NON-NLS-1$
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((CA) o).getParent();
+		}
+
+	};
+
+	/** The Lexicon adapter. */
+	private IWorkbenchAdapter LexiconAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object o) {
+			return new Object[0];
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_FREQUENCY_LIST);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ((Lexicon) o).getProperty().getName();
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((Lexicon) o).getCorpus();
+		}
+
+	};
+
+	/** The Index adapter. */
+	private IWorkbenchAdapter IndexAdapter = new IWorkbenchAdapter() {
+
+		@Override
+		public Object[] getChildren(Object o) {
+			return ((Index)o).getResults().toArray();
+		}
+
+		@Override
+		public ImageDescriptor getImageDescriptor(Object object) {
+			return AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.ACTION_INDEX);
+		}
+
+		@Override
+		public String getLabel(Object o) {
+			return ((Index) o).getName();
+		}
+
+		@Override
+		public Object getParent(Object o) {
+			return ((Index) o).getParent();
+		}
+	};
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param adaptableObject the adaptable object
+	 * @param adapterType the adapter type
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object,
+	 * java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Object adaptableObject, Class adapterType) {
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof CorpusManager)
+			return corpusManagerAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Corpus)
+			return corpusAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Partition)
+			return partitionAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof SpecificitesResult)
+			return specificitiesResultAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Concordance)
+			return concordanceAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Referencer)
+			return referencerAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof CA)
+			return CAAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Lexicon)
+			return LexiconAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Index)
+			return IndexAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Progression)
+			return ProgressionAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof Cooccurrence)
+			return CooccurrenceAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof LexicalTable)
+			return lexicalTableAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof CAH)
+			return CAHAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof InternalView)
+			return InternalViewAdapter;
+		if (adapterType == IWorkbenchAdapter.class
+				&& adaptableObject instanceof InterTextDistance)
+			return interTextDistAdapter;
+
+		//check adapters from plugins
+		if (externalAdapters.containsKey(adaptableObject.getClass())) {
+			return externalAdapters.get(adaptableObject.getClass());
+		}
+		return null;
+	}
+
+	/**
+	 * Gets the adapter list.
+	 *
+	 * @return the adapter list
+	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Class[] getAdapterList() {
+		return new Class[] { IWorkbenchAdapter.class };
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/AdapterFactory.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.properties	(revision 122)
@@ -0,0 +1,1095 @@
+﻿#Eclipse modern messages class
+#Mon Feb 10 10:26:04 CET 2014
+About_Menu_Label=\u00C0 propos de TXM...
+AdapterFactory_0=** Avertissement \: le corpus {0} est corrompu. Certaines commandes ne fonctionneront pas correctement.
+AddBase_1=Nouveau corpus \: {0}.
+AddBase_10=TXM est pr\u00EAt.
+AddBase_16=** Impossible d''affecter la langue {0} à la propriété ''LANG'' de la structure <txmcorpus>
+AddBase_17=** Impossible de lire le fichier {0}
+AddBase_19=Attention
+AddBase_2=** \u00C9chec du chargement du corpus à partir du dossier \: {0}.\nImpossible de trouver les composants nécessaires.
+AddBase_20=Le répertoire du corpus {0} existe déjà. Voulez-vous le remplacer ?
+AddBase_22=Le fichier {0} n''est pas un fichier TXM.
+AddBase_23=Le corpus {0} n''a pas de propriété ''LANG'' associée à la structure <txmcorpus>
+AddBase_24=** \u00C9chec du chargement du corpus {0}
+AddBase_25=Un corpus TXM au format binaire est soit un fichier d'extension .txm ou .zip, soit un dossier composé des sous-dossiers 'html', 'data', 'registry', 'txm'
+AddBase_27=Chargement du corpus
+AddBase_28=Extraction du corpus binaire
+AddBase_29=Extraction de {0} dans {1}
+AddBase_31=** \u00C9chec de l''extraction du corpus binaire \: {0}
+AddBase_32=Chargement du corpus dans la plateforme
+AddBase_33=Redémarrage de la plateforme
+AddBase_34=L'espace de travail de TXM n'est pas initialisé, veuillez redémarrer TXM.
+AddBase_4=** \u00C9chec de chargement du corpus binaire(null error).
+AddBase_7=** \u00C9chec de création du corpus binaire.
+AddProject_3=Saisissez le nom du projet
+AdvancePreferencePage_0=Afficher la stacktrace
+AdvancePreferencePage_1=Dossier d'installation de TXM
+AdvancePreferencePage_12=Niveau de détails du journal
+AdvancePreferencePage_13=Ajouter des commentaires techniques
+AdvancePreferencePage_14=Copier le journal dans un fichier
+AdvancePreferencePage_2=Dossier utilisateur TXM
+AdvancePreferencePage_3=Afficher les temps d'exécution dans la console
+AdvancePreferencePage_4=Mode avancé
+AdvancePreferencePage_6=Journal et messages
+AdvancePreferencePage_7=Niveau de mise à jour
+AnnotationPreferences_0 = Mode
+AnnotationPreferences_1 = simple (avec catégories)
+AnnotationPreferences_2 = avancé (avec types+valeurs)
+ApplicationWorkbenchAdvisor_0=Initialisation de la plateforme...
+ApplicationWorkbenchAdvisor_1=Initialisation de la plateforme...
+ApplicationWorkbenchAdvisor_11=Chargement des corpus d'exemple 
+ApplicationWorkbenchAdvisor_12=** Erreur \: la variable d''environnement ''TXMHOME'' est bien définie ({0}) mais le dossier n''existe pas \: 
+ApplicationWorkbenchAdvisor_13=** \u00C9chec de la création du dossier TXMHOME \: {0}
+ApplicationWorkbenchAdvisor_14=\ évaluation de l'extension \:  
+ApplicationWorkbenchAdvisor_16=Nettoyage de l''ancien dossier de sauvegarde des corpus ''{0}''. 
+ApplicationWorkbenchAdvisor_17=.
+ApplicationWorkbenchAdvisor_18=Corpus déjà sauvegardés dans ''{0}'' \: {1}.
+ApplicationWorkbenchAdvisor_19=** \u00C9chec de configuration des param\u00E8tres du logiciel TreeTagger \: {0}
+ApplicationWorkbenchAdvisor_2=Chargement des préférences d''installation de TXM à partir de \: {0}
+ApplicationWorkbenchAdvisor_20=\ in 
+ApplicationWorkbenchAdvisor_22=Traitement du dossier \: 
+ApplicationWorkbenchAdvisor_23=\ ...
+ApplicationWorkbenchAdvisor_24=Erreur lors du déplacement du corpus depuis  
+ApplicationWorkbenchAdvisor_25=Lecture des préférences depuis le chemin d''installation \: {0}
+ApplicationWorkbenchAdvisor_26=\ vers  
+ApplicationWorkbenchAdvisor_27=Le dossier de travail de TXM existe déjà \: {0}. Voulez vous recharger les corpus sauvegardés ?
+ApplicationWorkbenchAdvisor_28=Récupération des corpus TXM sauvegardés...
+ApplicationWorkbenchAdvisor_29=Erreur\: 
+ApplicationWorkbenchAdvisor_3=Vérification de la présence du dossier de travail
+ApplicationWorkbenchAdvisor_30=Sauvegarde des corpus existants dans ''{0}''.
+ApplicationWorkbenchAdvisor_31=** \u00C9chec de la création de l'espace de travail 'default.xml'
+ApplicationWorkbenchAdvisor_32=** TreeTagger n'est pas installé, ou les chemins d'acc\u00E8s sont incorrects.
+ApplicationWorkbenchAdvisor_33=Les chemins d'acc\u00E8s à TreeTagger ont été réglés à des valeurs par défaut.
+ApplicationWorkbenchAdvisor_34=** \u00C9chec \: le dossier de sauvegarde des corpus n'a pas pu \u00EAtre créé
+ApplicationWorkbenchAdvisor_35=\nCorpus 
+ApplicationWorkbenchAdvisor_36=Déplacement des corpus de 
+ApplicationWorkbenchAdvisor_37=\ vers 
+ApplicationWorkbenchAdvisor_38=Attention \: le corpus a déjà été sauvegardé.
+ApplicationWorkbenchAdvisor_39=Dossier manquant dans le dossier d''installation de TXM \: {0}
+ApplicationWorkbenchAdvisor_4=Vérification de l'installation de TreeTagger
+ApplicationWorkbenchAdvisor_40=** \u00C9chec de la copie des fichiers TXM du dossier TXMINSTALL vers TXMHOME \: {0}
+ApplicationWorkbenchAdvisor_41=** \u00C9chec de réglage des préférences \: {0}
+ApplicationWorkbenchAdvisor_42=\ déplacement de 
+ApplicationWorkbenchAdvisor_43_single=Le corpus {0} a été mis à jour avec une version plus récente.
+ApplicationWorkbenchAdvisor_43=Les corpus {0} ont été mis à jour avec une version plus récente.
+ApplicationWorkbenchAdvisor_44=** Impossible de déplacer le corpus 
+ApplicationWorkbenchAdvisor_45=** Impossible de lire le fichier {0}
+ApplicationWorkbenchAdvisor_46=\nCorpus 
+ApplicationWorkbenchAdvisor_47=** Impossible de sauvegarder les corpus existants \: 
+ApplicationWorkbenchAdvisor_48=\nCorpus ''{0}'' non restauré et déplacé vers ''{1}''
+ApplicationWorkbenchAdvisor_49=Initialisation de la toolbox...
+ApplicationWorkbenchAdvisor_5=Sortie standard
+ApplicationWorkbenchAdvisor_51=** \u00C9chec du chargement du corpus depuis le fichier \: 
+ApplicationWorkbenchAdvisor_52=** \u00C9chec du chargement des corpus d''exemple \: {0}
+ApplicationWorkbenchAdvisor_53=Rechargement des corpus existants depuis le dossier ''{0}''.
+ApplicationWorkbenchAdvisor_54=Conversion du corpus au format TXM 0.5 
+ApplicationWorkbenchAdvisor_55=\ au format TXM 0.6.
+ApplicationWorkbenchAdvisor_56=** \u00C9chec de la conversion du corpus au format TXM 0.6
+ApplicationWorkbenchAdvisor_57=Chargement du corpus 0.5 converti 
+ApplicationWorkbenchAdvisor_58=Chargement du corpus 0.6 
+ApplicationWorkbenchAdvisor_59=** Erreur lors du chargement de 
+ApplicationWorkbenchAdvisor_6=Exception \: 
+ApplicationWorkbenchAdvisor_60=** Erreur \: le corpus 
+ApplicationWorkbenchAdvisor_61=\ n'est pas un corpus binaire.
+ApplicationWorkbenchAdvisor_66=Récupération des préférences de TXM de l'installation précédente depuis le fichier   
+ApplicationWorkbenchAdvisor_67=Pas de fichier de préférences de l'installation précédentes trouvé \: 
+ApplicationWorkbenchAdvisor_68=Mise en place du th\u00E8me par défaut
+ApplicationWorkbenchAdvisor_69=Erreur lors du chargement du th\u00E8me \: 
+ApplicationWorkbenchAdvisor_7=Création de l'espace de travail utilisateur de TXM.
+ApplicationWorkbenchAdvisor_71=Chargement des corpus d'exemple.
+ApplicationWorkbenchAdvisor_8=Chemin d''installation \: {0}
+ApplicationWorkbenchAdvisor_9=** \u00C9chec de lecture du fichier des préférences d'installation
+ApplicationWorkbenchAdvisor_init=Démarrage de TXM {0}...
+ApplicationWorkbenchAdvisor_init_failed=** Le démarrage de la plateforme a été interrompu, veuillez régler les préférences de TXM (dans le menu 'Fichier>Préférences')
+ApplicationWorkbenchAdvisor_ready=Pr\u00EAt.
+ApplicationWorkbenchAdvisor_PROGRESS_BAR_LOADING_CORPORA=Chargement des corpus
+Application_4=Ce fichier ne permet pas de lancer TXM. Veuillez consulter les instructions de lancement dans le manuel de TXM. 
+Application_6=** Vous devez installer la version 1.6 de Java ou supérieur avant de lancer TXM, la version courante de Java sur cette machine est {0}
+AssistedQueryWidget_0=Ouvrir l'assistant de requ\u00EAtes
+BackToText_0=Afficher en plein texte...
+CAHEditor_0=Calcul de la CAH
+CAHEditor_PART_NAME_PREFIX=Classification \: {0}
+CAHPreferencePage_0=Afficher les graphiques en 2D
+CAHPreferencePage_1=Classification
+CAHPreferencePage_2=Nombre de clusters
+CAHPreferencePage_3=Méthode
+CAHPreferencePage_4=Métrique
+CANT_CREATE_GRAPHIC=** Impossible de créer le graphique
+CAPreferencePage_0=Format de la colonne Qualité
+CAPreferencePage_1=Format de la colonne Contribution
+CAPreferencePage_3=Afficher les colonnes
+CAPreferencePage_4=Afficher les lignes
+CAPreferencePage_5=Format de la colonne Masse
+CAPreferencePage_6=Format de la colonne Distance
+CAPreferencePage_7=Format de la colonne Cos\u00B2
+CAPreferencePage_8=Format de la colonne Coord
+CQPPreferenceInitializer_0=localhost
+CQPPreferenceInitializer_1=anonymous
+CQPPreferencePage_0=Chemin vers CQPlib
+CQPPreferencePage_1=Utiliser le protocole réseau
+CQPPreferencePage_10=&Serveur CWB distant
+CQPPreferencePage_11=Serveur distant \: nom de machine
+CQPPreferencePage_12=Serveur distant \: numéro de &port
+CQPPreferencePage_13=Serveur distant \: &login
+CQPPreferencePage_14=Serveur distant \: &mot de passe
+CQPPreferencePage_15=Chemin vers le fichier &exécutable 'cqpserver'
+CQPPreferencePage_16=Chemin vers le dossier de &Registre du serveur CWB
+CQPPreferencePage_17=Chemin vers le fichier d'initialisation du serveur CWB
+CQPPreferencePage_18=Options additionnelles pour le serveur CWB \: 
+Cannot_ask_simple_when_advance=Impossible d'afficher l'onglet des options simples quand l'utilisateur a sélectionné l'affichage des options avancées
+ColRowInfosLabelProvider_19=Qual
+ColRowInfosLabelProvider_9=\u03C7\u00B2
+ColsRowsInfosEditor_0=Entrée erronée
+ColsRowsInfosEditor_2=Infos\: {0}
+Commands_0=Erreur \: impossible d'initialiser les commandes
+ComplexSortSelector_0=Clés de tri \: 
+ComplexSortSelector_1=Tri multiple \: 
+ComplexSortSelector_2=Tri
+ComplexSortSelector_5=** Erreur pendant le tri \: {0}
+ComplexSortSelector_6=par défaut
+ComplexSort_0=Ouverture de la boite de dialogue du tri composé
+ComplexSort_1=&Tri composé
+ComplexSort_10=Comparateur invalide
+ComplexSort_11=Il faut sélectionner au moins deux comparateurs
+ComplexSort_12=Ajouter à la sélection
+ComplexSort_14=Retirer de la sélection
+ComplexSort_16=Monter d'un cran la sélection
+ComplexSort_18=Descendre d'un cran la sélection
+ComplexSort_2=Définir et utiliser un tri composé
+ComplexSort_3=Sélectionnez un tri composé
+ComplexSort_4=&Nouveau
+ComplexSort_5=Créer une nouvelle méthode de tri
+ComplexSort_6=Nom \: 
+ComplexSort_9=Le champ Nom est obligatoire.
+ComplexSubcorpusPanel_0=Sélectionner
+ComplexSubcorpusPanel_1=Tous les crit\u00E8res
+ComplexSubcorpusPanel_16=ne contient pas
+ComplexSubcorpusPanel_2=certains crit\u00E8res
+ComplexSubcorpusPanel_4=Requ\u00EAte 
+ComplexSubcorpusPanel_5=Rafra\u00EEchir
+ComputeCAH_0=Calcul de la Classification avec {0}
+ComputeCAH_1=Afficher le graphique
+ComputeCAH_2=** Impossible d'écrire dans le fichier temporaire
+ComputeCAH_3=Calcul de la classification avec
+ComputeCAH_5=Ouverture de la fen\u00EAtre de Classification
+ComputeCAH_6=Erreur lors de l''ouverture de l''éditeur de Classification \: {0}
+ComputeClassification_5=Classer les colonnes
+ComputeClassification_6=Classer les lignes
+ComputeConcordance_0=Ouverture de la fen\u00EAtre de concordance
+ComputeConcordance_1=Erreur lors de l'ouverture de l'éditeur des concordances \:
+ComputeCoocFromLines_0=Calcul des cooccurrents en cours
+ComputeCoocFromLines_1=Ouverture du tableau de cooccurrents
+ComputeCoocMatrix_0=Matrice mot-mot \: 
+ComputeCoocMatrix_1=Nombre de noeuds \: 
+ComputeCoocMatrix_10=Distance en mot
+ComputeCoocMatrix_11=Co-fréquence minimum
+ComputeCoocMatrix_12=Fichier de sortie \: aucun
+ComputeCoocMatrix_13=Sélection du fichier de sortie
+ComputeCoocMatrix_2=Nombre d'arcs \: 
+ComputeCoocMatrix_3=Distance en mot \: 
+ComputeCoocMatrix_4=Ecriture de la matrice mot-mot dans un fichier GRAPHML \:
+ComputeCoocMatrix_7=Param\u00E8tres de la matrice mot-mot
+ComputeCooccurrences_0=Chargement du tableau de cooccurrents
+ComputeCooccurrences_1=** Impossible de calculer les cooccurrents de la sélection
+ComputeCorrespondanceAnalysisDialog_0=Analyse factorielle des correspondances avec {0}
+ComputeCorrespondanceAnalysisDialog_1=Propriétés \: 
+ComputeCorrespondanceAnalysisDialog_2=Nombre de lignes \: 
+ComputeCorrespondanceAnalysis_0=Calcul de l'analyse factorielle des correspondances
+ComputeCorrespondanceAnalysis_1=** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 colonnes dans la table
+ComputeCorrespondanceAnalysis_13=** Impossible de calculer l'analyse factorielle des correspondances avec moins de 4 colonnes 
+ComputeCorrespondanceAnalysis_14=Ouverture des résultats de l'analyse factorielle des correspondances
+ComputeCorrespondanceAnalysis_15=Création de la fen\u00EAtre de l'AFC
+ComputeCorrespondanceAnalysis_16=Création de la table lexicale pour l'AFC
+ComputeCorrespondanceAnalysis_17=Calcul de l'AFC
+ComputeCorrespondanceAnalysis_3=** Erreur
+ComputeCorrespondanceAnalysis_4=** Impossible de calculer l''analyse factorielle avec seulement {0} parties (minimum=4).
+ComputeCorrespondanceAnalysis_6=OK
+ComputeCorrespondanceAnalysis_8=Chargement des résultats de l'analyse factorielle
+ComputeFrequencyList_2=Calcul du lexique de la propriété {0} dans le corpus {1}
+ComputeIndexFromLines_0=Envoyer la sélection vers la commande Index
+ComputeLexicalTable_0=Calcul de la table lexicale avec {0}
+ComputeLexicalTable_1=Calcul de la table lexicale {0} avec la propriété {1}
+ComputeLexicalTable_10=Ouverture de la table lexicale
+ComputeLexicalTable_12=Total  toutes les occurrences recenses par l'index 
+ComputeLexicalTable_13=Sélectionnez les marges à utiliser
+ComputeLexicalTable_16=Total  toutes les occurrences du corpus 
+ComputeLexicalTable_2=Pas de propriété
+ComputeLexicalTable_3=Ouverture de la boite de dialogue de configuration des marges
+ComputeLexicalTable_5=** Impossible de créer une table lexicale à partir d'un Index créé sur un corpus
+ComputeLexicalTable_6=** Les vocabulaires doivent \u00EAtre composés de la m\u00EAme combinaison de propriétés \: {0}
+ComputeLexicalTable_7=Les vocabulaires doivent avoir la m\u00EAme partition \: {0}
+ComputeLexicalTable_9=** Boite de dialogue de la table lexicale \: impossible d''obtenir la taille du corpus. Cause {0}
+ComputeReferencer_0=Ouverture du résultat du Référenceur
+ComputeProgression_0=La fonctionnalité Progression n'est pas encore disponible pour les sous-corpus discontinus.
+ComputeProgression_1=Erreur lors de la récupération de la derni\u00E8re erreur CQP \:  
+ComputeProgression_10=Ouverture du graphique de progression
+ComputeProgression_12=Terminé \: {0} positions affichées
+ComputeProgression_13=** \u00C9chec du calcul de la progression \: {0}
+ComputeProgression_2=Calcul de la progression de <{0}> dans le corpus {1}
+ComputeProgression_3=Terminé\: pas de match trouvé.
+ComputeProgression_4=Calcul de la progression de {0} avec la requ\u00EAte \: {1}, la structure \: {2}, la propriété \: {3}, cumulatif\: {4}
+ComputeProgression_9=** {0} n''est pas accessible en écriture
+ComputeSpecificitiesDialog_0=** Boite de dialogue ''Calcul des Spécificités'' - {0}
+ComputeSpecificitiesDialog_1=** Erreur de syntaxe dans l''expression réguli\u00E8re \: {0}
+ComputeSpecificitiesDialog_3=Focus \:
+ComputeSpecificitiesDialog_4=Focus de partie \:
+ComputeSpecificitiesDialog_9=Pas de filtrage de partie disponible
+ComputeSpecificities_0=Calcul des spécificités sur
+ComputeSpecificities_2=Calcul des spécificités de {0}, propriété {1} 
+ComputeSpecifities_10=Ouverture du tableau de résultats des spécificités
+ComputeSpecifities_11=Calcul des spécificités de la table lexicale {0}
+ComputeSpecifities_2=Mise à jour de la vue des corpus...
+ComputeSpecifities_3=Calcul des spécificités du sous-corpus {0} du corpus {1}, propriété {2}
+ComputeIndex_0=Ouverture de l'Index
+Compute_Specificities=Calcul des Spécificités
+ConcordancerPreferencePage_3=Param\u00E8tres des Concordances 
+ConcordancerPreferencePage_4=Lignes par &Page \: 
+ConcordancerPreferencePage_5=Contexte &Gauche (en mots)
+ConcordancerPreferencePage_6=Contexte &Droit (en mots)
+ConcordancesEditorContributor_0=Concordance
+ConcordancesEditor_0=Derni\u00E8re erreur CQi \: 
+ConcordancesEditor_1=Référence
+ConcordancesEditor_11=|<
+ConcordancesEditor_12=<
+ConcordancesEditor_13=>
+ConcordancesEditor_14=>|
+ConcordancesEditor_15=Catégorie
+ConcordancesEditor_16=&Pivot\: 
+ConcordancesEditor_18=&Editer
+ConcordancesEditor_19={0} occurrences
+ConcordancesEditor_2=Contexte gauche
+ConcordancesEditor_20=Chargement des informations sur la ligne...
+ConcordancesEditor_26=id projet {0} id corpus {1} id texte {2}
+ConcordancesEditor_27=Retour au texte \: texte {0} manquant
+ConcordancesEditor_29=Page non trouvée... pour 
+ConcordancesEditor_3=Pivot
+ConcordancesEditor_30=Retour au texte \: édition par défaut introuvable
+ConcordancesEditor_34=Chargement de la concordance
+ConcordancesEditor_37=Tri des références
+ConcordancesEditor_38=Cacher param\u00E8tres
+ConcordancesEditor_39=Afficher param\u00E8tres
+ConcordancesEditor_4=Contexte droit
+ConcordancesEditor_41=Tri du contexte gauche
+ConcordancesEditor_43=Le corpus {0} n''a pas de références par défaut \: {1}
+ConcordancesEditor_45=Tri du pivot
+ConcordancesEditor_46=** Impossible d''afficher en plein texte \: {0}
+ConcordancesEditor_48=Tri du contexte droit
+ConcordancesEditor_5=Concordance de <{0}> dans le corpus {1}
+ConcordancesEditor_50=Ouverture de l'édition
+ConcordancesEditor_52=Terminé \: un résultat
+ConcordancesEditor_55=Ouverture de la boite de dialogue des propriétés
+ConcordancesEditor_56=Début du calcul des concordances
+ConcordancesEditor_6=Tri...
+ConcordancesEditor_7=Erreur lors de la récupération de la derni\u00E8re erreur CQP \:  
+ConcordancesEditor_8=Le corpus n'a pas de propriété "text_id"
+ConcordancesEditor_22=Annoter
+ConcordancesEditor_24=Retirer
+ConcordancesEditor_25=de
+ConcordancesEditor_28=l'annotation
+ConcordancesEditor_32=Entrer une valeur correspondant à un id
+ConcordancesEditor_33=à
+ConcordancesEditor_35=lignes sélectionées 
+ConcordancesEditor_42=lignes de la page
+ConcordancesEditor_49=toutes les lignes
+ConcordancesEditor_61=Impossible d'annoter avec la valeur '
+ConcordancesEditor_62='.\n sur certains segments. \n
+ConcordancesEditor_63=\t- Le segment 
+ConcordancesEditor_64=\ est à cheval sur \n
+ConcordancesEditor_65=\t\t- la fin de la structure 
+ConcordancesEditor_66=, aux positions [
+ConcordancesEditor_69=\t\t- le début de la structure 
+ConcordancesEditor_73=Information à propos des annotations
+ConcordancesEditor_74=Erreur pendant l'affection des annotations: 
+ConcordancesEditor_75=Annoter
+ConcordancesEditor_76=Enregistrer les annotations
+ConcordancesEditor_77=Ouvrir la liste des catégories
+ConcordancesEditor_79=Sélectionner une valeur parmi la liste
+ConcordancesEditor_80=valeur=
+ConcordancesEditor_81=Veuillez entrer une nouvelle catégorie
+ConcordancesEditor_82=Nouvelle catégorie
+ConcordancesEditor_83=avec la catégorie
+ConcordancesEditor_84=avec la catégorie
+ConcordancesEditor_85=OK
+ConcordancesEditor_86=Confirmer l'enregistrement des annotations
+ConcordancesEditor_87=Vous vous apprêtez à annoter 
+ConcordancesEditor_88=Supprimer le(s) ligne(s) sélectionnée(s)
+ConcordancesEditor_99=Liste des catégories
+ConcordancesEditor_100=Valeurs disponibles pour {0}
+ConcordancesEditor_108=\ éléments. Continuez ?
+ConcordancesEditor_110=Nouvelle valeur {0} pour la catégorie {1}  
+ConcordancesEditor_112=La valeur {0} n''est pas encore associée à la catégorie : {1}. Créer l''association ?
+ConcordancesEditor_115=Ajouter une nouvelle categorie
+ConcordancesEditor_116=Effectuer l'annotation
+ConvertCorpus_0=La conversion du corpus a échoué.
+CoocPreferencePage_0=Format de l'indice (par défault 0.0000E00)
+CoocPreferencePage_1=Seuil minimum de fréquence du cooccurrent
+CoocPreferencePage_11=Minimum à droite
+CoocPreferencePage_12=Maximum à droite
+CoocPreferencePage_2=Seuil minimum de fréquence de cooccurrences
+CoocPreferencePage_3=Seuil minimum de l'indice de cooccurrences
+CoocPreferencePage_4=Maximum à gauche
+CoocPreferencePage_5=Cooccurrences
+CoocPreferencePage_6=Minimum à gauche
+CoocPreferencePage_8=Utiliser les seulements les fréquences des cooccurents plut\u00F4t que celles de tous les mots du corpus
+CooccurrencesEditor_0=Trier par \: {0}
+CooccurrencesEditor_1=** Une erreur est survenue lors du calcul de la coocurrence\:
+CooccurrencesEditor_10=Cofréquence
+CooccurrencesEditor_11=La valeur de l'indice n'est pas un flottant double
+CooccurrencesEditor_12=Calcul des cooccurrents de {0}
+CooccurrencesEditor_13=Réglage du calcul des cooccurrents
+CooccurrencesEditor_14=Calcul des cooccurrents
+CooccurrencesEditor_15=Affichage des résultats
+CooccurrencesEditor_16=** Impossible de calculer les cooccurrences sans contexte
+CooccurrencesEditor_17=Indice
+CooccurrencesEditor_18=Le seuil d''indice doit \u00EAtre un nombre réel différent de {0}
+CooccurrencesEditor_2=Calculer
+CooccurrencesEditor_20=Calcul des cooccurrents de <{0}> dans le corpus {1}
+CooccurrencesEditor_23=Terminé \: aucun résultat.
+CooccurrencesEditor_24=Terminé \: un résultat.
+CooccurrencesEditor_27=Calcul des requ\u00EAtes
+CooccurrencesEditor_28=Calcul des retours
+CooccurrencesEditor_29=Calcul des signatures de lignes
+CooccurrencesEditor_3=Propriétés des cooccurrents \: 
+CooccurrencesEditor_30=Comptage
+CooccurrencesEditor_31=Calcul de la table lexicale
+CooccurrencesEditor_32=Calcul des indices de spécificité\t
+CooccurrencesEditor_33=Début du calcul des cooccurrences
+CooccurrencesEditor_34=Terminé \: {0} occurrences de pivot et {1} cooccurrents 
+CooccurrencesEditor_4=Seuils \: Fmin \u2265
+CooccurrencesEditor_5=Cmin \u2265 
+CooccurrencesEditor_6=Indice \u2265 
+CooccurrencesEditor_8=Cooccurrent
+CooccurrencesEditor_9=Distance moyenne
+CorporaView_0=Corpus
+CorporaView_1=** Erreur \: {0}
+CorporaView_2=** \u00C9chec de récupération de la dimension du corpus {0}
+CorporaView_3=** Une erreur est survenue lors du calcul de la concordance
+CorporaView_4=Le symbole R de la matrice est \: 
+CorporaView_5=** Une erreur est survenue lors du calcul des spécificités
+CorporaView_6=** \u00C9chec de l'ouverture de la fen\u00EAtre du Référenceur\t
+CorporaView_7=** Une erreur est survenue lors du calcul du tableau lexical
+CorporaView_9=** Erreur \: impossible d''écrire dans {0}
+CorpusPage_0=Éditions
+CorpusPage_1=Ajouter une édition
+CorpusPage_10=Propriétés de mot
+CorpusPage_11=Ajouter une définition de propriété
+CorpusPage_12=Ajouter une définition de propriété de structure
+CorpusPage_13=Supprimer une définition de propriété
+CorpusPage_14=Sous-corpus et partitions par défaut
+CorpusPage_15=Ajouter un sous-corpus
+CorpusPage_16a=Caract\u00E8res séparateurs
+CorpusPage_16=Ponctuations
+CorpusPage_17=Supprimer un sous-corpus
+CorpusPage_18=Ajouter une partition
+CorpusPage_19=Caract\u00E8res d'élision
+CorpusPage_2=Supprimer une édition
+CorpusPage_20=Supprimer une partition
+CorpusPage_21=Ajouter une requ\u00EAte
+CorpusPage_22=Caract\u00E8res de fin de phrase
+CorpusPage_23=Supprimer une requ\u00EAte
+CorpusPage_24=Propriétés de structure
+CorpusPage_25=Ajouter une définition de propriété de structure
+CorpusPage_26=Annoter le corpus
+CorpusPage_27=Supprimer une définition de propriété de structure
+CorpusPage_28=Utiliser seulement ces tests lors de la tokenization
+CorpusPage_29=Ajouter un param\u00E8tre
+CorpusPage_30=Paramètres
+CorpusPage_3=Police d'affichage
+CorpusPage_31=Supprimer un param\u00E8tre
+CorpusPage_32=Ajouter un test
+CorpusPage_33=Ajouter un param\u00E8tre
+CorpusPage_34=Supprimer un test
+CorpusPage_35=1.\t
+CorpusPage_36=Nombre de mots par page
+CorpusPage_37=Sélectionner le répertoire des sources.
+CorpusPage_38=2.\t
+CorpusPage_39=Régler les paramètres d'import dans les sections ci-dessous.
+CorpusPage_4=Ajouter un param\u00E8tre
+CorpusPage_40=* : champ obligatoire
+CorpusPage_41=Elément de pagination
+CorpusPage_42=3.\t
+CorpusPage_43=Lancer l'import du corpus.
+CorpusPage_44=Construire l'édition
+CorpusPage_45=UIs
+CorpusPage_46=Le dossier des sources ne contient pas de fichier 'import.xml'. Un nouveau a été créé.
+CorpusPage_47=Erreur lors de la création du fichier 'import.xml' 
+CorpusPage_48=Chargement des param\u00E8tres d'import depuis le fichier \: 
+CorpusPage_49=Défaut
+CorpusPage_5=Espaces
+CorpusPage_50=Param\u00E8tres du module \: 
+CorpusPage_51=Seulement ces tests
+CorpusPage_52=Sauvegarde des param\u00E8tres d'importation...
+CorpusPage_53=Le nom du corpus est obligatoire
+CorpusPage_54=Le nom du corpus doit contenir au moins une lettre
+CorpusPage_55=Seulement ces tests
+CorpusPage_6=Supprimer un param\u00E8tre
+CorpusPage_60=OK
+CorpusPage_61=Editer la feuille XSL...
+CorpusPage_63=Commandes
+CorpusPage_64=Structures de limite des contextes de concordance
+CorpusPage_65=Impossible de sauvegarder l'import : pas de dossier source sélectionné.
+CorpusPage_66=Impossible de commencer l'import : pas de dossier source sélectionné.
+CorpusPage_67=Séparés par des virgules
+CorpusPage_7=Informations générales
+CorpusPage_8=Nom du corpus* (majuscules et pas de chiffre en début)
+CorpusPage_9=Description - HTML (nom complet, auteur, date, license, commentaire...)
+CorrespondanceAnalysisEditorInput_0=Valeurs propres
+CorrespondanceAnalysisEditorInput_1=Plan fact.
+CorrespondanceAnalysisEditorInput_10=AFC
+CorrespondanceAnalysisEditorInput_2=Histogramme des valeurs propres
+CorrespondanceAnalysisEditorInput_26=Mass
+CorrespondanceAnalysisEditorInput_27=Dist
+CorrespondanceAnalysisEditorInput_29=Cont
+CorrespondanceAnalysisEditorInput_3=Le résultat de l'analyse des correspondances ne peut \u00EAtre nul 
+CorrespondanceAnalysisEditorInput_30=Cos\u00B2
+CorrespondanceAnalysisEditorInput_4=#
+CorrespondanceAnalysisEditorInput_5=Valeur propre
+CorrespondanceAnalysisEditorInput_8=Info lignes
+CorrespondanceAnalysisEditorInput_9=Info colonnes
+CreateFile_1=Nouveau fichier \: {0}
+CreateFolder_1=Nouveau dossier \: {0}
+CreateFrequencyList_8=Chargement du tableau des fréquences
+CreateMacro_0=Nom de la macro
+CreateMacro_1=Nom de la macro
+CreatePartitionDialog_0=Créer une Partition
+CreatePartitionDialog_1=Simple
+CreatePartitionDialog_16=Les requ\u00EAtes ne doivent pas \u00EAtre vides
+CreatePartitionDialog_2=&Structure \: 
+CreatePartitionDialog_3=Assisté
+CreatePartitionDialog_4=&Propriété \: 
+CreatePartitionDialog_5=Avancé
+CreatePartitionDialog_6=&Nom \: 
+CreatePartitionDialog_7=Partie 
+CreatePartitionDialog_8=Aucune partie définie
+CreatePartitionDialog_9=Le nom de la partition n''a pas été précisé. Le nom est {0}
+CreatePartition_0=Création d''une partition sur {0}
+CreatePartition_2=** Erreur \: la partition n'a pas été créé
+CreatePartition_5=Terminé \: {0} items pour {1} occurrences.
+CreatePartition_55=Terminé \: {0} items pour {1} occurrences.
+CreatePartition_6=Terminé \: {0} parties
+CreatePartition_9=Mise à jour de la vue des corpus...
+CreateSubCorpus_0=** Erreur \: le sous-corpus n'a pas été créé
+CreateSubCorpus_2=Erreur lors de la récupération de la derni\u00E8re erreur CQP \: 
+CreateSubCorpus_begin=Nouveau &Sous-corpus
+CreateSubCorpus_create=Créer un nouveau sous-corpus de {0}
+CreateSubcorpusDialog_0=Créer un sous-corpus
+CreateSubcorpusDialog_10=&Requ\u00EAte \: 
+CreateSubcorpusDialog_11=Nom incorrect
+CreateSubcorpusDialog_13=Requ\u00EAte invalide
+CreateSubcorpusDialog_14=Le champ Requ\u00EAte ne doit pas \u00EAtre vide.
+CreateSubcorpusDialog_6=&Valeur \: 
+CreateSubcorpusDialog_8=Un nom de sous-corpus a été généré.
+CreateSubcorpus_7=Calcul d''un sous-corpus de {0}, structure {1}, propriété {2} \: {3}
+CreateSubcorpus_8=Terminé \: {0} a été créé  
+CreateSubcorpus_9=Calcul d''un sous-corpus de {0} avec la requ\u00EAte <{1}>
+DONE=Terminé \: {0}
+DefineReferencePattern_0=Options d'affichage des références
+DefineReferencePattern_1=Options d'&affichage des références
+DefineReferencePattern_2=Options d'affichage des références
+DefineReferencePattern_3=Options de &tri des références
+DefineReferencePattern_4=Options de tri des références
+DefineReferencePattern_5=Options de tri des références
+DeleteFile_0=Etes vous s\u00FBr de vouloir supprimer 
+DeleteFile_2=** \u00C9chec de la suppression du fichier 
+DeleteInCorporaView_1=** Erreur lors de la suppression du sous-corpus {0}
+DeleteInCorporaView_2=** Erreur lors de la suppression de la partition {0}
+DeleteLines_0=Le tableau doit comporter au moins une ligne
+DeleteLines_1=S\u00FBr(e) ?
+DeleteObject_0=Voulez-vous vraiment supprimer {0} ?
+DeleteObject_10={0} supprimé
+DeleteObject_3=** Erreur lors de la suppression
+DeleteObject_4=Erreur lors de la suppression de {0} \: {1}
+DeleteObject_5=Suppression de {0}
+DiagnosticPreferencePage_1=Description
+DiagnosticPreferencePage_2=Nombre de valeurs de propriété affiché
+DiagnosticPreferencePage_3=Ordonner les parties par taille
+Diagnostique_0=Unités de structure de {0}
+Diagnostique_1=Les informations de {0} ont déjà été calculées. Souhaitez vous les recalculer ?
+Diagnostique_10=Récupération des informations sur les unités de structure
+Diagnostique_11=Ouverture de la fen\u00EAtre...
+Diagnostique_2=** \u00C9chec de lecture du fichier *informations* de 
+Diagnostique_7=Création de la fen\u00EAtre d'informations
+Diagnostique_8=Récupération des informations générales
+Diagnostique_9=Récupération des données sur les unités lexicales
+DictionnaryEditor_1=Lexique \:\n\tPartition {0}\n\tRequ\u00EAte {1}\n\tPropriétés {2}\n\tFmin {3}\n\tFmax {4}
+DictionnaryEditor_3=Lexique \:\n\tCorpus {0}\n\tRequ\u00EAte {1}\n\tPropriétés {2}\n\tFmin {3}\n\tFmax {4}
+ERROR_WHILE_LOADING_CONCORDANCE_LINE=** Une erreur est survenue lors du chargement des lignes de la concordance \: {0}
+ElementTreeLabelProvider_0=** Erreur \: élément non enregistré 
+ElementTreeLabelProvider_1=** Erreur\: l'objet n'est pas un 'org.w3c.Element'
+EmpantWidget_0=Contexte \: 
+EmpantWidget_1=forme
+EmpantWidget_2=structure
+EmpantWidget_3=de -
+EmpantWidget_4=à -
+EmpantWidget_5=et de
+EmpantWidget_6=à
+EmpantWidget_7=inclure la structure contenant le pivot
+EmpantWidget_8=Contexte gauche actif
+EmpantWidget_9=Contexte droit actif
+Error_computing_specificities=** Erreur lors du calcul des spécificités \: {0}
+Error_creating_partition=** Erreur lors de la création de la partition \: {0}
+ExecuteGroovyScriptFromFile_2=Le script Groovy doit \u00EAtre dans le dossier {0}
+ExecuteGroovyScript_0=\ ms
+ExecuteGroovyScript_1=Erreur lors de l'initialisation des param\u00E8tres
+ExecuteGroovyScript_2=L'utilisateur a intérompu l'exécution du script
+ExecuteRScript_1=Exécution de {0}
+ExecuteRScript_2=Terminé\: 
+ExecuteRScript_3=\ ms
+ExecuteRText_0=Exécution de la sélection de texte... 
+ExecuteRText_1=** Erreur lors de l''exécution du script R {0} \: {1}
+ExecuteRText_2=\ ms
+ExecuteScriptImport_0=Début de l'importation
+ExecuteScriptImport_1=** Le fichier de script {0} n''existe pas
+ExecuteScriptImport_2=** Erreur\: le dossier 'corpora' n'existe pas \: 
+ExecuteScriptImport_3=Erreur\: le dossier {0} n''a pu \u00EAtre supprimé et existe toujours. L''import est interrompu. Vous pouvez supprimer manuellement le dossier et recommencer l''import
+ExecuteScriptImport_5=** Erreur de param\u00E8tres du Tokenizer \: abandon de l'import.
+ExecuteScriptImport_6=L'import n'a pas abouti.
+ExecuteScriptImport_7=Importation terminée \: 
+ExecuteScriptImport_8=** Erreur lors du chargement du corpus
+ExecuteScriptR_0=** Le fichier de script R {0} n''existe pas
+ExecuteScriptR_1=** Erreur lors de l''exécution du script R {0} \: {1}
+ExecuteScript_0=Exécution de {0} ...
+ExecuteScript_1=Sauver le fichier avant d'exécuter ?
+ExecuteScript_2=Sauver et lancer
+ExecuteScript_3=** Aucun interpréteur trouvé pour l'extension du fichier de script 
+ExecuteScript_4=Annuler
+ExecuteScript_5=Ne pas sauver et lancer
+ExecuteScript_6=Toujours sauvegarder avant de lancer
+ExecuteScript_7=Exécution annulée.
+Exit_Menu_Label=Quitter
+Explorer_0=Le dossier {0} ne devrait pas \u00EAtre supprimé
+Explorer_1=Aller au dossier parent
+Explorer_2=Aller au dossier de travail de TXM
+Explorer_3=TXM
+Explorer_4=\u21E7
+Explorer_5=\u21BB
+Explorer_6=Rafra\u00EEchir
+Explorer_7=\u2302
+Explorer_8=Aller au dossier de travail de TXM
+ExportCorpus_0=** \u00C9chec de l''exportation du corpus {0}
+ExportCorpus_3=Exportation de {0}. Cela peut prendre du temps en fonction de la taille du corpus.
+ExportCorpus_4=Terminé, le fichier binaire créé est {0}
+ExportPreferencePage_1=Configuration de l'export
+ExportPreferencePage_18=Colonnes séparées par
+ExportPreferencePage_19=Séparateur de texte
+ExportPreferencePage_21=Format de fichier d'export des graphiques par défaut
+ExportPreferencePage_3=Encodage des fichiers d'export
+ExportPreferencePage_4=Afficher le résultat de l'export dans un éditeur de texte
+ExportAnnotation_0=Exportation des annotations
+ExportResult_0=Exportation des résultats
+ExportResult_1=Exportation...
+ExportResult_2=Graphique enregistré au format {1} dans le fichier {0}
+ExportResult_22=Résultat enregistré dans le fichier {0}
+ExportResult_3=** Export \: impossible de créer le fichier {0} \: {1}
+ExportResult_4=** \u00C9chec de l''export dans le fichier {0} de format {1}
+ExportResult_5=** Impossible de lire {0}
+ExportResult_6=** \u00C9chec de l''exportation du résultat {0} \: {1}
+ExportSVG_0=Export graphique en cours...
+ExportSVG_1=Graphique enregistré au format {1} dans le fichier {0} 
+ExportSVG_2=Export avec le device \: {0}
+ExportSVG_3=Échec de l''export dans le fichier {0} au format {1}
+FAILED_TO_PARSE_OPTIONS=** \u00C9chec de l''analyse des options de TXM {0} \: {1}
+FAILED_TO_SAVE_PREFERENCES=** \u00C9chec de la sauvegarde des préférences
+FactorialMapEditor_0=Axes\:  
+FactorialMapEditor_10=** Erreur interne \: erreur de sélection du plan de l'AFC
+FactorialMapEditor_11=Redimensionner
+FactorialMapEditor_13=Mise à jour du plan factoriel
+FactorialMapEditor_4=Afficher \: 
+FactorialMapEditor_5=colonnes
+FactorialMapEditor_6=lignes
+FactorialMapEditor_8=Rechargement du plan factoriel
+FileExplorerPreferencePage_0=Exp. Rég. des fichiers cachés
+FileExplorerPreferencePage_1=Afficher les fichiers cachés
+FileExplorerPreferencePage_2=Afficher les dossiers
+FileTreeContentProvider_1=** Explorateur de fichiers \: expression réguli\u00E8re incorrecte
+FileTreeContentProvider_2=\ ERREUR 
+FileTreeContentProvider_3=Element d'erreur \: '
+FileTreeContentProvider_4='
+FrequencyListEditorInput_0=Lexique
+FrequencyListEditorInput_1=Pareto
+FrequencyListEditorInput_2=Le lexique ne peut \u00EAtre vide
+FrequencyListEditorInput_3=Forme
+FrequencyListEditorInput_4=Fréquence
+FrequencyListEditorInput_5=Cha\u00EEne de caract\u00E8res
+FrequencyListEditorInput_6=Entier
+FrequencyListEditorInput_9=Type
+GenericMultiPageEditor_1=** Erreur interne \: Impossible d''afficher la donnée {0}.
+GenericMultiPageEditor_3=** Erreur interne \: le nombre d''éditeurs RCP ({0}) doit correspondre au nombre d''inputs ({1}).
+GetConcordancesDialog_0=** Fen\u00EAtre de dialogue de concordances \: {0}
+GetConcordancesDialog_1=Calcul des spécificités 
+GetConcordancesDialog_13=Vous devez sélectionner une propriété
+GetConcordancesDialog_14=Propriété invalide
+GetConcordancesDialog_15=Vous devez sélectionner une propriété
+GetConcordancesDialog_4=&Propriété \: 
+GetConcordancesDialog_5=Contexte &Gauche (mots) \: 
+GetConcordancesDialog_6=Contexte &Droit (mots) \: 
+GetConcordancesDialog_7=&Référence \: 
+GetConcordances_4=** Erreur lors du calcul des concordances \: {0}
+GraphicalLogger_0=** Erreur {0}
+GroovyConsole_4=\nErreur Interne.
+GroovyConsole_5=L'erreur est \:  
+ImportDialog_0=Param\u00E8tres d''import - {0}
+ImportDialog_1=Dossier source
+ImportDialog_13=Ce dossier semble contenir un corpus au format binaire
+ImportDialog_14=Encodage par défaut de cet ordinateur
+ImportDialog_16=Deviner
+ImportDialog_19=Langue par défaut de cet ordinateur
+ImportDialog_22=Sélectionner
+ImportDialog_23=Options
+ImportDialog_4=Encodage des caract\u00E8res \: 
+ImportDialog_5=Langue principale \: 
+ImportDialog_6=Param\u00E8tres du segmenteur lexical \: 
+ImportFormEditor_0=** le script d''import est manquant {0} 
+ImportFormEditor_1=Import {0}
+ImportPreferencePage_0=Encodage des caract\u00E8res
+ImportSelectedText_0=Importe le texte du presse-papier
+ImportSelectedText_1=pressepapier
+ImportSelectedText_10=Langue identifiée 
+ImportSelectedText_12=La langue suivante sera utilisée 
+ImportSelectedText_2=** Le presse-papier est vide
+ImportSelectedText_3=Confirmer
+ImportSelectedText_4=Le corpus {0} va \u00EAtre supprimé
+ImportSelectedText_6=** Erreur interne \: impossible de trouver le projet 'default' 
+InternalCorpusView_0=** Erreur lors du calcul des informations du corpus
+InternalCorpusView_1=Recharger
+InternalCorpusView_2=** Erreur interne \: getText {0}
+InternalViewEditor_1=Calcul de la vue interne...
+InternalViewEditor_10=InternalView\: erreur d'initialisation \: 
+InternalViewEditor_11=OK
+InternalViewEditor_16=Erreur
+InternalViewEditor_2=Récupération du prochain résultat...
+InternalViewEditor_25=requ\u00EAte générée \: 
+InternalViewEditor_3=Rechargement de l'interface
+InternalViewEditor_4=Structure \: 
+InternalViewEditor_5=Propriété de structure \: 
+Invalid_analysis_property=Propriété invalide
+JobHandler_0=Annulation...
+JobHandler_1=Annulation
+JobHandler_2=\ \: annulation demandée
+JobHandler_3=Impossible d'annuler  
+JobsTimer_12=h, 
+JobsTimer_13=\ min and 
+JobsTimer_15=Effectué en {0} ({1}).
+JobsTimer_16=. (
+JobsTimer_17=\ msec)
+JobsTimer_19=Effectué en {0}.
+JobsTimer_2=\ msec
+JobsTimer_20=Job\: 
+JobsTimer_21=Exec\: 
+JobsTimer_5=\ sec
+JobsTimer_9=\ min et 
+LanguageSwitchHandler_0=La langue de l'interface (LOCALE) n'a pas été fixée
+LanguageSwitchHandler_1=Le fichier {0} n''existe pas
+LanguageSwitchHandler_3=Choisir la langue
+LanguageSwitchHandler_5=** Changement de langue \: URL {0} mal formée
+LanguageSwitchHandler_7=TXM.ini \: 
+LastCQPError=Derni\u00E8re erreur CQP \: 
+LexicalTableEditor_1=** Erreur \: le nombre de colonne diff\u00E8re \: avant 
+LexicalTableEditor_10=Fusion ou Suppr. de colonnes
+LexicalTableEditor_11=Fusion de colonnes \: {0}
+LexicalTableEditor_12=Suppr. de colonnes \: {0}
+LexicalTableEditor_13=Fusion ou Suppr. de lignes
+LexicalTableEditor_14=** L'importation de la table lexicale a échoué
+LexicalTableEditor_15=** Erreur lors de l'importation des données \:  
+LexicalTableEditor_16=Filtrage de lignes
+LexicalTableEditor_18=Fusion de lignes
+LexicalTableEditor_2=, Fmin 
+LexicalTableEditor_3=, Fmax 
+LexicalTableEditor_4=Appliquer
+LexicalTableEditor_5=Garder {0} lignes, Fmin {1}
+LexicalTableEditor_6=Fmin \:
+LexicalTableEditor_7=\ apr\u00E8s  
+LexicalTableEditor_8=Nombre de lignes 
+LexicalTablePreferencePage_0=Table lexicale
+LexicalTablePreferencePage_1=Fréquence minimale
+LexicalTable_1=Propriété
+LineLabelProvider_1=Ne devrait pas se produire
+LocalePreferencePage_1=Configuration de la langue de l'interface utilisateur
+LocalePreferencePage_2=Langue de l'interface 
+MacrosExplorer_0=Nouvelle macro
+MacrosExplorer_1=Créer une template de 
+MainPage_0=Page principale
+MainPage_1=Principal
+MainPage_10=\tPour aller au panneau suivant utiilisez l'onglet du bas.\n
+MainPage_11=3-\tVous pouvez sauver les param\u00E8tres d'import à l'aide de l'icone disquette.\n
+MainPage_12=4-\tPour commencer l'import, cliquez sur la fleche verte.
+MainPage_13=parallelisme
+MainPage_14=Corpora
+MainPage_15=Ajouter un corpus aligné
+MainPage_17=Entrez le nom du corpus
+MainPage_18=Feuille XSL d'entrée
+MainPage_19=Segmentation lexicale
+MainPage_2=Param\u00E8tres d''import du module {0}
+MainPage_20=Langue principale
+MainPage_22=Supprimer un corpus
+MainPage_23=Encodage des caract\u00E8res
+MainPage_25=Entrez le nom du corpus à supprimer
+MainPage_27=Liens
+MainPage_28=** Erreur lors de la récupération de l'encodage
+MainPage_29=Ajouter un lien
+MainPage_3=Dossier des sources \: 
+MainPage_30=Créer un lien à partir du corpus \: 
+MainPage_31=Selectionnez 2 corpus \:
+MainPage_33=seg
+MainPage_34=Retirer un lien
+MainPage_36=Entrez un numéro de ligne à supprimer
+MainPage_38=Retirer le lien n\u00B0
+MainPage_39=Veuillez entrer un nombre valide
+MainPage_4=Nom du corpus (base)
+MainPage_40=Premier corpus
+MainPage_42=Structure d'alignement
+MainPage_44=* \n(nom de l'archive sans extension qui contiendra le corpus)
+MainPage_45=Description
+MainPage_46=Ajouter un 
+MainPage_47=
+MainPage_49=Le nom de corpus est obligatoire
+MainPage_5=Ouverture...
+MainPage_50=Rafraichir les liens
+MainPage_52=Le dossier des sources ne contient pas de fichier import.xml
+MainPage_53=Erreur lors de la création du fichier 'the import.xml'
+MainPage_54=Chargement des param\u00E8tres depuis \: 
+MainPage_55=Param\u00E8tres \:  
+MainPage_6=Sauvegarde...
+MainPage_7=Début...
+MainPage_8=1- Cliquez sur l'icone "dossier" pour choisir le dossier des sources\n
+MainPage_9=2- Si vous souhaitez ajouter des précisions d'import comme les sous-corpus et partition par défaut o\u00F9 les types des propriétés léxicales
+MergeCols_1=Nouveau nom
+MergeCols_2=Nom de la nouvelle colonne issue de la fusion
+MergeCols_5=Noms \: 
+MergeCols_6=Fin de la fusion des colonnes.
+MergeDeleteDialog_0=fusionner
+MergeDeleteDialog_1=Fusionner/Supprimer
+MergeDeleteDialog_4=nom du résultat de la fusion
+MergeLines_2=Saisissez le nom de la nouvelle ligne issue de la fusion
+MetadataPage_1=Aperçu des métadonnées
+MetadataPage_2=Param\u00E8tres des métadonnées
+MetadataPage_3=Rafraichir
+MetadataPage_4=Titre des colonnes du fichier de métadonnées 
+MetadataPage_5=Identifiant de texte
+MetadataPage_7=Pas de fichier de métadonnées {0}
+MultipleValueTreeDialog_0=ajout\: 
+NavigationWidget_0=Erreur lors de la récupération des données à l'indice \: 
+ObjectExplorer_0=Informations \: 
+ObjectExplorer_10=Supprimer une propriété
+ObjectExplorer_12=Saisir le nom d'une propriété à supprimer
+ObjectExplorer_15=Ajouter une propriété aux descendants
+ObjectExplorer_2=Valeur
+ObjectExplorer_21=Retirer une propriété aux descendants
+ObjectExplorer_26=Nom
+ObjectExplorer_27=Clé
+ObjectExplorer_3=Nouvelle propriété
+ObjectExplorer_4=Nom de la propriété
+ObjectExplorer_5=Saisir le nom d'une propriété à ajouter
+ObjectExplorer_7=nouveau nom
+ObjectExplorer_9=
+ObjectSelectionDialog_0=Sélecteur de valeurs
+ObjectSelectionDialog_3=Trouvé {0} valeur(s)
+ObjectSelectionDialog_5=Expression réguli\u00E8re incorrecte \: {0}
+ObjectSelector_0=Objet \: 
+ObjectSelector_1=Sélection
+OpenBiblio_1=** Aucun texte {0} dans le corpus
+OpenBiblio_2=Sélectionner un texte
+OpenBiblio_7=** Impossible de trouver le texte {0} dans le corpus {1}
+OpenBiblio_9=** Le texte {0} n''a aucune entrée bibliographique
+OpenBrowser_0=** Erreur lors de l'ouverture de la fiche bibliographique 
+OpenBrowser_1=. URL
+OpenEdition_0=Sélectionner une partie
+OpenEdition_1=** \u00C9chec de chargement de l''édition de {0}
+OpenEdition_3=Ouverture de l''édition de {0}
+OpenEdition_5=** Impossible de trouver l''édition du premier texte d''identifiant {0} dans le corpus
+OpenEdition_7=** Impossible de trouver l'édition par défaut 
+OpenEdition_8=** Impossible de trouver la premi\u00E8re page de l'édition 
+OpenEmptyEditor_2=** Bibliographie \: dossier {0} introuvable
+OpenGraph_8=** Impossible d''ouvrir le graphique {0}
+OpenParaBrowser_0=Ouverture du Navigateur//
+OpenSVGGraph_0=Graphique SVG 
+OpenTXMUserPreferences_0=Param\u00E8tres par défaut
+OpenURI_0=** OpenURL \: Bureau non supporté
+OpenURI_1=** Erreur lors de l''ouverture du fichier {0}
+ParaBrowserEditor_11=ParaBrowser \: get next({0}) struct {1} paraid {2} value {3}
+ParaBrowserEditor_18=-Aller à 
+ParaBrowserEditor_19=-Rester sur place \!\!\!\!\! NEXT est 
+ParaBrowserEditor_21=_
+ParaBrowserEditor_22=Ouvrir le Navigateur interne
+ParaBrowserEditor_3=Réf \: 
+ParaBrowserEditor_4=Références
+ParaBrowserEditor_5=Structure
+ParaBrowserEditor_9=Réf \: {0} \: {1}
+ParametersDialog_0=Saisie des paramètres de {0}
+ParametersDialog_1=Exécution
+ParametersDialog_10=Erreur \: widget sans nom \: '
+ParametersDialog_11=(* champ obligatoire)
+ParametersDialog_12=** Erreur \:valeur non fournie \: 
+ParametersDialog_13=** Erreur \: format éronné\: 
+ParametersDialog_14=** Erreur \: déclaration du nom de l'@Option \: 
+ParametersDialog_15=** Erreur \: le bean n'est pas un object groovy.lang.Script
+ParametersDialog_17=** Erreur \: le binding ''monitor'' (classe JobHandler) n''a pas été fait. Obtenu \: {0}.
+PartitionComposer_0=Structure \: 
+PartitionComposer_11=Supprimer
+PartitionComposer_2=Sélectionner les valeurs à affecter \: 
+PartitionComposer_3=Nouvelle partie
+PartitionComposer_5=Partie
+PartitionComposer_6=Supp. toutes les parties
+PartitionComposer_8=Titre \: 
+PartitionComposer_9=Affecter
+PartsSize_0=Trier par taille
+PartsSize_10=Dimensions de la partition {0} du corpus {1}
+PartsSize_18=Dimensions \: {0}
+PartsSize_2=Nombre de mots par partie
+PasteFile_1=** Erreur lors de la copie  
+PasteFile_3=** \u00C9chec de la suppression
+PasteFile_4=\: 
+Preferences_Menu_Label=Préférences
+ProgressionForm_0=Type \:
+ProgressionForm_1=cumulatif
+ProgressionForm_10=Répété
+ProgressionForm_11=N&&B
+ProgressionForm_12=REQUETES \:
+ProgressionForm_13=Ajouter
+ProgressionForm_14=Supprimer
+ProgressionForm_2=densité
+ProgressionForm_3=Echelle
+ProgressionForm_5=Options d'affichage
+ProgressionForm_6=Unité structurelle \:
+ProgressionForm_7=Propriété \:
+ProgressionForm_8=Exp. Rég. \:
+ProgressionForm_9=Syles de ligne différents
+ProgressionPreferencePage_2=Progression
+ProgressionPreferencePage_3=Graphe de progression cumulatif
+ProgressionPreferencePage_4=Niveaux de gris
+ProgressionPreferencePage_5=Style de ligne unique
+ProgressionPreferencePage_6=Répéter les valeurs de propriétés de structures
+ProgressionPreferencePage_7=\u00C9chelle des limites de structures
+PropertiesSelector_0=Impossible de charger les propriétés du corpus {0} ({1})
+PropertiesSelector_1=Propriétés \: 
+PropertiesSelector_2=Editer
+PropertySelector_0=Sélectionner une propriété
+PurgeCorpora_0=Attention \! Cette commande va supprimer tous les corpus sélectionnés. Continuer ?
+PurgeCorpora_1=Corpus à supprimer 
+PurgeCorpora_10=Création d'un nouvel espace de travail
+PurgeCorpora_12=Redémarrage de la plateforme
+PurgeCorpora_13=** Erreur \: espace de travail introuvable \: 
+PurgeCorpora_2=** Attention \: corpus non supprimés \: 
+PurgeCorpora_3=Attention \! Cette commande va supprimer tous les corpus. Continuer ?
+PurgeCorpora_4=** Erreur \: la variable d'environnement 'TXMHOME' n'est pas configurée (sa valeur standard est '$HOME/TXM'). Abandon.
+PurgeCorpora_5=Supprime tous les corpus
+PurgeCorpora_7=** \u00C9chec de la suppression des corpus
+PurgeCorpora_9=** \u00C9chec de la suppression du registre
+QueriesView_1=Tout exporter
+QueriesView_10=erreur \: 
+QueriesView_5=Requ\u00EAtes \:\n
+QueryAssistDialog_0=Assistant de Requ\u00EAte
+QueryAssistDialog_1=Mot supplémentaire
+QueryAssistDialog_10=correspond à
+QueryAssistDialog_11=commence par
+QueryAssistDialog_12=se termine par
+QueryAssistDialog_13=contient
+QueryAssistDialog_2=Je recherche \: 
+QueryAssistDialog_3=mot
+QueryAssistDialog_32=suivi de 
+QueryAssistDialog_33=séparé d'au moins 0 mot
+QueryAssistDialog_34=séparé d'au moins 1 mot
+QueryAssistDialog_8=un mot dont
+QueryIndexEditor_0=Index de requ\u00EAte de \: 
+QueryIndexEditor_1=remplacement des lignes \: 
+QueryIndexEditor_10=requ\u00EAtes
+QueryIndexEditor_11=
+QueryIndexEditor_2=Erreur lors de l'ajout de la requ\u00EAte \: 
+QueryIndexEditor_3=Requ\u00EAte ajoutée
+QueryIndexEditor_4=Chargement depuis un fichier
+QueryIndexEditor_5=*.properties
+QueryIndexEditor_6=Le fichier suivant ne peut \u00EAtre lu \: 
+QueryIndexEditor_7=Vers les concordances
+QueryIndexEditor_8=Vers la progression
+QueryIndexEditor_9=Supprimer les lignes
+RPreferencePage_0=RServe lancé en mode debug
+RPreferencePage_1=Port (valeur par défaut \: 6311)
+RPreferencePage_2=Chemin vers l'&exécutable de R
+RPreferencePage_3=Connexion distante
+RPreferencePage_4=Adresse du serveur
+RPreferencePage_5=Utilisateur
+RPreferencePage_6=Mot de passe
+RPreferencePage_7=Utiliser la transmission de données R par fichier
+RVariablesView_1=Rafra\u00EEchir les variables
+RVariablesView_2=Afficher le journal des évaluations
+RVariablesView_9=nom TXM {0} >> nom R {1}
+ReferencerEditor_0=Calcul des références de <{0}> dans {1} avec la propriété {2} et le patron {3}
+ReferencerEditor_10=Récupération des index
+ReferencerEditor_11=Références
+ReferencerEditor_12=Regroupement des positions par index
+ReferencerEditor_13=Mise à jour de l'interface
+ReferencerEditor_17=Affichage de la premi\u00E8re page de résultats
+ReferencerEditor_19=Affichage de la derni\u00E8re page de résultats
+ReferencerEditor_21=Affichage de la page de résultats suivante 
+ReferencerEditor_23=Affichage de la page de résultats précédente 
+ReferencerEditor_25=Ouverture de la concordance
+ReferencerEditor_5=Calcul des références de {0}
+ReferencerEditor_6=Patron des références 
+ReferencerEditor_7=Aucun résultat
+ReferencerEditor_8=Récupération des occurrences
+ReferencerEditor_9=Unités
+ReferencerPreferencePage_2=Références
+ReferencerPreferencePage_3=Ordonner les références par fréquence
+RenameFile_0=Renommer le fichier
+RenameFile_2=Renommage par \: 
+RenameFile_3=** \u00C9chec du renommage 
+ProgressionDialog_0=Param\u00E8tres de la progression 
+ProgressionDialog_1=Type de graphe \: 
+ProgressionDialog_10=Progression \: mauvaise expression réguli\u00E8re \: 
+ProgressionDialog_11=\u00C9chelle des bandeaux
+ProgressionDialog_13=Options d'affichage
+ProgressionDialog_14=Style de ligne unique
+ProgressionDialog_15=Répéter les valeurs identiques
+ProgressionDialog_16=N/B
+ProgressionDialog_17=Erreur \: multiplicateur de bande \: 
+ProgressionDialog_2=cumulatif
+ProgressionDialog_3=densité
+ProgressionDialog_4=Unité structurelle \: 
+ProgressionDialog_5=supprimer
+ProgressionDialog_7=Exp. Rég. \: 
+ProgressionDialog_8=Requ\u00EAtes \: 
+ProgressionDialog_9=ajouter
+ProgressionEditorInput_0=PROGRESSION NAME
+RestartTXM_0=Rechargement des vues...
+RestartTXM_1=Redémarrer TXM
+RunGroovyScript_0=Exécution du script
+RunGroovyScript_1=&Exécuter un script
+RunGroovyScript_2=Exécuter un script
+RunGroovyScript_3=*.groovy
+RunGroovyScript_4=Erreur lors de l''ouverture du script groovy \: {0}
+RunGroovyScript_8=** Erreur lors de l''exécution du script groovy \: {0}
+RunGroovyScript_9=Exécution du script
+RunGroovyScript_10=Répertoire de sources :
+SVGGraphicEditor_1=Impossible d'afficher un graphique avec les informations fournies.
+SaveAs_2=** \u00C9chec de la sauvegarde 
+ScriptPreferencePage_0=Prochain numéro de session 
+ScriptPreferencePage_3=Dossier &racine
+SendToR_0=Transfert vers l'espace de travail R \: 
+SendToR_3=Rechargement des vues...
+SetContextSize_1=Options d'affichage des &contextes
+SetContextSize_2=Options d'affichage des contextes
+SetContextSize_3=Taille du contexte gauche
+SetContextSize_4=Taille du contexte droit
+SetEncoding_0=Changer l'encodage des caract\u00E8res
+SetEncoding_1=Changer l'encodage des caract\u00E8res.\n\n\tEncodage actuel \: 
+SetEncoding_2=\n\tEncodage par défaut \:  
+SetLineNumber_0=Options de pagination
+SetLineNumber_1=Lignes par page \: 
+SetSortProperty_1=Options de tri
+SetSortProperty_2=Options de tri
+SetSortProperty_3=Options de tri
+ShowSelected_4=Régler la propriété 'LANG'
+ShowSvgHelp_0=Raccourcis clavier graphiques
+ShowSvgHelp_1=\tTranslation \:  Clic droit + Glisser\n
+ShowSvgHelp_2=\tZoom +/- \: Roulette OU Shift + Clic Droit + Glisser\n
+ShowSvgHelp_3=\tZoomer sur la sélection \: Ctrl + Clic Gauche + Glisser\n
+ShowSvgHelp_4=\t\n
+ShowSvgHelp_5=\t\u00C9tat initial \: F5
+SingularValuesEditor_0=Entrée erronée
+SortPropertySelection_0=Options de tri
+SpecificitiesPreferencePage_0=Montrer les p-values
+SpecificitiesPreferencePage_1=Graphique N/B
+SpecificitiesPreferencePage_2=Spécificités
+SpecificitiesPreferencePage_3=Format des indices (par défaut \: %,.1f)
+SpecificitiesPreferencePage_4=Regrouper les barres par les lignes de la table
+SpecificitiesPreferencePage_5=Afficher les lignes
+SpecificitiesPreferencePage_6=Afficher les barres
+SpecificitiesPreferencePage_7=Banalité
+SpecificitiesPreferencePage_8=Indice maximum
+SpecificitiesResultEditorInput_0=Valeurs
+SpecificitiesResultEditorInput_1=Graphique
+SpecificitiesResultEditorInput_11=Flottant
+SpecificitiesResultEditorInput_2=On ne peut pas calculer à la fois les spécificités d'une partie et des formes
+SpecificitiesResultEditorInput_5=Fréquence totale
+SpecificitiesResultEditorInput_6=Sous-fréquence
+SpecificitiesResultEditorInput_7=Index des spécificités
+SpecificitiesTableEditor_0=Le calcul des spécificités a échoué
+SpecificitiesTableEditor_1=** Erreur lors du tri des spécificités
+SpecificitiesTableEditor_11=T
+SpecificitiesTableEditor_16=Graphique \: 
+SpecificitiesTableEditor_17=Chargement de la table des spécificités
+SpecificitiesTableEditor_5=Erreur inattendue dans le moteur statistique R
+SpecificitiesTableEditor_8=Calculer le diagramme en b\u00E2tons des lignes sélectionnées
+Structure_field_not_empty=Le champ structure ne doit pas \u00EAtre vide.
+Submit_0=Enregistrer
+TXMCqpServerWatcher_0=Le moteur de recherche est arr\u00EAté
+TXMCqpServerWatcher_1=Veuillez attendre que le moteur de recherche ai redémarré...
+TXMRServeWatcher_0=Le moteur statistique est arr\u00EAté
+TXMRServeWatcher_1=Veuillez attendre que le moteur statistique ai redémarré...
+TXMRServeWatcher_2=Ok
+TXMRServeWatcher_3=Rechargement de la vue des corpus...
+TXMRServeWatcher_4=Veuillez patienter...
+TablableVector_0=Les deux tables doivent \u00EAtre de m\u00EAme taille.
+TableEditor_0=Impossible d'afficher un tableau avec les informations fournies
+TableKeyListener_1=Saisissez l'expression réguli\u00E8re de votre recherche
+TableKeyListener_6=Lignes copiées \: \n
+TableSorter_0=Le numéro de colonne est trop grand.
+TextometriePreferencePage_0=Vérifier les mises à jour au démarrage
+TextometriePreferencePage_1=Sauvegarde générale des préférences
+TextometriePreferencePage_14=Préférences sauvegardées dans 
+TextometriePreferencePage_15=Exporter dans un fichier
+TextometriePreferencePage_18=Préférences importées depuis 
+TextometriePreferencePage_19=TXM a besoin de fermer la fen\u00EAtre des préférences pour les mettre à jour
+TextometriePreferencePage_2=Mises à jour automatiques
+TextometriePreferencePage_20=Importer à partir d'un fichier
+TextualPlansSection_milestone_label=Elements milestones
+TextualPlansSection_milestone_tooltip=Liste des éléments milestones à encoder dans les mots (séparés par une virgule ",")
+TextualPlansSection_outsidetext_label=Hors texte
+TextualPlansSection_outsidetext_tooltip=Liste des balises codant le hors-texte
+TextualPlansSection_outsidetexttoedit_label=Hors texte à éditer
+TextualPlansSection_outsidetexttoedit_tooltip=Liste des balises codant le hors-texte à afficher dans l'édition)
+TextualPlansSection_save_error=Erreur, les parametres des plans textuels ne sont pas enregistrés.
+TextualPlansSection_title=Plans textuels
+TextualPlansSection_update_error=Erreur, les parametres des plans textuels ne sont pas chargés.
+TreeTaggerPreferencePage_0=Ne pas normaliser les apostrophes à ' 
+TreeTaggerPreferencePage_1=Chemin du dossier d'installation
+TreeTaggerPreferencePage_2=Chemin du dossier de mod\u00E8les linguistiques
+TreeTaggerPreferencePage_3=Options [séparées par '  ' (2 blancs)]
+TxmBrowser_0=Début
+TxmBrowser_10=Impossible de lancer le navigateur interne. Vous devez régler ce param\u00E8tre dans les préférences, au menu \: Général / Navigateur web
+TxmBrowser_11=Pas de texte précédent
+TxmBrowser_12=Pas de texte suivant
+TxmBrowser_5=page précédente
+TxmBrowser_6=page suivante
+TxmBrowser_7=Fin
+TxmBrowser_8=prochain texte
+TxmBrowser_9=texte précedent
+TxmCommand_1=Chargement de l'extension 
+TxtEditor_0=EditeurdeTexte\: 
+TxtEditor_1=Encodage trouvé 
+UIParameterException_0=Erreur  
+UserPreferencePage_0=Page Utilisateur
+UserPreferencePage_3=Pas de confirmation pour supprimer un objet
+ViewPropertySelectionDialog_0=Options d'affichage
+ViewPropertySelection_0=Options d'affichage
+IndexEditor_0=La requ\u00EAte est vide
+IndexEditor_1=** \u00C9chec du calcul de l'index
+IndexEditor_10=Echec de la récupération de la derni\u00E8re errur CQP\:  
+IndexEditor_17=Index\:\n\tPartition {0}\n\tRequ\u00EAte {1}\n\tpropriétés {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_18=Index\:\n\tCorpus {0}\n\tRequ\u00EAte {1}\n\tpropriétés {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_2=Index de <{0}> avec la propriété {1} dans le corpus {2}
+IndexEditor_20=Index de <{0}> avec la propriété {1} dans la partition {2}
+IndexEditor_22=Impossible d'initialiser le tableau d'index
+IndexEditor_25=, fmin 
+IndexEditor_26=, fmax 
+IndexEditor_27=t 
+IndexEditor_28=, v 
+IndexEditor_29=Ouverture du tableau d'index
+IndexEditor_3=Requ\u00EAte \: 
+IndexEditor_31=Aucun résultat
+IndexEditor_33=Calcul de l'index
+IndexEditor_36=Colonne à trier
+IndexEditor_37=Tri terminé.
+IndexEditor_4=&Chercher
+IndexEditor_5=Fmin \: 
+IndexEditor_6=Fmax \: 
+IndexEditor_7=Vmax \: 
+IndexEditor_8=Résultats par page \: 
+IndexEditor_9=Seuils \: 
+IndexToCooccurrence_0=** Erreur lors de la liaison entre l'Index et les Cooccurrences
+IndexToLexicalTable_0=Impossible de créer une table lexicale à partir d'un Index créé sur un Corpus
+WordCloudPreferencePage_0=Nombre maximum de mots
+WordCloudPreferencePage_1=Fréquence minimale
+WordCloudPreferencePage_2=Pourcentage de mots inclinés
+WordCloudPreferencePage_3=Couleurs aléatoires

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_fr.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/cmdparameters/ParametersView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/cmdparameters/ParametersView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/cmdparameters/ParametersView.java	(revision 122)
@@ -0,0 +1,163 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.cmdparameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IPartService;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.ca.CaEditor;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.referencer.ReferencerEditor;
+// TODO: Auto-generated Javadoc
+/**
+ * Display the internal hierarchie of a MainCorpus
+ * @author mdecorde.
+ */
+public class ParametersView extends ViewPart implements IPartListener {
+
+	CustomizableEditor selectedEditor;
+
+	Label currentEditorLabel;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.cmdparameters.ParametersView"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new queries view.
+	 */
+	public ParametersView() {
+		IPartService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();
+		service.addPartListener(this);
+	}
+
+	@Override
+	public void dispose() {
+		IPartService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService();
+		service.removePartListener(this);
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+
+	}
+
+	EditorPart desactivated, activated, broughtToTop, closed, opened;
+
+	public void updateEditorParameters() {
+
+		EditorPart editor = activated;
+		if (editor == null) editor = broughtToTop;
+		if (editor == null) editor = opened;
+
+		if (editor == null) currentEditorLabel.setText("No editor selected.");
+		//		StringBuffer buffer = new StringBuffer();
+		//		if (activated != null)
+		//			buffer.append("\neditor activated: "+activated.getTitle());
+		//		if (broughtToTop != null)
+		//			buffer.append("\neditor on top: "+broughtToTop.getTitle());
+		//		if (closed != null)
+		//			buffer.append("\neditor closed: "+closed.getTitle());
+		//		if (desactivated != null)
+		//			buffer.append("\neditor desactivated: "+desactivated.getTitle());
+		//		if (opened != null)
+		//			buffer.append("\neditor opened: "+opened.getTitle());
+		if (editor instanceof ConcordancesEditor) {
+			currentEditorLabel.setText("Concordances "+editor.getTitle()+":\n\tquery\n\tproperty\n\tsort\n\t...");
+		} else if (editor instanceof IndexEditor) {
+			currentEditorLabel.setText("Index "+editor.getTitle()+":\n\tquery\n\tproperty\n\tsort\n\t...");
+		} else if (editor instanceof CooccurrencesEditor) {
+			currentEditorLabel.setText("Cooccurences "+editor.getTitle()+":\n\tquery\n\tproperty\n\tsort\n\t...");
+		} else if (editor instanceof CaEditor) {
+			currentEditorLabel.setText("CaEditor "+editor.getTitle()+":\n\tquery\n\tproperty\n\tsort\n\t...");
+		} else if (editor instanceof ReferencerEditor) {
+			currentEditorLabel.setText("References "+editor.getTitle()+":\n\tquery\n\tproperty\n\tsort\n\t...");
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		currentEditorLabel = new Label(parent, SWT.NONE);
+		updateEditorParameters();
+	}
+
+	@Override
+	public void partActivated(IWorkbenchPart part) {
+		if (part instanceof EditorPart)
+			activated = (EditorPart)part;
+		updateEditorParameters();
+	}
+
+	@Override
+	public void partBroughtToTop(IWorkbenchPart part) {
+		if (part instanceof EditorPart)
+			broughtToTop = (EditorPart)part;
+		//updateLabel();
+	}
+
+	@Override
+	public void partClosed(IWorkbenchPart part) {
+		if (part instanceof EditorPart) {
+			closed = (EditorPart)part;
+		}
+		updateEditorParameters();
+	}
+
+	@Override
+	public void partDeactivated(IWorkbenchPart part) {
+		if (part instanceof EditorPart)
+			desactivated = (EditorPart)part;
+		//updateLabel();
+	}
+
+	@Override
+	public void partOpened(IWorkbenchPart part) {
+		if (part instanceof EditorPart)
+			opened = (EditorPart)part;
+		//updateLabel();
+	}
+
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/cmdparameters/ParametersView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/knowledgerepositories/KRView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/knowledgerepositories/KRView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/knowledgerepositories/KRView.java	(revision 122)
@@ -0,0 +1,380 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.knowledgerepositories;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Arrays;
+
+
+
+
+
+
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.TreeViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.contexts.IContextService;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.annotation.repository.LocalKnowledgeRepository;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.annotation.InitializeKnowledgeRepository;
+import org.txm.rcpapplication.commands.krview.Copy;
+import org.txm.rcpapplication.commands.krview.Informations;
+import org.txm.rcpapplication.commands.krview.Reload;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
+
+/**
+ * Display the Knowledge repositories currently loaded
+ * 
+ * author mdecorde.
+ */
+public class KRView extends ViewPart {
+
+	/** The empty list to filled the view at startup. */
+	ArrayList<Object> empty = new ArrayList<Object>();
+
+	/** The composites. */
+	Control[] composites = new Control[3];
+
+	/** The tv. */
+	TreeViewer tv;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.knowledgerepositories.KRView"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new queries view.
+	 */
+	public KRView() {
+		// System.out.println(Messages.ObjectExplorer_9);
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		KRView baseView = (KRView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						KRView.ID);
+		if (baseView != null)
+			baseView.tv.refresh();
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+		KRView baseView = (KRView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						KRView.ID);
+		if (baseView != null)
+			baseView._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+		
+		KnowledgeRepository[] repos = KnowledgeRepositoryManager.getKnowledgeRepositories();
+		if (repos == null) return;
+		if (tv != null) { 
+			tv.setInput(repos);
+			refresh();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		// System.out.println(Messages.ObjectExplorer_9);
+
+		parent.setLayout(new GridLayout(1, true));
+		Button refresh = new Button(parent, SWT.PUSH);
+		refresh.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				false));
+		refresh.setText("⟲");
+		refresh.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent arg0) {
+				// force loading KR of all corpora
+				try {
+					for (MainCorpus corpus : CorpusManager.getCorpusManager().getCorpora()) {
+						for (KnowledgeRepository kr : InitializeKnowledgeRepository.get(corpus.getMainCorpus())) {
+							kr.checkConnection();
+						}
+					}
+				} catch (CqiClientException e) {
+					e.printStackTrace();
+					return;
+				}
+
+				_reload();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent arg0) { }
+		});
+
+		tv = new TreeViewer(parent);
+		tv.getTree().setLayoutData(
+				new GridData(GridData.FILL, GridData.FILL, true, true));
+		
+		tv.setContentProvider(new KRTreeProvider());
+		tv.setLabelProvider(new KRLabelProvider());
+		
+		_reload();
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				TreeSelection selection = (TreeSelection) tv.getSelection();
+				Informations.show(selection);
+			}
+		});
+
+//		TreeViewerColumn name = new TreeViewerColumn(tv, SWT.NONE);
+//		name.getColumn().setText("name");
+//		TreeViewerColumn desc = new TreeViewerColumn(tv, SWT.NONE);
+//		desc.getColumn().setText("desc");
+		
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+		
+		IContextService contextService = (IContextService)getSite().getService(IContextService.class);
+		contextService.activateContext("org.txm.rcp.annotation.krview");
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		
+	}
+
+	/**
+	 * The Class TxmObjectLabelProvider.
+	 */
+	public class KRLabelProvider extends LabelProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+		 */
+		@Override
+		public String getText(Object element) {
+			if (element instanceof KnowledgeRepository)
+				return ((KnowledgeRepository) element).getName();
+			else if (element instanceof AnnotationType)
+				return ((AnnotationType) element).getId()+((AnnotationType) element).getEffect().toSuffix();
+			else if (element instanceof TypedValue)
+				return ((TypedValue) element).getStandardName();
+			return NLS.bind(Messages.QueriesView_10, element);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+		 */
+		@Override
+		public final Image getImage(Object element) {
+			if (element instanceof SQLKnowledgeRepository)
+				return IImageKeys.getImage(IImageKeys.WORLD);
+			return null;
+		}
+	}
+
+	/**
+	 * The Class TxmObjectTreeProvider.
+	 */
+	public class KRTreeProvider implements ITreeContentProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		@Override
+		public Object[] getChildren(Object element) {
+			if (element instanceof KnowledgeRepository) {
+				KnowledgeRepository kr = ((KnowledgeRepository) element);
+				List<AnnotationType> types = kr.getAllAnnotationTypes();
+
+				return types.toArray();
+			} else if (element instanceof AnnotationType) {
+				AnnotationType t = ((AnnotationType) element);
+				KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(t.getKnowledgeRepository());
+				if (kr instanceof LocalKnowledgeRepository) {
+					LocalKnowledgeRepository krl = (LocalKnowledgeRepository) kr;
+					try {
+						return krl.getValues(t).toArray();
+					} catch (Exception e) {
+						System.out.println("Error while reading KR values: "+kr+ " for type="+t);
+						Log.printStackTrace(e);
+					}
+				}
+				return new Object[0];
+			} else {
+				return new Object[0];
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		@Override
+		public Object getParent(Object element) {
+			if (element instanceof KnowledgeRepository) {
+				return null;
+			} else if (element instanceof AnnotationType) {
+				return ((AnnotationType)element).getKnowledgeRepository();
+			} else {
+				return null;
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		@Override
+		public boolean hasChildren(Object element) {
+			if (element instanceof KnowledgeRepository) {
+				KnowledgeRepository kr = ((KnowledgeRepository) element);
+				List<AnnotationType> types = kr.getAllAnnotationTypes();
+				return types.size() > 0;
+			} else if (element instanceof KnowledgeRepository[]) {
+				return ((KnowledgeRepository[])element).length > 0;
+			} else if (element instanceof AnnotationType) {
+				AnnotationType t = ((AnnotationType) element);
+				KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(t.getKnowledgeRepository());
+				
+				if (kr instanceof LocalKnowledgeRepository) {
+					LocalKnowledgeRepository krl = (LocalKnowledgeRepository) kr;
+					try {
+						return krl.hasValues(t);
+					} catch (Exception e) {
+						System.out.println("Error while reading KR values: "+krl+ " for type="+t);
+						Log.printStackTrace(e);
+					}
+				}
+				return false;
+			}  else {
+				return false;
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		@Override
+		public Object[] getElements(Object element) {
+			if (element instanceof KnowledgeRepository) {
+				KnowledgeRepository kr = ((KnowledgeRepository) element);
+				List<AnnotationType> types = kr.getAllAnnotationTypes();
+				return types.toArray();
+			} else if (element instanceof KnowledgeRepository[]) {
+				return ((KnowledgeRepository[])element);
+			} else {
+				return new Object[0];
+			}
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		@Override
+		public void dispose() { }
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {	}
+	}
+
+	public static void showType(AnnotationType type) {
+		
+		TreeViewer tv = getTree();
+		if (tv != null) {
+			StructuredSelection selection = new StructuredSelection(type);
+			tv.expandToLevel(selection, AbstractTreeViewer.ALL_LEVELS);
+			tv.setSelection(selection);
+		} else {
+			// call org.eclipse.ui.handlers.ShowViewHandler
+			// extends the command to select the type ?
+		}
+	}
+
+	public static TreeViewer getTree() {
+		KRView baseView = (KRView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						KRView.ID);
+		if (baseView != null)
+			return baseView.tv;
+		
+		return null;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/knowledgerepositories/KRView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/BasesView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/BasesView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/BasesView.java	(revision 122)
@@ -0,0 +1,359 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.Toolbox;
+import org.txm.objects.Base;
+import org.txm.objects.Edition;
+import org.txm.objects.Page;
+import org.txm.objects.Project;
+import org.txm.objects.Script;
+import org.txm.objects.Text;
+import org.txm.objects.TxmObject;
+import org.txm.objects.Workspace;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.commands.base.DeleteObject;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * display the hierarchy of the workspace Projects, Bases, Texts, Edition and
+ * Pages. @ author mdecorde
+ * 
+ */
+public class BasesView extends ViewPart {
+		
+	/** The tv. */
+	TreeViewer tv;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.BasesView"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new bases view.
+	 */
+	public BasesView() {
+		// System.out.println(Messages.ObjectExplorer_9);
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		BasesView baseView = (BasesView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						BasesView.ID);
+		if (baseView != null)
+			baseView.tv.refresh();
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+		BasesView baseView = (BasesView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						BasesView.ID);
+		if (baseView != null)
+			baseView._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+		tv.setContentProvider(new TxmObjectTreeProvider());
+		tv.setLabelProvider(new TxmObjectLabelProvider());
+		tv.setInput(Toolbox.workspace);
+		refresh();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		// System.out.println(Messages.ObjectExplorer_9);
+		tv = new TreeViewer(parent);
+		tv.setContentProvider(new TxmObjectTreeProvider());
+		tv.setLabelProvider(new TxmObjectLabelProvider());
+		tv.setInput(Toolbox.workspace);
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				TreeSelection selection = (TreeSelection) tv.getSelection();
+				if (selection.getFirstElement() instanceof Corpus) {
+					File selectedItem = ((Corpus) selection.getFirstElement())
+							.getFirstText().getSource();
+					EditFile.openfile(selectedItem.getAbsolutePath());
+				} else if (selection.getFirstElement() instanceof Text) {
+					File selectedItem = ((Text) selection.getFirstElement())
+							.getSource();
+					EditFile.openfile(selectedItem.getAbsolutePath());
+				} else if (selection.getFirstElement() instanceof Edition) {
+					Edition edition = ((Edition) selection.getFirstElement());
+					Page firstpage = edition.getFirstPage();
+					TXMBrowser editor = OpenBrowser.openEdition(firstpage
+							.getFile().getAbsolutePath(), edition.getName());
+					editor.showPage(firstpage);
+				} else if (selection.getFirstElement() instanceof Page) {
+					Page page = ((Page) selection.getFirstElement());
+					TXMBrowser editor = OpenBrowser.openEdition(page.getFile()
+							.getAbsolutePath());
+					editor.showPage(page);
+				}
+			}
+		});
+
+		tv.getTree().addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+				if (e.keyCode == SWT.DEL) {
+					ISelection sel = tv.getSelection();
+					if (sel instanceof IStructuredSelection) {
+						if (!DeleteObject.askContinueToDelete((IStructuredSelection)sel)) return;
+						DeleteObject.delete(sel);
+					}
+				}
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/**
+	 * The Class TxmObjectLabelProvider.
+	 */
+	public class TxmObjectLabelProvider extends LabelProvider {
+
+		/** The image table. */
+		private Map<ImageDescriptor, Image> imageTable = new HashMap<ImageDescriptor, Image>();
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+		 */
+		@Override
+		public String getText(Object Element) {
+			return ((TxmObject) Element).getName();
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+		 */
+		@Override
+		public final Image getImage(Object element) {
+			ImageDescriptor imageDescriptor = AbstractUIPlugin
+					.imageDescriptorFromPlugin(Application.PLUGIN_ID,
+							IImageKeys.FILE);
+			if (element instanceof Project)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.PROJECT);
+			else if (element instanceof Base)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.BASE);
+			else if (element instanceof MainCorpus)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.CORPUS);
+			else if (element instanceof Text)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.TEXT);
+			else if (element instanceof Edition)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.EDITION);
+			else if (element instanceof Page)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.FILE);
+			else if (element instanceof Script)
+				imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+						Application.PLUGIN_ID, IImageKeys.SCRIPT);
+
+			Image image = imageTable.get(imageDescriptor);
+			if (image == null) {
+				image = imageDescriptor.createImage();
+				imageTable.put(imageDescriptor, image);
+			}
+			return image;
+		}
+	}
+
+	/**
+	 * The Class TxmObjectTreeProvider.
+	 */
+	public class TxmObjectTreeProvider implements ITreeContentProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		@Override
+		public Object[] getChildren(Object element) {
+			if (element instanceof Workspace) {
+				return ((Workspace) element).getProjects().toArray();
+			} else if (element instanceof Project) {
+				return ((Project) element).getBases().toArray();
+			} else if (element instanceof Base) {
+				return ((Base) element).getCorpora().values().toArray();
+			} else if (element instanceof MainCorpus) {
+				return ((Corpus) element).getTexts().toArray();
+			} else if (element instanceof Text) {
+				return ((Text) element).getEditions().toArray();
+			} else if (element instanceof Edition) {
+				return ((Edition) element).getPages().toArray();
+			} else if (element instanceof Script) {
+				return null;
+			}
+			return null;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		@Override
+		public Object getParent(Object element) {
+			if (element instanceof Workspace) {
+				return null;
+			} else if (element instanceof Project) {
+				return ((Project) element).getWorkspace();
+			} else if (element instanceof Base) {
+				return ((Base) element).getProject();
+			} else if (element instanceof MainCorpus) {
+				return ((MainCorpus) element).getBase();
+			} else if (element instanceof Text) {
+				return ((Text) element).getCorpus();
+			} else if (element instanceof Edition) {
+				return ((Edition) element).getText();
+			} else if (element instanceof Page) {
+				return ((Page) element).getEdition();
+			} else if (element instanceof Script) {
+				return ((Text) element).getCorpus();
+			}
+			return null;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		@Override
+		public boolean hasChildren(Object element) {
+			if (element instanceof Workspace) {
+				return !((Workspace) element).getProjects().isEmpty();
+			} else if (element instanceof Project) {
+				return !((Project) element).getBases().isEmpty();
+			} else if (element instanceof Base) {
+				return !((Base) element).getCorpora().values().isEmpty();
+			} else if (element instanceof Corpus) {
+				return !((Corpus) element).getTexts().isEmpty();
+			} else if (element instanceof Text) {
+				return !((Text) element).getEditions().isEmpty();
+			} else if (element instanceof Edition) {
+				return !((Edition) element).getPages().isEmpty();
+			} else if (element instanceof Page) {
+				return false;
+			} else if (element instanceof Script) {
+				return false;
+			}
+			return false;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		@Override
+		public Object[] getElements(Object element) {
+			return getChildren(element);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		@Override
+		public void dispose() {
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/BasesView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/GroovyConsole.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/GroovyConsole.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/GroovyConsole.java	(revision 122)
@@ -0,0 +1,217 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.io.IOException;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.io.PrintStream;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * not used yet, must display the groovy logs only @ author mdecorde.
+ */
+public class GroovyConsole extends ViewPart implements Runnable {
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.GroovyConsole"; //$NON-NLS-1$
+	
+	/** The text area. */
+	private static StyledText textArea;
+
+	/** The out. */
+	private static PrintStream out;
+	
+	/** The err. */
+	private static PrintStream err;
+	
+	/** The quit. */
+	private boolean quit;
+
+	/** The reader. */
+	private Thread reader;
+	
+	/** The reader2. */
+	private Thread reader2;
+	
+	/** The pin. */
+	PipedInputStream pin = new PipedInputStream();
+	
+	/** The pin2. */
+	PipedInputStream pin2 = new PipedInputStream();
+
+	/** The output. */
+	static PrintStream output = System.out;
+	
+	/** The errput. */
+	static PrintStream errput = System.err;
+
+	/**
+	 * Instantiates a new groovy console.
+	 */
+	public GroovyConsole() {
+		try {
+			PipedOutputStream pout = new PipedOutputStream(pin);
+			out = new PrintStream(pout, true);
+
+			new PipedOutputStream(pin2);
+			err = new PrintStream(pout, true);
+
+		} catch (IOException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		reader = new Thread(this);
+		reader.setDaemon(true);
+		reader.start();
+		reader2 = new Thread(this);
+		reader2.setDaemon(true);
+		reader2.start();
+	}
+
+	/**
+	 * Redirect.
+	 *
+	 * @param b the b
+	 */
+	public static void redirect(boolean b) {
+		if (b) {
+			System.setOut(out);
+			System.setErr(err);
+		} else {
+			System.setOut(output);
+			System.setErr(errput);
+		}
+	}
+
+	/**
+	 * Lecture de la sortie standard.
+	 *
+	 * @param in the in
+	 * @return the string
+	 * @throws IOException Signals that an I/O exception has occurred.
+	 */
+	protected synchronized String readLine(PipedInputStream in)
+			throws IOException {
+		String input = ""; //$NON-NLS-1$
+		do {
+			int available = in.available();
+			if (available == 0)
+				break;
+			byte b[] = new byte[available];
+			in.read(b);
+			input = input + new String(b, 0, b.length);
+		} while (!input.endsWith("\n") && !input.endsWith("\r\n") && !quit); //$NON-NLS-1$ //$NON-NLS-2$
+		return input;
+	}
+
+	/* (non-Javadoc)
+	 * @see java.lang.Runnable#run()
+	 */
+	@Override
+	public synchronized void run() {
+		try {
+			while (Thread.currentThread() == reader) {
+				try {
+					this.wait(100);
+				} catch (InterruptedException ie) {
+				}
+				if (pin.available() != 0) {
+					String input = this.readLine(pin);
+					textArea.append(input);
+				}
+				if (quit)
+					return;
+			}
+
+			while (Thread.currentThread() == reader2) {
+				try {
+					this.wait(100);
+				} catch (InterruptedException ie) {
+				}
+				if (pin2.available() != 0) {
+					String input = this.readLine(pin2);
+					textArea.append(input);
+				}
+
+				if (quit)
+					return;
+			}
+		} catch (Exception e) {
+			textArea.append(Messages.GroovyConsole_4);
+			textArea.append(Messages.GroovyConsole_5 + e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		textArea = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL
+				| SWT.H_SCROLL);
+		textArea.setEditable(false);
+
+		textArea.setLayoutData(new GridData(GridData.FILL_BOTH
+				| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
+	}
+
+	/**
+	 * Println.
+	 *
+	 * @param txt the txt
+	 */
+	public static void println(String txt) {
+		textArea.append(txt + "\n"); //$NON-NLS-1$
+	}
+
+	/**
+	 * Prints the.
+	 *
+	 * @param txt the txt
+	 */
+	public static void print(String txt) {
+		textArea.append(txt);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/GroovyConsole.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/QueriesView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/QueriesView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/QueriesView.java	(revision 122)
@@ -0,0 +1,390 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.objects.Base;
+import org.txm.objects.Corpus;
+import org.txm.objects.Project;
+import org.txm.objects.SavedQuery;
+import org.txm.objects.TxmObject;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.commands.base.DeleteObject;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Display the query saved in the Base, each time a query works it is saved @
+ * author mdecorde.
+ */
+public class QueriesView extends ViewPart {
+	
+	/** The empty. */
+	ArrayList<Object> empty = new ArrayList<Object>();
+	
+	/** The composites. */
+	Control[] composites = new Control[3];
+	
+	/** The activated project. */
+	Project activatedProject;
+	
+	/** The activated base. */
+	Base activatedBase;
+	
+	/** The tv. */
+	TreeViewer tv;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.QueriesView"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new queries view.
+	 */
+	public QueriesView() {
+		// System.out.println(Messages.ObjectExplorer_9);
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		QueriesView baseView = (QueriesView) PlatformUI.getWorkbench()
+		.getActiveWorkbenchWindow().getActivePage().findView(
+				QueriesView.ID);
+		if (baseView != null)
+			baseView.tv.refresh();
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+		QueriesView baseView = (QueriesView) PlatformUI.getWorkbench()
+		.getActiveWorkbenchWindow().getActivePage().findView(
+				QueriesView.ID);
+		if (baseView != null)
+			baseView._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+		tv.setContentProvider(new TxmObjectTreeProvider());
+		tv.setLabelProvider(new TxmObjectLabelProvider());
+		if (Toolbox.workspace != null) {
+			try {
+				Collection<MainCorpus> input = CorpusManager.getCorpusManager().getCorpora();
+				tv.setInput(input);
+				refresh();
+			} catch (CqiClientException e) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		// System.out.println(Messages.ObjectExplorer_9);
+
+		parent.setLayout(new GridLayout(1, true));
+		Button export = new Button(parent, SWT.PUSH);
+		export.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				false));
+		export.setText(Messages.QueriesView_1);
+		export.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent arg0) {
+				//Collection<Base> bases = Toolbox.workspace.getProject("default").getBases(); //$NON-NLS-1$
+				File output = new File("queries.txt"); //$NON-NLS-1$
+
+				FileDialog dialog = new FileDialog(arg0.display.getActiveShell(), SWT.SAVE);
+				String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+				if (LastOpened.getFile(ID) != null) {
+					dialog.setFilterPath(LastOpened.getFolder(ID));
+					dialog.setFileName(LastOpened.getFile(ID));
+				} else {
+					dialog.setFilterPath(new File(txmhome, Messages.Explorer_3).getAbsolutePath());
+				}
+				String path = dialog.open();
+				if (path == null) return;
+				if (path.trim().length() > 0)
+					output = new File(path); 
+
+				LastOpened.set(ID, output.getParent(), output.getName());
+				if (!output.getParentFile().exists())
+					return;
+				
+				
+				try {
+					FileWriter writer = new FileWriter(output);
+					writer.write(Messages.QueriesView_5);
+					for (MainCorpus b : CorpusManager.getCorpusManager().getCorpora()) {
+						writer.write(" " + b.getName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+						for (SavedQuery q : b.getQueriesLog()) {
+							writer.write("  " + q + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+						}
+					}
+
+					writer.close();
+					EditFile.openfile(path);
+					refresh();
+				} catch (IOException e) {
+					Log.severe("Error while exporting queries: "+e.getLocalizedMessage());
+				} catch (CqiClientException e) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent arg0) {
+			}
+		});
+		tv = new TreeViewer(parent);
+		tv.getTree().setLayoutData(
+				new GridData(GridData.FILL, GridData.FILL, true, true));
+		_reload();
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+			}
+		});
+
+		tv.getTree().addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {				
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode == SWT.DEL) {
+					ISelection sel = tv.getSelection();
+					if (sel instanceof IStructuredSelection) {
+						if (!DeleteObject.askContinueToDelete((IStructuredSelection)sel)) return;
+						DeleteObject.delete(sel);
+					}
+				}
+				else if (e.keyCode == SWT.F5) {
+					reload();
+				}
+				else if ((char)e.keyCode == 'c' & ((e.stateMask & SWT.CTRL) != 0))
+				{
+					TreeSelection selection = (TreeSelection) tv.getSelection();
+					Object selectedItem = selection.getFirstElement();
+					if (selectedItem instanceof SavedQuery)
+					{
+						String text = ((SavedQuery)selectedItem).toString();
+						org.txm.rcpapplication.utils.IOClipboard.write(text);
+					}
+				}
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/**
+	 * Gets the activated project.
+	 *
+	 * @return the activated project
+	 */
+	public Project getActivatedProject() {
+		return activatedProject;
+	}
+
+	/**
+	 * Gets the activated base.
+	 *
+	 * @return the activated base
+	 */
+	public Base getActivatedBase() {
+		return activatedBase;
+	}
+
+	/**
+	 * The Class TxmObjectLabelProvider.
+	 */
+	public class TxmObjectLabelProvider extends LabelProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+		 */
+		@Override
+		public String getText(Object element) {
+			if (element instanceof Corpus)
+				return ((TxmObject) element).getName();
+			else if (element instanceof SavedQuery)
+				return ((SavedQuery) element).toString();
+			return NLS.bind(Messages.QueriesView_10, element);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+		 */
+		@Override
+		public final Image getImage(Object element) {
+			if (element instanceof Corpus)
+				return IImageKeys.getImage(IImageKeys.CORPUS);
+			else if (element instanceof SavedQuery)
+				return IImageKeys.getImage(IImageKeys.QUERY);
+			return null;
+		}
+	}
+
+	/**
+	 * The Class TxmObjectTreeProvider.
+	 */
+	public class TxmObjectTreeProvider implements ITreeContentProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		@Override
+		public Object[] getChildren(Object element) {
+			if (element instanceof Corpus) {
+				Corpus c = ((Corpus) element);
+				return c.getQueriesLog().toArray();
+			}
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		@Override
+		public Object getParent(Object element) {
+			if (element instanceof SavedQuery) {
+				return ((SavedQuery) element).getParent();
+			}
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		@Override
+		public boolean hasChildren(Object element) {
+			if (element instanceof Corpus) {
+				Corpus c = ((Corpus) element);
+				return !c.getQueriesLog().isEmpty();
+			}
+			return false;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		@Override
+		public Object[] getElements(Object element) {
+			Collection<Base> input = (Collection<Base>) element;
+			Object[] objects = new Object[input.size()];
+			Iterator<Base> it = input.iterator();
+			int i = 0;
+			while (it.hasNext()) {
+				objects[i] = it.next();
+				i++;
+			}
+			return objects;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		@Override
+		public void dispose() {
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/QueriesView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/SummaryView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/SummaryView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/SummaryView.java	(revision 122)
@@ -0,0 +1,525 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.functions.summary.Summary;
+import org.txm.objects.Page;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.clientExceptions.InvalidCqpIdException;
+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.StructuralUnitProperty;
+// TODO: Auto-generated Javadoc
+/**
+ * Display the internal hierarchie of a MainCorpus
+ * @author mdecorde.
+ */
+public class SummaryView extends ViewPart {
+
+	MainCorpus selectedCorpus;
+	List<Property> selectedProps;
+	Summary summary;
+
+	/** The tv. */
+	TreeViewer tv;
+	Combo corpusCombo;
+	PropertiesSelector propsArea;
+
+	/** The attached browser editor. */
+	protected TXMBrowser attachedBrowserEditor;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.InternalCorpusView"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new queries view.
+	 */
+	public SummaryView() {
+		// System.out.println(Messages.ObjectExplorer_9);
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		SummaryView baseView = (SummaryView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						SummaryView.ID);
+		if (baseView != null)
+			baseView.tv.refresh();
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+		SummaryView baseView = (SummaryView) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						SummaryView.ID);
+		if (baseView != null)
+			baseView._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+
+		initParameters();
+
+		compute();
+
+
+	}
+
+	public void compute()
+	{
+		try {
+			if (selectedCorpus == null || selectedProps == null || selectedProps.size() == 0) {
+				//System.out.println("Error: corpus="+selectedCorpus+", props="+selectedProps);
+				return;
+			}
+			summary = new Summary(selectedCorpus);
+			ArrayList<StructuralUnitProperty> properties = new ArrayList<StructuralUnitProperty>();
+			for (Property p : selectedProps)
+				if (p instanceof StructuralUnitProperty)
+					properties.add((StructuralUnitProperty) p);
+
+			if (summary.init(properties)) {
+				tv.setContentProvider(new TreeNodeTreeProvider());
+				tv.setLabelProvider(new TreeNodeLabelProvider());
+
+				tv.setInput(summary);
+				refresh();
+			}
+		} catch (Exception e) {
+			System.out.println(Messages.InternalCorpusView_0);
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} 
+	}
+
+	public void initParameters()
+	{
+		if (!Toolbox.isInitialized())
+			return;
+		//init combo
+		try {
+			corpusCombo.removeAll();
+			for (MainCorpus p : CorpusManager.getCorpusManager().getCorpora()) {
+				corpusCombo.add(p.getName());
+			}
+		} catch (CqiClientException e2) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e2);
+		}
+
+		//init default corpus
+		//		try {
+		//			if (CorpusManager.getCorpusManager().getCorpora().size() > 0) {
+		//				selectedCorpus = CorpusManager.getCorpusManager().getCorpora().get(0);
+		//				corpusCombo.select(0);
+		//			}
+		//		} catch (Exception e) {	org.txm.rcpapplication.utils.Logger.printStackTrace(e);}
+
+		if (selectedCorpus != null) reloadProperties();
+	}
+
+	public void reloadProperties()
+	{
+		if (selectedCorpus == null) return;
+		ArrayList<Property> availables = new ArrayList<Property>();
+		try {
+			availables = new ArrayList<Property>(selectedCorpus.getOrderedStructuralUnitProperties());
+		} catch (CqiClientException e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			return;
+		}
+
+		//init prop selector
+		ArrayList<Property> selectorSelectedProps = new ArrayList<Property>();
+		//		if (summary != null) {
+		//			for(StructuralUnitProperty prop : summary.getProperties())
+		//			{
+		//				selectorSelectedProps.add(prop);
+		//				availables.remove(prop);
+		//			}
+		//		} else {
+		//System.out.println("AVAILABLES SIZE > 0");
+		if (availables.size()  > 0) {
+			boolean foundp = false;
+			boolean founds = false;
+			for (int i = 0 ; i < availables.size() ; i++) {
+
+				StructuralUnitProperty prop = (StructuralUnitProperty) availables.get(i);
+				//System.out.println("check prop : "+prop.getFullName());
+				String name = prop.getFullName();
+				if ("text_id".equals(name)) { //$NON-NLS-1$
+					selectorSelectedProps.add(availables.get(i));
+					availables.remove(i);
+					i--;
+					continue;
+				}
+				if (!foundp)
+					if ("p_n".equals(name) || "p_id".equals(name)) { //$NON-NLS-1$ //$NON-NLS-2$
+						selectorSelectedProps.add(availables.get(i));
+						availables.remove(i);
+						i--;
+						foundp=true;
+						continue;
+					}
+				if (!founds)
+					if ("s_n".equals(name) || "s_id".equals(name)) { //$NON-NLS-1$ //$NON-NLS-2$
+						selectorSelectedProps.add(availables.get(i));
+						availables.remove(i);
+						i--;
+						founds = true;
+						continue;
+					}
+			}
+
+			Collections.sort(selectorSelectedProps, new Comparator<Property>() {
+				@Override
+				public int compare(Property o1, Property o2) {
+					StructuralUnitProperty s1 = (StructuralUnitProperty) o1;
+					StructuralUnitProperty s2 = (StructuralUnitProperty) o2;
+					char c1 = s1.getFullName().charAt(0);
+					char c2 = s2.getFullName().charAt(0);
+					if (c1 == 't') return -1;
+					if (c2 == 't') return 1;
+					if (c1 == 's') return 1;
+					if (c2 == 's') return -1;
+					return 0;
+				}
+			});
+		}
+		//}
+		propsArea.clear();
+		//System.out.println("Set properties "+availables+", "+selectorSelectedProps);
+		this.propsArea.setProperties(availables, selectorSelectedProps);
+		//init default props
+		selectedProps = propsArea.getProperties();
+
+		if (tv.getContentProvider() != null)
+			tv.setInput(null);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		// System.out.println(Messages.ObjectExplorer_9);
+
+		parent.setLayout(new GridLayout(2, false));
+
+		// [[Choose corpus]]
+		corpusCombo = new Combo(parent, SWT.READ_ONLY);
+		corpusCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false, 2, 1));
+
+		corpusCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				String corpusName = corpusCombo.getText();
+				try {
+					selectedCorpus = CorpusManager.getCorpusManager().getCorpus(corpusName);
+					reloadProperties();
+				} catch (CqiClientException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				} catch (InvalidCqpIdException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {}
+		});
+
+		// [Choose properties]
+		propsArea = new PropertiesSelector(parent, SWT.NONE);
+		propsArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+		propsArea.setLayout(new GridLayout(3, false));
+
+		//Button reload
+		Button openeditdialog = new Button(parent, SWT.PUSH);
+		openeditdialog.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+		openeditdialog.setText(Messages.InternalCorpusView_1);
+		openeditdialog.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {	}
+		});
+
+		// show corpus tree
+		tv = new TreeViewer(parent);
+		tv.getTree().setLayoutData(
+				new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1));
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			private ProgressListener progresslistener;
+
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				//System.out.println("open Edition or Text editor");
+				IStructuredSelection sel = (IStructuredSelection) tv.getSelection();
+				Object first = sel.getFirstElement();
+				final Summary.TreeNode node = (Summary.TreeNode) first;
+
+				try {
+					final Page openedPage = summary.getDefaultEditionPage(node);
+					if (openedPage != null) {
+						// System.out.println(page.getFile());
+						if (attachedBrowserEditor == null
+								|| attachedBrowserEditor.isDisposed()) {
+							attachedBrowserEditor = OpenBrowser
+									.openEdition(openedPage.getFile()
+											.getAbsolutePath(), openedPage.getFile().getName());
+							attachedBrowserEditor.setEdition(openedPage.getEdition());
+						}
+						attachedBrowserEditor.showPage(openedPage);
+					} else {
+						System.out.println(Messages.SummaryView_0+node);
+					}
+
+					if (progresslistener != null) {
+						attachedBrowserEditor.getBrowser().removeProgressListener(progresslistener);
+					}
+					progresslistener = new ProgressListener() {
+						@Override
+						public void changed(ProgressEvent event) {
+						}
+
+						@Override
+						public void completed(ProgressEvent event) {
+							Page currentpage = attachedBrowserEditor
+									.getCurrentPage();
+							// System.out.println("Highlight ! "+currentpage.getEdition().getText()+" name ="+openedPage.getEdition().getText());
+							if (currentpage != null)
+								if (!(currentpage.getEdition().getText() == openedPage
+								.getEdition().getText()))
+									return;
+							String wordid = node.getWordId();
+							String highlightscript = "try { var elt = document.getElementById(\"" + wordid + "\");" + //$NON-NLS-1$ //$NON-NLS-2$
+									"elt.style.backgroundColor=\"#F9D0D0\";" //$NON-NLS-1$
+									+ 
+									"elt.style.paddingLeft=\"3px\";" + //$NON-NLS-1$
+									"elt.style.paddingRight=\"3px\";" + //$NON-NLS-1$
+									"elt.style.paddingTop=\"1px\";" + //$NON-NLS-1$
+									"elt.style.paddingBottom=\"1px\";" + //$NON-NLS-1$
+									"} catch (e) { };"; //$NON-NLS-1$
+
+							attachedBrowserEditor.getBrowser().execute(
+									highlightscript);
+
+
+							String script = "try { document.getElementById(\"" + wordid + "\").scrollIntoView(true); } catch (e) { };"; //$NON-NLS-1$ //$NON-NLS-2$
+							attachedBrowserEditor.getBrowser().execute(
+									script);
+						}
+					};
+					attachedBrowserEditor.getBrowser().addProgressListener(
+							progresslistener);
+
+					IWorkbenchPage attachedPage = attachedBrowserEditor.getEditorSite().getPage();
+					attachedPage.activate(attachedBrowserEditor);
+
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				}
+			}
+		});
+
+		initParameters();
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public MainCorpus getSelectedCorpus()
+	{
+		return selectedCorpus;
+	}
+
+	public List<Property> getProperties()
+	{
+		return selectedProps;
+	}
+
+	/**
+	 * The Class TxmObjectLabelProvider.
+	 */
+	public class TreeNodeLabelProvider extends LabelProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+		 */
+		@Override
+		public String getText(Object element) {
+			if (element instanceof Summary.TreeNode)
+				return ((Summary.TreeNode) element).getInfo();
+			return NLS.bind(Messages.InternalCorpusView_2, element);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+		 */
+		@Override
+		public final Image getImage(Object element) {
+			return null;
+		}
+	}
+
+	/**
+	 * The Class TxmObjectTreeProvider.
+	 */
+	public class TreeNodeTreeProvider implements ITreeContentProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		@Override
+		public Object[] getChildren(Object element) {
+			if (element instanceof Summary.TreeNode) {
+				Summary.TreeNode b = ((Summary.TreeNode) element);
+				return b.toArray();
+			}
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		@Override
+		public Object getParent(Object element) {
+			if (element instanceof Summary.TreeNode) {
+				return ((Summary.TreeNode) element).getParent();
+			}
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		@Override
+		public boolean hasChildren(Object element) {
+			if (element instanceof Summary.TreeNode) {
+				Summary.TreeNode b = ((Summary.TreeNode) element);
+				return b.size() > 0;
+			}
+			return false;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		@Override
+		public Object[] getElements(Object element) {
+			if(summary != null)
+			{
+				Object[] objects = {summary.getRoot()};
+				return objects;
+			}
+
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		@Override
+		public void dispose() {
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/SummaryView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>TXM views</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/CorporaView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/CorporaView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/CorporaView.java	(revision 122)
@@ -0,0 +1,732 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.Workbench;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.functions.Function;
+import org.txm.functions.TXMResult;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.internal.InternalView;
+//import org.txm.functions.queryindex.QueryIndex;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.objects.Project;
+import org.txm.objects.Workspace;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TextometrieContentProvider;
+import org.txm.rcpapplication.TextometrieLabelProvider;
+import org.txm.rcpapplication.commands.base.DeleteObject;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.function.ComputeCAH;
+import org.txm.rcpapplication.editors.ca.CaEditor;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.rcpapplication.editors.input.CooccurrenceEditorInput;
+import org.txm.rcpapplication.editors.input.CorrespondanceAnalysisEditorInput;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.rcpapplication.editors.input.InternalViewEditorInput;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+import org.txm.rcpapplication.editors.input.ReferencerEditorInput;
+import org.txm.rcpapplication.editors.internal.InternalViewEditor;
+import org.txm.rcpapplication.utils.JobHandler;
+//import org.txm.rcpapplication.editors.input.QueryIndexEditorInput;
+//import org.txm.rcpapplication.editors.queryindex.QueryIndexEditor;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.stat.data.LexicalTable;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * This sample class demonstrates how to plug-in a new workbench view. The view
+ * shows data obtained from the model. The sample creates a dummy model on the
+ * fly, but a real implementation would connect to the model available either in
+ * this or another plug-in (e.g. the workspace). The view is connected to the
+ * model using a content provider.
+ * <p>
+ * The view uses a label provider to define how model objects should be
+ * presented in the view. Each view can present the same model objects using
+ * different labels and icons, if needed. Alternatively, a single label provider
+ * can be shared between views in order to ensure that objects of the same type
+ * are presented in the same way everywhere.
+ * <p>
+ */
+public class CorporaView extends ViewPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.views.CorporaView"; //$NON-NLS-1$
+
+	/** The tree viewer. */
+	public TreeViewer treeViewer;
+
+	/** The self. */
+	private static CorporaView self;
+
+	/**
+	 * Gets the single instance of CorporaView.
+	 *
+	 * @return single instance of CorporaView
+	 */
+	public static CorporaView getInstance()
+	{
+		if (self == null) {
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			if (window == null) return null;
+			IWorkbenchPage page = window.getActivePage();
+			if (page == null) return null;
+			CorporaView corporaView = (CorporaView) page.findView(CorporaView.ID);
+			self = corporaView;
+		}
+		return self;
+	}
+
+	public TreeViewer getTreeViewer() {
+		return treeViewer;
+	}
+
+	/**
+	 * Refresh the tree view.
+	 */
+	public static void refresh() {
+		CorporaView corporaView = getInstance();
+		if (corporaView != null) {
+			corporaView.treeViewer.refresh();
+			//corporaView.treeViewer.expandAll();
+		}
+	}
+
+	/**
+	 * Refresh.
+	 *
+	 * @param corporaView the corpora view
+	 */
+	public static void refresh(CorporaView corporaView) {
+		corporaView.treeViewer.refresh();
+
+	}
+
+	public static void expand(Object obj)
+	{
+		final CorporaView corporaView = getInstance();
+		if (obj != null)
+			corporaView.treeViewer.expandToLevel(obj, 1);
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+		CorporaView corporaView = getInstance();
+		if (corporaView != null)
+			corporaView._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+		if (Toolbox.isInitialized()) {
+			treeViewer.setContentProvider(new TextometrieContentProvider());
+			//treeViewer.setLabelProvider(new TextometrieLabelProvider());
+			treeViewer.setLabelProvider(
+					new DecoratingLabelProvider(new TextometrieLabelProvider(),
+							PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+			Workspace w = Toolbox.workspace;
+			if (w == null) return;
+			Project p = w.getProject("default"); //$NON-NLS-1$
+			if( p == null) return;
+			treeViewer.setInput(p);
+			treeViewer.refresh();
+		}
+	}
+
+	/**
+	 * This is a callback that will allow us to create the viewer and initialize
+	 * it.
+	 *
+	 * @param parent the parent
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+		PlatformUI.getWorkbench().getHelpSystem().setHelp(
+				treeViewer.getControl(), Messages.CorporaView_0);
+		getSite().setSelectionProvider(treeViewer);
+		treeViewer.setContentProvider(new TextometrieContentProvider());
+		//treeViewer.setLabelProvider(new TextometrieLabelProvider());
+		treeViewer.setLabelProvider(
+				new DecoratingLabelProvider(new TextometrieLabelProvider(),
+						PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
+		if (Toolbox.isInitialized()) {
+			Workspace w = null;
+			while (w == null) {
+				try {
+					Thread.sleep(100);
+				} catch (InterruptedException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+				w = Toolbox.workspace;
+				if (w == null) continue; else break;//return;
+			}
+			Project p = w.getProject("default"); //$NON-NLS-1$
+			if( p == null) return;
+			treeViewer.setInput(p);
+		}
+		//PlatformUI.getWorkbench().getHelpSystem().setHelp(treeViewer.getTree(), "org.txm.rcpapplication.corporaView" //$NON-NLS-1$);
+
+		treeViewer.getTree().addMouseListener(new MouseAdapter() {		
+			@Override
+			public void mouseDown(MouseEvent e) {
+				IViewSite site = getViewSite();
+				if (site != null) {
+					IWorkbenchPage page = site.getPage();
+					if (page != null)
+						page.activate(CorporaView.this);
+				}
+
+				TreeItem[] sel = treeViewer.getTree().getSelection();
+				if (sel.length == 0)
+					return;
+
+				ISelection tsel = treeViewer.getSelection();
+				if (!(tsel instanceof TreeSelection)) return;
+
+				TreeSelection selection = (TreeSelection) treeViewer.getSelection();
+				Object selectedItem = selection.getFirstElement();
+				//TODO : add more status message on clicked objects of corpora view
+				if (selectedItem instanceof Corpus) {
+					try {
+						StatusLine.setMessage(((Corpus)selectedItem).getName()+ ", T = "+((Corpus)selectedItem).getSize()); //$NON-NLS-1$
+					} catch (CqiClientException e1) {
+						Log.severe(NLS.bind(Messages.CorporaView_2, ((Corpus)selectedItem).getName()));
+						StatusLine.setMessage(((Corpus)selectedItem).getName()+ " is not ready"); //$NON-NLS-1$
+					}
+				} else if (selectedItem instanceof Partition) {
+					StatusLine.setMessage(((Partition)selectedItem).getName() + ": "+((Partition)selectedItem).getNPart()); //$NON-NLS-1$
+				} else if (selectedItem instanceof Concordance) {
+					StatusLine.setMessage(((Concordance)selectedItem).getName());
+				} else if (selectedItem instanceof Cooccurrence) {
+					StatusLine.setMessage(((Cooccurrence)selectedItem).getName());
+				} else if (selectedItem instanceof Index) {
+					StatusLine.setMessage(((Index)selectedItem).getName());
+				} else if (selectedItem instanceof CA) {
+					StatusLine.setMessage(((CA)selectedItem).getName());
+				} else if (selectedItem instanceof CAH) {
+					StatusLine.setMessage(((CAH)selectedItem).getName());
+				} else if (selectedItem instanceof SpecificitesResult) {
+					StatusLine.setMessage(((SpecificitesResult)selectedItem).getName());
+				} else if (selectedItem instanceof InternalView) {
+					StatusLine.setMessage(((InternalView)selectedItem).getDetails());
+					//				} else if (selectedItem instanceof QueryIndex) {
+					//					StatusLine.setMessage(((QueryIndex)selectedItem).getName());
+				} else {
+					StatusLine.setMessage(selectedItem.toString());
+				}
+			}
+		});
+
+			treeViewer.addDoubleClickListener(new IDoubleClickListener() {
+				@Override
+				public void doubleClick(DoubleClickEvent event) {
+					TreeSelection selection = (TreeSelection) treeViewer.getSelection();
+					Object selectedItem = selection.getFirstElement();
+	
+					if (isAlreadyOpened(selectedItem))
+						return;
+					// System.out.println("Selected item "+selectedItem.getClass());
+					if (selectedItem instanceof Concordance) {
+						Concordance concordance = (Concordance) selectedItem;
+						IEditorInput editorInput = new ConcordancesEditorInput(
+								concordance.getCorpus(), concordance);
+						IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+						try {
+							page.openEditor(editorInput,
+									"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+						} catch (PartInitException e) {
+							System.err.println(Messages.CorporaView_3+ e);
+						}
+//					} else if (selectedItem instanceof SpecificitesResult) {
+//						SpecificitesResult specifRes = (SpecificitesResult) selectedItem;
+//						Partition partition = null;
+//						IEditorInput editorInput = null;
+//	
+//						if (specifRes.getLexicalTable() != null) {
+//							if (specifRes.getLexicalTable().getPartition() != null) {
+//							partition = specifRes.getLexicalTable().getPartition();
+//							editorInput = new SpecificitiesResultEditorInput(specifRes, partition);
+//						} else {
+//							editorInput = new SpecificitiesResultEditorInput(
+//									specifRes, specifRes.getLexicalTable().getCorpus());
+//						}
+//					} else {
+//						editorInput = new SpecificitiesResultEditorInput(
+//								specifRes, specifRes.getCorpus());
+//					}
+//
+//					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+//					try {
+//						page.openEditor(editorInput, SpecificitiesTableEditor.ID); //$NON-NLS-1$
+//					} catch (PartInitException e) {
+//						System.err.println(Messages.CorporaView_5+e);
+//					}
+				} else if (selectedItem instanceof LexicalTable) {
+					LexicalTable lt = (LexicalTable) selectedItem;
+					IEditorInput editorInput = new LexicalTableEditorInput(lt);
+					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					try {
+						page.openEditor(editorInput, 
+								"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+					} catch (PartInitException e) {
+						System.err.println(Messages.CorporaView_5+ e);
+					}
+				} else if (selectedItem instanceof Lexicon) {
+					Lexicon lex = (Lexicon) selectedItem;
+					final Index voc = new Index(lex.getCorpus(), lex.getProperty());
+
+					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					IndexEditorInput editorInput = new IndexEditorInput(voc);
+					try {
+						page.openEditor(editorInput,
+								"org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor"); //$NON-NLS-1$
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} 
+				} else if (selectedItem instanceof Index) {
+					Index voc = (Index) selectedItem;
+					IndexEditorInput editorInput = new IndexEditorInput(voc);
+					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					try {
+						IndexEditor editor = (IndexEditor) page
+								.openEditor(editorInput,
+										"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+						//editor.initializeFields();
+					} catch (PartInitException e) {
+						System.err.println(Messages.CorporaView_7+ e);
+					}
+					//				} else if (selectedItem instanceof QueryIndex) {
+					//					QueryIndex qindex = (QueryIndex) selectedItem;
+					//					QueryIndexEditorInput editorInput = new QueryIndexEditorInput(qindex);
+					//					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					//					try {
+					//						QueryIndexEditor editor = (QueryIndexEditor) page
+					//								.openEditor(editorInput,QueryIndexEditor.ID);
+					//						editor.initializeFields();
+					//					} catch (PartInitException e) {
+					//						System.err.println(Messages.CorporaView_7+ e);
+					//					}
+
+//				} else if (selectedItem instanceof Progression) {
+//					
+//					// FIXME : use charts engine instead of code below
+//					Progression progression = (Progression) selectedItem;
+//
+//					// FIXME: temporary force R/SVG version because the Progression density chart is not yet implemented in JFC mode
+//					if(!progression.isDoCumulative())	{
+//						___RChartsEngine tmpChartsEngine = new ___RChartsEngine(___ChartsEngine.OUTPUT_FORMAT_SVG);
+//						___SVGChartsSWTComponentProvider tmpSWTComponentsProvider = new ___SVGChartsSWTComponentProvider(tmpChartsEngine);
+//						___ChartEditorPart chartEditor = tmpSWTComponentsProvider.createProgressionChartEditorPart(IImageKeys.getImage(IImageKeys.ACTION_PROGRESSION), progression, progression.isMonochrome(), progression.isMonostyle(), progression.isDoCumulative());
+//						// Create and open the chart editor
+//						___SWTChartsComponentProvider.openEditor(chartEditor);
+//					}
+//					else	{
+//						// Create and open the chart editor
+//						___SWTChartsComponentProvider.openEditor(Application.swtComponentProvider.createProgressionChartEditorPart(IImageKeys.getImage(IImageKeys.ACTION_PROGRESSION), progression, progression.isMonochrome(), progression.isMonostyle(), progression.isDoCumulative()));
+//					}
+//					
+//					// FIXME : to remove when charts engine will be valdiated
+////					try {
+////						// System.out.println("run syncexec");
+////						String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+////						RDevice device = RDevice.valueOf(TxmPreferences.getString(ExportPreferencePage.RDEVICE, RDevice.SVG.toString()).toUpperCase());
+////
+////						File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
+////						resultDir.mkdirs();
+////						File svgfile = File.createTempFile("progression", device.getExt(), resultDir); //$NON-NLS-1$
+////						if (!svgfile.canWrite()) {
+////							System.out.println(NLS.bind(Messages.CorporaView_9, svgfile));
+////							return;
+////						}
+////						progression.toSvg(svgfile, device);
+////						StatusLine.setMessage(""); //$NON-NLS-1$
+////						IEditorPart editor = OpenGraph.OpenFile(svgfile, device, progression.getCorpus()+": "+progression.getName(), IImageKeys.ACTION_PROGRESSION); //$NON-NLS-1$
+////						if (editor != null && editor instanceof CustomizableEditor) {
+////							CustomizableEditor ceditor = (CustomizableEditor) editor;
+////							ceditor.setSource(progression);
+////						}
+////					} catch (Exception e) {
+////						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+////					}
+////					
+//
+				} else if (selectedItem instanceof Cooccurrence) {
+					Cooccurrence cooc = (Cooccurrence) selectedItem;
+
+					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					try {
+						CooccurrenceEditorInput editorInput = new CooccurrenceEditorInput(
+								cooc);
+						CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+								.openEditor(editorInput, CooccurrencesEditor.ID); 
+					} catch (PartInitException e) {
+						System.err.println(Messages.CorporaView_7+ e);
+					}
+				} else if (selectedItem instanceof Referencer) {
+
+					Referencer ref = (Referencer) selectedItem;
+					ReferencerEditorInput editorInput = new ReferencerEditorInput(ref.getCorpus(), ref);
+
+					try {
+						IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+						page.openEditor(editorInput,"org.txm.rcpapplication.editors.referencer.ReferencerEditor"); //$NON-NLS-1$
+
+					} catch (PartInitException e) {
+						System.err.println(Messages.CorporaView_6+ e);
+					}
+				} else if (selectedItem instanceof InternalView) {
+
+					InternalView ref = (InternalView) selectedItem;
+					InternalViewEditorInput editorInput = new InternalViewEditorInput(ref.getCorpus(), ref);
+
+					try {
+						IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+						page.openEditor(editorInput,InternalViewEditor.ID); 
+
+					} catch (PartInitException e) {
+						System.err.println(Messages.CorporaView_6+ e);
+					}
+				} else if (selectedItem instanceof CA) {
+					CA ca = (CA) selectedItem;
+					CorrespondanceAnalysisEditorInput editorInput = new CorrespondanceAnalysisEditorInput(ca, ca.getPartition(), ca.getAnalysisProperty());
+					IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
+					try {
+						CaEditor editor = (CaEditor) page.openEditor(editorInput,"org.txm.rcpapplication.editors.ca.CaEditor"); //$NON-NLS-1$
+						editor.refreshGraphEditor();
+						// FIXME: to remove when charts engine will be validated
+						//IEditorPart editor2 = page.openEditor(editorInput, "org.txm.rcpapplication.editors.ca.FactorialMapEditor"); //$NON-NLS-1$
+					} catch (PartInitException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} 
+				}
+				else if (selectedItem instanceof CAH) {
+
+					IHandlerService handlerService = (IHandlerService) getSite().getService(IHandlerService.class);
+					try {
+						handlerService.executeCommand(ComputeCAH.ID, null);
+					}
+					catch (Exception e) {
+						e.printStackTrace();
+					}
+
+					// FIXME: to remove when charts engine will be validated
+					//					CAH cah = (CAH) selectedItem;
+					//					try {
+					//						// System.out.println("run syncexec");
+					//						String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+					//						System.out.println("CorporaView.createPartControl(...).new IDoubleClickListener() {...}.doubleClick(): " + RDevice.SVG.toString().toUpperCase());
+					//						RDevice device = RDevice.valueOf(TxmPreferences.getString(ExportPreferencePage.RDEVICE, RDevice.SVG.toString()).toUpperCase());
+					//						File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
+					//						resultDir.mkdirs();
+					//						File svgfile = File.createTempFile("cah", device.getExt(), resultDir); //$NON-NLS-1$
+					//						if(!svgfile.canWrite())
+					//						{
+					//							System.out.println(NLS.bind(Messages.CorporaView_9, svgfile));
+					//							return;
+					//						}
+					//
+					//						cah.toSVG(svgfile, device);
+					//						StatusLine.setMessage(""); //$NON-NLS-1$
+					//						IEditorPart editor = OpenGraph.OpenFile(svgfile, device, cah.getPartition().getName()+": "+cah.getName(), IImageKeys.ACTION_CAH); //$NON-NLS-1$
+					//						if (editor != null && editor instanceof CustomizableEditor) 
+					//						{
+					//							CustomizableEditor ceditor = (CustomizableEditor) editor;
+					//							ceditor.setName(cah.getName());
+					//							ceditor.setIcon(IImageKeys.getImage(IImageKeys.ACTION_CAH));
+					//							ceditor.setSource(cah);
+					//						}
+					//					} catch (Exception e) {
+					//						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					//					}
+				} else if (selectedItem instanceof Function) {
+					((Function)selectedItem).openEditor();
+				}
+			}
+		});
+
+		treeViewer.getTree().addKeyListener(new KeyAdapter() {
+			@Override
+			public void keyPressed(KeyEvent arg0) {
+				if (arg0.keyCode == SWT.DEL) {
+					final ISelection sel = treeViewer.getSelection();
+					if (sel instanceof IStructuredSelection) {
+						if (!DeleteObject.askContinueToDelete((IStructuredSelection)sel)) return;
+						JobHandler job = new JobHandler("Deleting", true) {
+
+							@Override
+							protected IStatus run(IProgressMonitor monitor) {
+								DeleteObject.delete(sel);
+								return Status.OK_STATUS;
+							}
+						};
+						job.schedule();
+						try {
+							job.join();
+						} catch (InterruptedException e) {
+							e.printStackTrace();
+						}
+					}
+
+				}
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(treeViewer.getTree());
+
+		// Set the MenuManager
+		treeViewer.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, treeViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(treeViewer);
+	}
+
+	/**
+	 * Show the editor which uses the Object.
+	 *
+	 * @param o the o
+	 * @return true if an editor uses the object
+	 */
+	public boolean isAlreadyOpened(Object o) {
+		if (o != null) {
+			for(IWorkbenchPage page : getPages()) {
+				for (IEditorReference editorref : page.getEditorReferences()) {
+					IEditorPart editor = editorref.getEditor(false);
+					if (editor instanceof CustomizableEditor) {	
+						Object source = ((CustomizableEditor)editor).getSource();
+						if (source != null && source.equals(o))
+							return activateEditor(editor);
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Gets the pages.
+	 *
+	 * @return the pages
+	 */
+	private static IWorkbenchPage[] getPages()
+	{
+		for(IWorkbenchWindow win : Workbench.getInstance().getWorkbenchWindows())
+		{
+			return win.getPages();
+		}
+		return new IWorkbenchPage[0];
+	}
+
+	/**
+	 * Activate editor.
+	 *
+	 * @param editor the editor
+	 * @return true, if successful
+	 */
+	private boolean activateEditor(IEditorPart editor)
+	{
+		IWorkbenchPage attachedPage = editor.getEditorSite().getPage();
+		attachedPage.activate(editor);
+		return true;
+	}
+
+	/**
+	 * Passing the focus request to the viewer's control.
+	 */
+	@Override
+	public void setFocus() {
+		treeViewer.getControl().setFocus();
+	}
+
+	public static Object getSelection() {
+		CorporaView corporaView = getInstance();
+		if (corporaView != null) {
+			ISelection selection = corporaView.treeViewer.getSelection();
+			if (selection != null
+					& selection instanceof IStructuredSelection) {
+				return ((IStructuredSelection)selection).getFirstElement();
+			}
+		}
+		return null;
+	}
+
+	public static List<?> getSelections() {
+		CorporaView corporaView = getInstance();
+		if (corporaView != null) {
+			ISelection selection = corporaView.treeViewer.getSelection();
+			if (selection != null
+					& selection instanceof IStructuredSelection) {
+				return ((IStructuredSelection)selection).toList();
+			}
+		}
+		return null;
+	}
+
+
+	public static void refreshObject(final Corpus corpus) {
+		CorporaView corporaView = getInstance();
+		corporaView.treeViewer.getTree().getDisplay().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				CorporaView corporaView = getInstance();
+				corporaView.treeViewer.refresh(corpus);
+			}
+		});
+	}
+
+	public static void select(List<MainCorpus> values) {
+		CorporaView corporaView = openView();
+		if (corporaView != null) {
+			StructuredSelection selection = new StructuredSelection(values);
+			corporaView.getTreeViewer().setSelection(selection, true);
+			corporaView.getTreeViewer().reveal(values); // to be sure
+		}
+	}
+
+	public static CorporaView openView() {
+		// open Unit View if not opened
+		try {
+			IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+			CorporaView view = (CorporaView) page.findView(CorporaView.ID);
+			if (view == null) {
+				view = (CorporaView) page.showView(CorporaView.ID);
+			}
+			if (view == null) {
+				System.out.println("Error Unite view not found: "+CorporaView.ID);
+			}
+			return view;
+		} catch (PartInitException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+		return null;
+	}
+
+	/**
+	 * Stores the result of textometric computation in the specified corpus, refreshes the view and expands the Corpus tree node.
+	 * @param corpus
+	 * @param result
+	 */
+	public static void storeResult(final Corpus corpus, TXMResult result)	{
+		corpus.storeResult(result);
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				CorporaView.refreshObject(corpus);
+				CorporaView.expand(corpus);
+			}
+		});
+
+	}
+	
+	/**
+	 * Adds a double click listener in the tree view for the specified result data type and executing the command specified by its ID.
+	 * @param resultDataType
+	 * @param commandId
+	 */
+	public static void addDoubleClickListener(final Class resultDataType, final String commandId)	{
+		
+		final CorporaView view = CorporaView.getInstance();
+		
+		
+		view.treeViewer.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				TreeSelection selection = (TreeSelection) view.treeViewer.getSelection();
+				Object selectedItem = selection.getFirstElement();
+				
+				if (selectedItem.getClass() == resultDataType && !view.isAlreadyOpened(selectedItem)) {
+					IHandlerService handlerService = (IHandlerService) view.getSite().getService(IHandlerService.class);
+					try {
+						handlerService.executeCommand(commandId, null);
+					}
+					catch (Exception e) {
+						e.printStackTrace();
+					}
+				} 
+			}
+		});
+		
+	}
+	
+	
+	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/CorporaView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeContentProvider.java	(revision 122)
@@ -0,0 +1,122 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.util.regex.Pattern;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.FileExplorerPreferencePage;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FileTreeContentProvider.
+ */
+public class FileTreeContentProvider implements ITreeContentProvider {
+	
+	protected Pattern p = null;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+	 */
+	@Override
+	public Object[] getChildren(Object element) {
+		String regex = TxmPreferences.getString(FileExplorerPreferencePage.FILES_TO_HIDE, ""); //$NON-NLS-1$
+		final boolean showHidden = TxmPreferences.getBoolean(FileExplorerPreferencePage.SHOW_HIDDEN_FILES, false);
+		final boolean showFolder = TxmPreferences.getBoolean(FileExplorerPreferencePage.SHOW_FOLDERS, false);
+		p = null;
+		try {
+		p = Pattern.compile(regex);
+		} catch(Exception e) { System.out.println(Messages.FileTreeContentProvider_1+regex+Messages.FileTreeContentProvider_2+e);}
+		
+		Object[] kids = ((File) element).listFiles(new FileFilter() {	
+			@Override
+			public boolean accept(File file) {
+				boolean rez = true;
+				if (p != null)
+					rez = !p.matcher(file.getName()).matches();
+				if (!showHidden)
+					rez = rez & !file.isHidden();
+//				if (!showFolder)
+//					rez = rez & !file.isDirectory();
+				return rez;
+			}
+		});
+		
+		if (kids != null) {
+			java.util.Arrays.sort(kids);
+		}
+		
+		return kids == null ? new Object[0] : kids;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object element) {
+		return getChildren(element);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+	 */
+	@Override
+	public boolean hasChildren(Object element) {
+		return getChildren(element).length > 0;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(Object element) {
+		if (element instanceof File)
+			return ((File) element).getParentFile();
+		System.out.println(Messages.FileTreeContentProvider_3+element+Messages.FileTreeContentProvider_4);
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object old_input, Object new_input) {
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroContentProvider.java	(revision 122)
@@ -0,0 +1,71 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.io.FileFilter;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FileTreeContentProvider.
+ */
+public class MacroContentProvider extends FileTreeContentProvider {
+
+	boolean showAllGroovyFiles = false;
+	
+	public MacroContentProvider(boolean showAllGroovyFiles) {
+		super();
+		this.showAllGroovyFiles = showAllGroovyFiles;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+	 */
+	@Override
+	public Object[] getChildren(Object element) {
+		
+		Object[] kids = ((File) element).listFiles(new FileFilter() {	
+			@Override
+			public boolean accept(File file) {
+				if (file.isDirectory()) return true;
+				if (file.isHidden()) return false;
+				if (showAllGroovyFiles) return file.getName().endsWith(".groovy"); //$NON-NLS-1$
+				
+				return file.getName().endsWith("Macro.groovy"); //$NON-NLS-1$
+			}
+		});
+		
+		if (kids != null) {
+			java.util.Arrays.sort(kids);
+		}
+		
+		return kids == null ? new Object[0] : kids;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeLabelProvider.java	(revision 122)
@@ -0,0 +1,78 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FileTreeLabelProvider.
+ */
+public class FileTreeLabelProvider extends LabelProvider {
+	
+	/** The image table. */
+	private Map<ImageDescriptor, Image> imageTable = new HashMap<ImageDescriptor, Image>(
+			7);
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(Object element) {
+		return ((File) element).getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+	 */
+	@Override
+	public final Image getImage(Object element) {
+		File f = ((File) element);
+		ImageDescriptor imageDescriptor = AbstractUIPlugin
+				.imageDescriptorFromPlugin(Application.PLUGIN_ID,
+						IImageKeys.FILE);
+		if (f.isDirectory())
+			imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.FOLDER);
+		Image image = imageTable.get(imageDescriptor);
+		if (image == null) {
+			image = imageDescriptor.createImage();
+			imageTable.put(imageDescriptor, image);
+		}
+		return image;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/FileTreeLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroTreeLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroTreeLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroTreeLabelProvider.java	(revision 122)
@@ -0,0 +1,85 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FileTreeLabelProvider.
+ */
+public class MacroTreeLabelProvider extends LabelProvider {
+	
+	/** The image table. */
+	private Map<ImageDescriptor, Image> imageTable = new HashMap<ImageDescriptor, Image>(7);
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(Object element) {
+		File f = (File) element;
+		String name = f.getName();
+		if (f.isDirectory()) {
+			return name;
+		} else {
+			int idx = name.indexOf("Macro.groovy"); //$NON-NLS-1$
+			if (idx > 0) return name.substring(0, idx);
+			return name;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+	 */
+	@Override
+	public final Image getImage(Object element) {
+		File f = ((File) element);
+		ImageDescriptor imageDescriptor = AbstractUIPlugin
+				.imageDescriptorFromPlugin(Application.PLUGIN_ID,
+						IImageKeys.SCRIPT);
+		if (f.isDirectory())
+			imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(
+					Application.PLUGIN_ID, IImageKeys.FOLDER);
+		Image image = imageTable.get(imageDescriptor);
+		if (image == null) {
+			image = imageDescriptor.createImage();
+			imageTable.put(imageDescriptor, image);
+		}
+		return image;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroTreeLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Simple file explorer</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/Explorer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/Explorer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/Explorer.java	(revision 122)
@@ -0,0 +1,370 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyAdapter;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.CopyFile;
+import org.txm.rcpapplication.commands.CutFile;
+import org.txm.rcpapplication.commands.DeleteFile;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.commands.OpenGraph;
+import org.txm.rcpapplication.commands.PasteFile;
+import org.txm.rcpapplication.commands.RenameFile;
+// TODO: Auto-generated Javadoc
+/**
+ * Simple file explorer @ author mdecorde.
+ */
+public class Explorer extends ViewPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.views.fileexplorer.Explorer"; //$NON-NLS-1$
+
+	/** Initialize currentPath with user home directory */
+	private String currentPath = System.getProperty("user.home");//Toolbox.getParam(Toolbox.USER_TXM_HOME);  //$NON-NLS-1$
+
+	/** The tv. */
+	TreeViewer tv;
+
+	/** The address. */
+	Text address;
+
+	/**
+	 * Instantiates a new explorer.
+	 */
+	public Explorer() {
+
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh()
+	{
+		Explorer explorerView = (Explorer) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						Explorer.ID);
+
+		explorerView.tv.refresh();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+
+		FormLayout formLayout = new FormLayout();
+		formLayout.marginWidth = 0;
+		formLayout.marginHeight = 0;
+		parent.setLayout(formLayout);
+
+		// controles composite
+		Composite controls = new Composite(parent, SWT.NONE);
+
+		FormData controlsData = new FormData();
+		controlsData.top = new FormAttachment(0);
+		controlsData.left = new FormAttachment(0);
+		controlsData.right = new FormAttachment(100);
+		controls.setLayoutData(controlsData);
+
+		FormLayout controlsLayout = new FormLayout();
+		controlsLayout.marginWidth = 0;
+		controlsLayout.marginHeight = 0;
+		controls.setLayout(controlsLayout);
+
+		// its widgets
+		Button go_up = new Button(controls, SWT.NONE);
+		go_up.setText(Messages.Explorer_4);
+		go_up.setToolTipText(Messages.Explorer_1);
+		go_up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				File f = new File(address.getText()).getParentFile();
+				if (f.exists() && f.isDirectory()) {
+					setRoot(f);
+				}
+			}
+		});
+
+		address = new Text(controls, SWT.BORDER);
+		if (currentPath == null)
+			currentPath = "/"; //$NON-NLS-1$
+		address.setText(currentPath);
+		address.setToolTipText(Messages.Explorer_2);
+		address.addKeyListener(new KeyAdapter() {
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode == SWT.CR) {
+					File f = new File(address.getText());
+					if (f.exists() && f.isDirectory()) {
+						setRoot(f);
+					}
+				}
+			}
+		});
+
+		Button go = new Button(controls, SWT.NONE);
+		go.setText(Messages.Explorer_5);
+		go.setToolTipText(Messages.Explorer_6);
+		go.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				File f = new File(address.getText());
+				if (f.exists() && f.isDirectory()) {
+					setRoot(f);
+				}
+			}
+		});
+		
+		Button homeBtn = new Button(controls, SWT.NONE);
+		homeBtn.setText(Messages.Explorer_7);
+		homeBtn.setToolTipText(Messages.Explorer_8);
+		homeBtn.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				currentPath = System.getProperty("user.home"); //$NON-NLS-1$
+				setRoot(currentPath); 
+			}
+		});
+
+		// set positions & sizes
+		FormData widgetData = new FormData();
+		widgetData.left = new FormAttachment(0);
+		go_up.setLayoutData(widgetData);
+		widgetData = new FormData();
+		widgetData.top = new FormAttachment(0);
+		widgetData.bottom = new FormAttachment(100);
+		widgetData.left = new FormAttachment(go_up, 0);
+		widgetData.right = new FormAttachment(go, 0);
+		address.setLayoutData(widgetData);
+		widgetData = new FormData();
+		widgetData.right = new FormAttachment(homeBtn, 0);
+		go.setLayoutData(widgetData);
+		widgetData = new FormData();
+		widgetData.right = new FormAttachment(100);
+		homeBtn.setLayoutData(widgetData);
+
+		// the explorer
+		tv = new TreeViewer(parent);
+		tv.setContentProvider(new FileTreeContentProvider());
+		tv.setLabelProvider(new FileTreeLabelProvider());
+		tv.setInput(new File(currentPath));
+
+		FormData tvData = new FormData();
+		tvData.top = new FormAttachment(controls, 0);
+		tvData.bottom = new FormAttachment(100);
+		tvData.left = new FormAttachment(0);
+		tvData.right = new FormAttachment(100);
+		tv.getTree().setLayoutData(tvData);
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				TreeSelection selection = (TreeSelection) tv.getSelection();
+				File selectedItem = (File) selection.getFirstElement();
+				if (!selectedItem.isDirectory()) {
+					if (selectedItem.getName().endsWith("html")) //$NON-NLS-1$
+					{
+						OpenBrowser.openfile(selectedItem.getAbsolutePath());
+					} 
+					else if (selectedItem.getName().endsWith("svg")) //$NON-NLS-1$
+					{
+						OpenGraph.OpenFile(selectedItem.getAbsolutePath());
+					}
+					else
+						EditFile.openfile(selectedItem.getAbsolutePath());
+				} else {
+					changeState(selection);
+				}
+			}
+		});
+
+		tv.getTree().addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				ISelection sel = tv.getSelection();
+				if (sel instanceof IStructuredSelection) {
+					List objects = ((IStructuredSelection)sel).toList();
+					if (e.keyCode == SWT.DEL) {
+						DeleteFile.delete(objects);
+					} else if (e.keyCode == SWT.F5) {
+						Explorer.refresh();
+					} else {
+						for (Object o : objects) {
+							//Object o = ((IStructuredSelection)sel).getFirstElement();
+							if (o instanceof File) {
+								File file = (File) o;
+								if (e.keyCode == SWT.DEL) {
+									DeleteFile.delete(file);
+								} else if ((char)e.keyCode == 'c' & ((e.stateMask & SWT.CTRL) != 0)) {
+									CopyFile.copy(file);
+								} else if ((char)e.keyCode == 'x' & ((e.stateMask & SWT.CTRL) != 0)) {
+									CutFile.cut(file);
+								} else if ((char)e.keyCode == 'v' & ((e.stateMask & SWT.CTRL) != 0)) {
+									if (file.isFile()) file = file.getParentFile();
+									PasteFile.paste(file);
+								} else if (e.keyCode == SWT.F2) {
+									RenameFile.rename(file);
+								}
+							}
+						}
+					}
+					tv.refresh();
+				}
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+	}
+
+	/**
+	 * Can delete.
+	 *
+	 * @param selectedItem the selected item
+	 * @return true, if successful
+	 */
+	protected boolean CanDelete(File selectedItem) {
+		File txmhome = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+		File scripts = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "scripts"); //$NON-NLS-1$
+		File corpora = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "corpora"); //$NON-NLS-1$
+		//File registry = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "registry"); //$NON-NLS-1$
+		File workspaces = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "workspaces"); //$NON-NLS-1$
+		File xsl = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "xsl"); //$NON-NLS-1$
+		File samples = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "samples"); //$NON-NLS-1$
+		if (selectedItem.equals(txmhome) || 
+				selectedItem.equals(txmhome) ||
+				selectedItem.equals(scripts) ||
+				selectedItem.equals(corpora) ||
+				//selectedItem.equals(registry) ||
+				selectedItem.equals(workspaces) ||
+				selectedItem.equals(samples) ||
+				selectedItem.equals(xsl))
+		{
+			System.out.println(NLS.bind(Messages.Explorer_0, selectedItem));
+			return false;
+		}
+		return false;
+	}
+
+	/**
+	 * Change state.
+	 *
+	 * @param selection the selection
+	 */
+	protected void changeState(TreeSelection selection) {
+		TreeItem[] items = tv.getTree().getSelection();
+		for (TreeItem item : items) {
+			if (item.getExpanded())
+			{
+				item.setExpanded(false);	
+			}
+			else
+			{
+				item.setExpanded(true);
+			}
+			tv.refresh();
+		}	
+	}
+
+	/**
+	 * Sets the root.
+	 *
+	 * @param home the new root
+	 */
+	public void setRoot(String home) {
+		this.currentPath = home;
+		address.setText(home);
+		tv.setInput(new File(home));
+		tv.refresh();
+	}
+
+	/**
+	 * Sets the root.
+	 *
+	 * @param f the new root
+	 */
+	public void setRoot(File f) {
+		this.currentPath = f.getAbsolutePath();
+		address.setText(currentPath);
+		tv.setInput(new File(currentPath));
+		tv.refresh();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/Explorer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroExplorer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroExplorer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroExplorer.java	(revision 122)
@@ -0,0 +1,334 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views.fileexplorer;
+
+import java.io.File;
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.commands.CopyFile;
+import org.txm.rcpapplication.commands.CreateMacro;
+import org.txm.rcpapplication.commands.CutFile;
+import org.txm.rcpapplication.commands.DeleteFile;
+import org.txm.rcpapplication.commands.ExecuteGroovyMacro;
+import org.txm.rcpapplication.commands.PasteFile;
+import org.txm.rcpapplication.commands.RenameFile;
+// TODO: Auto-generated Javadoc
+/**
+ * Simple file explorer @ author mdecorde.
+ */
+public class MacroExplorer extends ViewPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.views.fileexplorer.MacroExplorer"; //$NON-NLS-1$
+
+	/** The home. */
+	private static String home = Toolbox.getParam(Toolbox.USER_TXM_HOME); 
+
+	/** The tv. */
+	TreeViewer tv;
+
+	/**
+	 * Instantiates a new explorer.
+	 */
+	public MacroExplorer() {
+		initCurrentDirectory();
+	}
+
+	private static void initCurrentDirectory() {
+		home = Toolbox.getParam(Toolbox.USER_TXM_HOME); 
+		if (home == null) home = System.getProperty("user.home"); //$NON-NLS-1$
+		File scriptsDir = new File(home, "scripts"); //$NON-NLS-1$
+		File currentRootDir = new File(scriptsDir, "macro/org/txm/macro"); //$NON-NLS-1$
+		home = currentRootDir.getAbsolutePath();
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		MacroExplorer explorerView = (MacroExplorer) PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage().findView(
+						MacroExplorer.ID);
+		
+		initCurrentDirectory();
+		
+		if (explorerView != null) {
+			explorerView.tv.setInput(new File(home));
+			explorerView.tv.refresh();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+
+		FormLayout formLayout = new FormLayout();
+		formLayout.marginWidth = 0;
+		formLayout.marginHeight = 0;
+		parent.setLayout(formLayout);
+
+		// controles composite
+		Composite controls = new Composite(parent, SWT.NONE);
+
+		FormData controlsData = new FormData();
+		controlsData.top = new FormAttachment(0);
+		controlsData.left = new FormAttachment(0);
+		controlsData.right = new FormAttachment(100);
+		controls.setLayoutData(controlsData);
+
+		GridLayout controlsLayout = new GridLayout(2, false);
+		controlsLayout.marginBottom = controlsLayout.marginHeight=0;
+		controls.setLayout(controlsLayout);
+		
+		Button refresh = new Button(controls, SWT.NONE);
+		refresh.setText(Messages.Explorer_5);
+		refresh.setToolTipText(Messages.Explorer_6);
+		refresh.setLayoutData(new GridData());
+		refresh.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				initCurrentDirectory();
+				tv.setInput(new File(home));
+				tv.refresh();
+			}
+		});
+		
+		Button newMacro = new Button(controls, SWT.NONE);
+		newMacro.setLayoutData(new GridData());
+		newMacro.setText(Messages.MacrosExplorer_0);
+		newMacro.setToolTipText(Messages.MacrosExplorer_1);
+		newMacro.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+				File currentRootDir = new File(scriptRootDir, "macro/org/txm/macro"); //$NON-NLS-1$
+				currentRootDir.mkdirs();
+				
+				InputDialog dialog = new InputDialog(e.display.getActiveShell(), Messages.CreateMacro_0, Messages.CreateMacro_1, "", null); //$NON-NLS-1$
+				
+				dialog.open();
+				String name = dialog.getValue();
+				
+				if (CreateMacro.createMacro(currentRootDir.getAbsolutePath(), name)) {
+					MacroExplorer.refresh();
+					tv.refresh();
+				}
+			}
+		});
+
+		// set positions & sizes
+		//FormData widgetData = new FormData();
+		//widgetData.right = new FormAttachment(100);
+		//refresh.setLayoutData(widgetData);
+
+		// the explorer
+		tv = new TreeViewer(parent);
+		tv.setContentProvider(new MacroContentProvider(false));
+		tv.setLabelProvider(new MacroTreeLabelProvider());
+		tv.setInput(new File(home));
+
+		FormData tvData = new FormData();
+		tvData.top = new FormAttachment(controls, 0);
+		tvData.bottom = new FormAttachment(100);
+		tvData.left = new FormAttachment(0);
+		tvData.right = new FormAttachment(100);
+		tv.getTree().setLayoutData(tvData);
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+				TreeSelection selection = (TreeSelection) tv.getSelection();
+				File selectedItem = (File) selection.getFirstElement();
+				if (!selectedItem.isDirectory()) {
+					IWorkbenchWindow acWindow = TXMWindows.getActiveWindow();
+					IWorkbenchPart page = acWindow.getActivePage().getActivePart();
+					ExecuteGroovyMacro.execute(selectedItem.getAbsolutePath(), page, selection);
+				} else {
+					changeState(selection);
+				}
+			}
+		});
+
+		tv.getTree().addKeyListener(new KeyListener() {
+			@Override
+			public void keyReleased(KeyEvent e) {
+				// TODO Auto-generated method stub
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				ISelection sel = tv.getSelection();
+				if (sel instanceof IStructuredSelection) {
+					List<?> objects = ((IStructuredSelection)sel).toList();
+					if (e.keyCode == SWT.DEL) {
+						DeleteFile.delete(objects);
+					} else if (e.keyCode == SWT.F5) {
+						MacroExplorer.refresh();
+					} else {
+						for (Object o : objects) {
+							//Object o = ((IStructuredSelection)sel).getFirstElement();
+							if (o instanceof File) {
+								File file = (File) o;
+								if (e.keyCode == SWT.DEL) {
+									DeleteFile.delete(file);
+								} else if ((char)e.keyCode == 'c' & ((e.stateMask & SWT.CTRL) != 0)) {
+									CopyFile.copy(file);
+								} else if ((char)e.keyCode == 'x' & ((e.stateMask & SWT.CTRL) != 0)) {
+									CutFile.cut(file);
+								} else if ((char)e.keyCode == 'v' & ((e.stateMask & SWT.CTRL) != 0)) {
+									if (file.isFile()) file = file.getParentFile();
+									PasteFile.paste(file);
+								} else if (e.keyCode == SWT.F2) {
+									RenameFile.rename(file);
+								}
+							}
+						}
+					}
+					
+					tv.refresh();
+				}
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		getSite().setSelectionProvider(tv);
+	}
+
+	/**
+	 * Can delete.
+	 *
+	 * @param selectedItem the selected item
+	 * @return true, if successful
+	 */
+	protected boolean CanDelete(File selectedItem) {
+		File txmhome = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+		File scripts = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "scripts"); //$NON-NLS-1$
+		File corpora = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "corpora"); //$NON-NLS-1$
+		//File registry = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "registry"); //$NON-NLS-1$
+		File workspaces = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "workspaces"); //$NON-NLS-1$
+		File xsl = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "xsl"); //$NON-NLS-1$
+		File samples = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "samples"); //$NON-NLS-1$
+		if (selectedItem.equals(txmhome) || 
+				selectedItem.equals(txmhome) ||
+				selectedItem.equals(scripts) ||
+				selectedItem.equals(corpora) ||
+				//selectedItem.equals(registry) ||
+				selectedItem.equals(workspaces) ||
+				selectedItem.equals(samples) ||
+				selectedItem.equals(xsl))
+		{
+			System.out.println(NLS.bind(Messages.Explorer_0, selectedItem));
+			return false;
+		}
+		return false;
+	}
+
+	/**
+	 * Change state.
+	 *
+	 * @param selection the selection
+	 */
+	protected void changeState(TreeSelection selection) {
+		TreeItem[] items = tv.getTree().getSelection();
+		for (TreeItem item : items) {
+			if (item.getExpanded()) {
+				item.setExpanded(false);	
+			} else {
+				item.setExpanded(true);
+			}
+			tv.refresh();
+		}	
+	}
+
+	/**
+	 * Sets the root.
+	 *
+	 * @param home the new root
+	 */
+	public void setRoot(String home) {
+		MacroExplorer.home = home;
+		tv.setInput(new File(home));
+		tv.refresh();
+	}
+
+	/**
+	 * Sets the root.
+	 *
+	 * @param f the new root
+	 */
+	public void setRoot(File f) {
+		MacroExplorer.home = f.getAbsolutePath();
+		tv.setInput(new File(home));
+		tv.refresh();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		tv.getTree().setFocus();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/fileexplorer/MacroExplorer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RConsole.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RConsole.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RConsole.java	(revision 122)
@@ -0,0 +1,309 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.stat.engine.r.RWorkspace;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.utils.MessagePrinter;
+import org.txm.utils.StreamHog;
+import org.txm.utils.logger.Log;
+
+/**
+ * display the R logs only 
+ * @author mdecorde.
+ */
+public class RConsole extends ViewPart implements MessagePrinter {
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.RConsole"; //$NON-NLS-1$
+
+	/** The text area. */
+	private StyledText textArea;
+	private Display display;
+	boolean readyToDisplay = false;
+	
+	//	/** The out. */
+	//	private static PrintStream out;
+	//
+	//	/** The err. */
+	//	private static PrintStream err;
+	//
+	//	/** The quit. */
+	//	private boolean quit;
+	//
+	//	/** The reader. */
+	//	private Thread reader;
+	//
+	//	/** The reader2. */
+	//	private Thread reader2;
+	//
+	//	/** The pin. */
+	//	PipedInputStream pin = new PipedInputStream();
+	//
+	//	/** The pin2. */
+	//	PipedInputStream pin2 = new PipedInputStream();
+	//
+	//	/** The output. */
+	//	static PrintStream output = System.out;
+	//
+	//	/** The errput. */
+	//	static PrintStream errput = System.err;
+	//
+	//	/** The blue. */
+	//	static Color blue;
+	//
+	//	/** The red. */
+	//	static Color red;
+
+	/**
+	 * Instantiates a new r console.
+	 */
+	public RConsole() {
+		//		try {
+		//			PipedOutputStream pout = new PipedOutputStream(pin);
+		//			out = new PrintStream(pout, true);
+		//
+		//			new PipedOutputStream(pin2);
+		//			err = new PrintStream(pout, true);
+		//
+		//		} catch (IOException e) {
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		}
+		//
+		//		reader = new Thread(this);
+		//		reader.setDaemon(true);
+		//		reader.start();
+		//		reader2 = new Thread(this);
+		//		reader2.setDaemon(true);
+		//		reader2.start();
+	}
+
+	/**
+	 * Redirect.
+	 *
+	 * @param b the b
+	 */
+	public static void redirect(boolean b) {
+		//		if (b) {
+		//			System.setOut(out);
+		//			System.setErr(err);
+		//		} else {
+		//			System.setOut(output);
+		//			System.setErr(errput);
+		//		}
+	}
+
+	//	/**
+	//	 * Lecture de la sortie standard.
+	//	 *
+	//	 * @param in the in
+	//	 * @return the string
+	//	 * @throws IOException Signals that an I/O exception has occurred.
+	//	 */
+	//	protected synchronized String readLine(PipedInputStream in)
+	//			throws IOException {
+	//		String input = ""; //$NON-NLS-1$
+	//		do {
+	//			int available = in.available();
+	//			if (available == 0)
+	//				break;
+	//			byte b[] = new byte[available];
+	//			in.read(b);
+	//			input = input + new String(b, 0, b.length);
+	//		} while (!input.endsWith("\n") && !input.endsWith("\r\n") && !quit); //$NON-NLS-1$ //$NON-NLS-2$
+	//		return input;
+	//	}
+	//
+	//	/* (non-Javadoc)
+	//	 * @see java.lang.Runnable#run()
+	//	 */
+	//	@Override
+	//	public synchronized void run() {
+	//		try {
+	//			while (Thread.currentThread() == reader) {
+	//				try {
+	//					this.wait(100);
+	//				} catch (InterruptedException ie) {
+	//				}
+	//				if (pin.available() != 0) {
+	//					String input = this.readLine(pin);
+	//					textArea.append(input);
+	//				}
+	//				if (quit)
+	//					return;
+	//			}
+	//
+	//			while (Thread.currentThread() == reader2) {
+	//				try {
+	//					this.wait(100);
+	//				} catch (InterruptedException ie) {
+	//				}
+	//				if (pin2.available() != 0) {
+	//					String input = this.readLine(pin2);
+	//					textArea.append(input);
+	//				}
+	//
+	//				if (quit)
+	//					return;
+	//			}
+	//		} catch (Exception e) {
+	//			textArea.append(Messages.GroovyConsole_4);
+	//			textArea.append(Messages.GroovyConsole_5 + e);
+	//		}
+	//	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		display = parent.getDisplay();
+
+		//	blue = parent.getDisplay().getSystemColor(SWT.COLOR_BLUE);
+		//	red = parent.getDisplay().getSystemColor(SWT.COLOR_RED);
+
+		textArea = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL
+				| SWT.H_SCROLL);
+		textArea.setEditable(false);
+
+		textArea.setLayoutData(new GridData(GridData.FILL_BOTH
+				| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
+
+		// Custom Action for the View's Menu  
+		Action lCustomAction = new Action() {
+			public void run() {  
+				clear();
+			} 
+		};
+		lCustomAction.setId("org.txm.rcpapplication.views.RConsole.clear"); //$NON-NLS-1$
+		//lCustomAction.setText("Clear");  
+		lCustomAction.setImageDescriptor(IImageKeys.getImageDescriptor(IImageKeys.ACTION_DELETE)); 
+		getViewSite().getActionBars().getToolBarManager().add(lCustomAction); 
+
+		connectToRWorkspace();
+	}
+	
+	public void reconnectToRWorkspace() {
+		readyToDisplay = false;
+		connectToRWorkspace();
+	}
+	
+	public void connectToRWorkspace() {
+		if (!readyToDisplay && Toolbox.isStatEngineInitialized()) {
+			RWorkspace rw = null;
+			Log.warning(Messages.RConsole_0);
+			try {
+				rw = RWorkspace.getRWorkspaceInstance();
+				if (rw == null) return;
+				StreamHog errorLogger = rw.getErrorLogger();
+				StreamHog inputLogger = rw.getInputLogger();
+				//if (errorLogger.getMessagePrinter() == null) {
+					//System.out.println("SET MESSAGEPRINTER OF THE RCONSOLE");
+					if (errorLogger != null)
+						errorLogger.addMessagePrinter(this);
+					if (inputLogger != null)
+						inputLogger.addMessagePrinter(this);
+					readyToDisplay = true;
+				//}
+			} catch (RWorkspaceException e) {
+				System.out.println(Messages.RConsole_1+e);
+				Log.printStackTrace(e);
+			}
+		}
+	}
+
+	/**
+	 * Println.
+	 *
+	 * @param txt the txt
+	 */
+	String txtToPrint;
+	public void println(String txt) {
+		txtToPrint = txt;
+		display.syncExec(new Runnable() {
+			public void run() {
+				if (textArea != null) {
+					textArea.append(txtToPrint + "\n"); //$NON-NLS-1$
+					textArea.setTopIndex(textArea.getLineCount());
+				}
+			}
+		});
+	}
+
+	/**
+	 * Prints the.
+	 *
+	 * @param txt the txt
+	 */
+	public void print(String txt) {
+		txtToPrint = txt;
+		display.syncExec(new Runnable() {
+			public void run() {
+				if (textArea != null) {
+					textArea.append(txtToPrint); //$NON-NLS-1$
+					textArea.setTopIndex(textArea.getLineCount());
+				}
+			}
+		});
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+	}
+
+	public void clear() {
+		if (textArea != null)
+			textArea.setText(""); //$NON-NLS-1$
+	}
+	
+	public static void reload() {
+		for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) {
+			IViewPart v = window.getActivePage().findView(RConsole.ID);
+			if (v == null) return;
+			RConsole rc = (RConsole) v;
+			rc.reconnectToRWorkspace();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RConsole.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RVariablesView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RVariablesView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RVariablesView.java	(revision 122)
@@ -0,0 +1,501 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.views;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.ViewPart;
+import org.txm.HasResults;
+import org.txm.Toolbox;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.progression.Progression;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.objects.Base;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.commands.R.CopySelection;
+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.Lexicon;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.engine.r.RWorkspace;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RVariablesView.
+ */
+public class RVariablesView extends ViewPart {
+
+	/** The tv. */
+	TreeViewer tv;
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.views.RVariablesView"; //$NON-NLS-1$
+
+	/**
+	 * Refresh.
+	 */
+	public static void refresh() {
+		IWorkbenchWindow activeworksbench = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		if (activeworksbench == null)
+			return;
+		IWorkbenchPage activepage = activeworksbench.getActivePage();
+		if (activepage == null)
+			return;
+		RVariablesView rview = (RVariablesView) activepage.findView(RVariablesView.ID);
+		if (rview != null)
+			rview.tv.refresh();
+	}
+
+	/**
+	 * Reload.
+	 */
+	public static void reload() {
+
+		IWorkbenchWindow activeworksbench = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		if (activeworksbench == null)
+			return;
+		IWorkbenchPage activepage = activeworksbench.getActivePage();
+		if (activepage == null)
+			return;
+		RVariablesView rview = (RVariablesView) activepage.findView(RVariablesView.ID);
+		if (rview != null)
+			rview._reload();
+	}
+
+	/**
+	 * _reload.
+	 */
+	public void _reload() {
+		tv.setContentProvider(new RVariablesTreeProvider());
+		tv.setLabelProvider(new RVariablesLabelProvider());
+		List<MainCorpus> corpora;
+		try {
+			corpora = CorpusManager.getCorpusManager().getCorpora();
+			if (corpora != null)
+			{
+				buildTreeContent(corpora);
+				tv.refresh();
+			}
+		} catch (CqiClientException e) { }
+	}
+	
+	/**
+	 * Builds the tree content.
+	 *
+	 * @param corpora the corpora
+	 */
+	protected void buildTreeContent(List<MainCorpus> corpora)
+	{
+		ArrayList<HasResults> notempty = new ArrayList<HasResults>(corpora);
+		for(HasResults container : corpora)
+		{
+			String symbol = null;
+			try {
+				Method getname = container.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+				symbol = (String)getname.invoke(container);
+			} catch (Exception e2) {}
+
+			if (symbol != null)
+				continue;
+			
+			//System.out.println("check "+container.getName());
+			if (container.getResults().size() > 0 || container.getSubHasResults().size() > 0)
+			{
+				if (!deepSearch(container))
+					notempty.remove(container);
+			}
+			else
+			{
+				notempty.remove(container);
+			}
+		}
+		tv.setInput(notempty);
+	}
+		
+	/**
+	 * Deep search.
+	 *
+	 * @param container the container
+	 * @return true, if successful
+	 */
+	protected boolean deepSearch(HasResults container)
+	{
+		boolean own = hasSymbol(container.getResults());
+		if (own)
+		{
+			return true;
+		}
+		else // continue deeper
+		{
+			
+			for(HasResults children : container.getSubHasResults())
+			{
+				boolean childrencontainer = deepSearch(children);
+				if (childrencontainer)
+					return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Checks for symbol.
+	 *
+	 * @param results the results
+	 * @return true, if successful
+	 */
+	private boolean hasSymbol(List<Object> results) {
+		String symbol = null;
+		for(Object rez : results)
+		{
+			try {
+				Method getname = rez.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+				symbol = (String)getname.invoke(rez);
+			} catch (Exception e2) {}
+			if (symbol != null)
+				return true;
+		}
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		parent.setLayout(new GridLayout(2, true));
+		Button export = new Button(parent, SWT.PUSH);
+		export.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				false));
+		export.setText(Messages.RVariablesView_1);
+		export.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent arg0) {
+				//System.out.println("reload");
+				_reload();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent arg0) {	}
+		});
+		
+		Button logs = new Button(parent, SWT.PUSH);
+		logs.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,	false));
+		logs.setText(Messages.RVariablesView_2);
+		logs.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent arg0) {
+				//System.out.println("reload");
+				
+				try {
+					File homedir = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+					long time = System.currentTimeMillis();
+					File tmp = new File(homedir, "REvalLogs.txt"); //$NON-NLS-1$
+					RWorkspace.saveEvalLog(tmp);
+					EditFile.openfile(tmp.getAbsolutePath());
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent arg0) {	}
+		});
+
+		tv = new TreeViewer(parent);
+		tv.getTree().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 1));
+		//_reload();
+
+		tv.addDoubleClickListener(new IDoubleClickListener() {
+			@Override
+			public void doubleClick(DoubleClickEvent event) {
+			}
+		});
+
+		tv.getTree().addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {				
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				/*
+				if (e.keyCode == SWT.DEL) {
+					DeleteObject.delete(tv.getSelection());
+				}
+				else if (e.keyCode == SWT.F5) {
+					reload();
+				}*/
+				if ((char)e.keyCode == 'c' & ((e.stateMask & SWT.CTRL) != 0))
+				{
+					TreeSelection selection = (TreeSelection) tv.getSelection();
+					CopySelection.copyFirst(selection);
+
+				}
+			}
+		});
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tv.getTree());
+
+		// Set the MenuManager
+		tv.getTree().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tv);
+		// Make the selection available
+		getSite().setSelectionProvider(tv);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/**
+	 * The Class RVariablesLabelProvider.
+	 */
+	public class RVariablesLabelProvider extends LabelProvider{
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+		 */
+		@Override
+		public String getText(Object element) {
+			String name =""; //$NON-NLS-1$
+			String symbol = null;
+
+			try {
+				Method getname = element.getClass().getMethod("getName"); //$NON-NLS-1$
+				name = (String)getname.invoke(element);
+			} catch (Exception e) {}
+
+			try {
+				Method getname = element.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+				symbol = (String)getname.invoke(element);
+			} catch (Exception e) {}
+
+			if (symbol == null)
+				return name;
+			else
+				return NLS.bind(Messages.RVariablesView_9, name, symbol);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+		 */
+		@Override
+		public final Image getImage(Object element) {
+			if (element instanceof Corpus)
+				return IImageKeys.getImage(IImageKeys.CORPUS);
+			else if (element instanceof Partition)
+				return IImageKeys.getImage(IImageKeys.PARTITION);
+			else if (element instanceof Lexicon)
+				return IImageKeys.getImage(IImageKeys.ACTION_FREQUENCY_LIST);
+			else if (element instanceof Index)
+				return IImageKeys.getImage(IImageKeys.ACTION_INDEX);
+			else if (element instanceof SpecificitesResult)
+				return IImageKeys.getImage(IImageKeys.ACTION_SPECIFICITIES);
+			else if (element instanceof Concordance)
+				return IImageKeys.getImage(IImageKeys.ACTION_CONCORDANCES);
+			else if (element instanceof Cooccurrence)
+				return IImageKeys.getImage(IImageKeys.ACTION_COOCCURRENCE);
+			else if (element instanceof LexicalTable)
+				return IImageKeys.getImage(IImageKeys.LEXICALTABLE);
+			else if (element instanceof CA)
+				return IImageKeys.getImage(IImageKeys.ACTION_CORRESPONDANCE_ANALYSIS);
+			else if (element instanceof CAH)
+				return IImageKeys.getImage(IImageKeys.ACTION_CAH);
+			else if (element instanceof Referencer)
+				return IImageKeys.getImage(IImageKeys.ACTION_REFERENCER);
+			else if (element instanceof Progression)
+				return IImageKeys.getImage(IImageKeys.ACTION_PROGRESSION);
+			return null;
+		}
+	}
+
+	/**
+	 * The Class RVariablesTreeProvider.
+	 */
+	public class RVariablesTreeProvider implements ITreeContentProvider {
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		@Override
+		public Object[] getChildren(Object element) {
+			//System.out.println("get children of "+element);
+			if (element instanceof HasResults) {
+				List<Object> results = ((HasResults) element).getResults();
+				List<HasResults> sub = ((HasResults) element).getSubHasResults();
+				ArrayList<Object> children = new ArrayList<Object>();
+				children.addAll(sub);
+				children.addAll(results);
+				for(int i = 0 ; i < children.size() ; i++)
+				{
+					
+					Object obj = children.get(i);
+					//System.out.println("test > "+obj);
+					if (obj instanceof HasResults)
+					{
+						//System.out.println("deap "+obj);
+						if (!deepSearch((HasResults) obj))
+						{
+							children.remove(i);
+							i--;
+						}
+					}
+					else
+					{
+						String symbol = null;
+						try {
+							Method getname = obj.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+							symbol = (String)getname.invoke(obj);
+						} catch (Exception e) {}
+						//System.out.println("symbol "+symbol);
+						if (symbol == null)
+						{
+							children.remove(i);
+							i--;
+						}
+					}
+				}
+				//System.out.println(""+element+" > "+children);
+				return children.toArray();
+			}
+			return new Object[0];
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		@Override
+		public Object getParent(Object element) {
+			Partition partition = null;
+			try {
+				Method getname = element.getClass().getMethod("getPartition"); //$NON-NLS-1$
+				partition = (Partition)getname.invoke(element);
+			} catch (Exception e) {}
+			
+			if (partition == null)
+			{
+				return partition;
+			}
+			
+			Corpus corpus = null;
+			try {
+				Method getname = element.getClass().getMethod("getCorpus"); //$NON-NLS-1$
+				corpus = (Corpus)getname.invoke(element);
+			} catch (Exception e) {}
+			
+			return corpus;
+		}
+		
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		@Override
+		public boolean hasChildren(Object element) {
+			if (element instanceof HasResults) {
+				return getChildren(element).length > 0;
+			}
+			return false;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		@Override
+		public Object[] getElements(Object element) {
+			Collection<Base> input = (Collection<Base>) element;
+			Object[] objects = new Object[input.size()];
+			Iterator<Base> it = input.iterator();
+			int i = 0;
+			while (it.hasNext()) {
+				objects[i] = it.next();
+				i++;
+			}
+			return objects;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		@Override
+		public void dispose() {
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+		 */
+		@Override
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/views/RVariablesView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMRServeWatcher.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMRServeWatcher.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMRServeWatcher.java	(revision 122)
@@ -0,0 +1,107 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.txm.RserveWatcher;
+import org.txm.rcpapplication.views.CorporaView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Watch if RServe is running
+ */
+@Deprecated
+public class TXMRServeWatcher extends RserveWatcher{
+	
+	/** The parent. */
+	private Display parent;
+
+	/**
+	 * Instantiates a new tXMR serve watcher.
+	 *
+	 * @param parent the parent
+	 */
+	TXMRServeWatcher(Display parent)
+	{
+		this.parent = parent;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.RserveWatcher#restart()
+	 */
+	@Override
+	public boolean restart()
+	{
+		parent.syncExec(new Runnable(){
+		      @Override
+			public void run(){
+		    	  MessageDialog d =
+					    new MessageDialog(
+					      parent.getActiveShell(),
+					      Messages.TXMRServeWatcher_0,
+					      null,
+					      Messages.TXMRServeWatcher_1,
+					      MessageDialog.ERROR,
+					      new String[] { Messages.TXMRServeWatcher_2 },
+					      0);
+					    d.open();
+		      }
+		    });
+		
+		boolean ret = super.restart();
+		
+		parent.syncExec(new Runnable(){
+		      @Override
+			public void run(){
+		    	  MessageDialog d =
+					    new MessageDialog(
+					      parent.getActiveShell(),
+					      Messages.TXMRServeWatcher_3,
+					      null,
+					      Messages.TXMRServeWatcher_4,
+					      MessageDialog.ERROR,
+					      new String[] { Messages.TXMRServeWatcher_2 },
+					      0);
+					    d.open();
+		      }
+		    });
+		
+		if (ret)
+		{
+			parent.syncExec(new Runnable(){
+			      @Override
+				public void run(){
+			    	  CorporaView.reload();
+			      }
+			    });
+		}
+		
+		return ret;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMRServeWatcher.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieContentProvider.java	(revision 122)
@@ -0,0 +1,151 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.txm.objects.Base;
+import org.txm.objects.Project;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+/**
+ * Content provider of the Corpus view
+ *  
+ * @author mdecorde.
+ */
+public class TextometrieContentProvider implements ITreeContentProvider {
+	
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param element the element
+	 * @return the adapter
+	 */
+	protected IWorkbenchAdapter getAdapter(Object element) {
+		IWorkbenchAdapter adapter = null;
+		if (element instanceof IAdaptable)
+			adapter = (IWorkbenchAdapter) ((IAdaptable) element)
+					.getAdapter(IWorkbenchAdapter.class);
+		if (element != null && adapter == null)
+			adapter = (IWorkbenchAdapter) Platform.getAdapterManager()
+					.loadAdapter(element, IWorkbenchAdapter.class.getName());
+		return adapter;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+	 */
+	@Override
+	public Object[] getChildren(Object element) {
+
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter != null) {
+			Object[] children = adapter.getChildren(element);
+//			Arrays.sort(children, new Comparator<Object>() {
+//				@Override
+//				public int compare(Object o1, Object o2) {
+//					if (o1 == null) return -1;
+//					if (o2 == null) return 1;
+//					return o1.toString().compareTo(o2.toString());
+//				}
+//			});
+			return children;
+		}
+		return new Object[0];
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object element) {
+		if (element instanceof Project) {
+			ArrayList<MainCorpus> elements = new ArrayList<MainCorpus>();
+			Project p = (Project) element;
+			
+			for (Base b : p.getBases()) {
+				elements.addAll(b.getCorpora().values());
+			}
+			//System.out.println("get elements: "+elements);
+			Collections.sort(elements, new Comparator<MainCorpus>() {
+				
+				@Override
+				public int compare(MainCorpus o1, MainCorpus o2) {
+					if (o1 == null) return -1;
+					if (o2 == null) return 1;
+					return o1.getName().compareTo(o2.getName());
+				}
+			});
+			return elements.toArray();
+		}
+		return new Object[0];
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(Object element) {
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter != null) {
+			return adapter.getParent(element);
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+	 */
+	@Override
+	public boolean hasChildren(Object element) {
+		int n = getChildren(element).length;
+		return n > 0;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/IOClipboard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/IOClipboard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/IOClipboard.java	(revision 122)
@@ -0,0 +1,117 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.TextTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Shell;
+
+// TODO: Auto-generated Javadoc
+/*
+ import java.awt.Toolkit;
+ import java.awt.datatransfer.DataFlavor;
+ import java.awt.datatransfer.StringSelection;
+ import java.awt.datatransfer.Transferable;
+ */
+/**
+ * manage the clipboard.
+ */
+public class IOClipboard {
+
+	/**
+	 * Read.
+	 *
+	 * @return the string
+	 */
+	public static String read() {
+		Shell sh = new Shell();
+		Clipboard cb = new Clipboard(sh.getDisplay());
+		String data = (String) cb.getContents(TextTransfer.getInstance());
+		sh.close();
+		return data;
+	}
+
+	/**
+	 * Read.
+	 *
+	 * @return the string
+	 */
+	public static String[] readFiles() {
+		Shell sh = new Shell();
+		Clipboard cb = new Clipboard(sh.getDisplay());
+		String[] data = (String[]) cb.getContents(FileTransfer.getInstance());
+		sh.close();
+		return data;
+	}
+	
+	/**
+	 * Write.
+	 *
+	 * @param text the text
+	 */
+	public static void write(String text) {
+		if (text.length() == 0) return;
+		
+		Shell sh = new Shell();
+		Clipboard cb = new Clipboard(sh.getDisplay());
+		TextTransfer textTransfer = TextTransfer.getInstance();
+		cb.setContents(new Object[] { text }, new Transfer[] { textTransfer });
+		sh.close();
+	}
+
+	/*
+	 * public static String read() { Transferable t =
+	 * Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null); try {
+	 * if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
+	 * String text = (String) t.getTransferData(DataFlavor.stringFlavor);
+	 * 
+	 * return text.trim(); } } catch (Exception e) { } return ""; }
+	 * 
+	 * public static void write(String text) { SecurityManager sm =
+	 * System.getSecurityManager(); if (sm != null) { try {
+	 * sm.checkSystemClipboardAccess(); } catch (Exception e)
+	 * {org.txm.rcpapplication.utils.Logger.printStackTrace(e);} } Toolkit tk = Toolkit.getDefaultToolkit();
+	 * StringSelection st = new StringSelection(text);
+	 * java.awt.datatransfer.Clipboard cp = tk.getSystemClipboard();
+	 * cp.setContents(st, null); }
+	 */
+	/**
+	 * The main method.
+	 *
+	 * @param args the arguments
+	 */
+	public static void main(String[] args) {
+		System.out.println("read : "); //$NON-NLS-1$
+		System.out.println(IOClipboard.read());
+		System.out.println("write : sdfgdsfg"); //$NON-NLS-1$
+		IOClipboard.write("dfsgsdgdsg"); //$NON-NLS-1$
+		System.out.println("read : " + IOClipboard.read()); //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/IOClipboard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/GSERunner.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/GSERunner.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/GSERunner.java	(revision 122)
@@ -0,0 +1,72 @@
+package org.txm.rcpapplication.utils;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import groovy.lang.Binding;
+import groovy.util.GroovyScriptEngine;
+import groovy.util.ResourceException;
+import groovy.util.ScriptException;
+
+/**
+ * gse wrapper for TXM scripts and macros
+ * 
+ * @author mdecorde
+ *
+ */
+public class GSERunner extends GroovyScriptEngine {
+
+	public GSERunner(String[] urls, ClassLoader parentClassLoader) throws IOException {
+		super(urls, parentClassLoader);
+	}
+
+	/**
+	 * 
+	 * Simplify the call a Groovy script within a Groovy script and allow to send named and typed arguments
+	 * 
+	 * @param clazz
+	 * @param args
+	 * @return
+	 * @throws ResourceException
+	 * @throws ScriptException
+	 */
+	@SuppressWarnings("rawtypes")
+	public Object run(Class clazz, Map args) throws ResourceException, ScriptException {
+		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(args));
+	}
+	
+	/**
+	 * Convenience method exactly the same as calling
+	 * run(class, ["args":args])
+	 * 
+	 * @param clazz
+	 * @param args
+	 * @return
+	 * @throws ResourceException
+	 * @throws ScriptException
+	 */
+	@SuppressWarnings("rawtypes")
+	public Object runMacro(Class clazz, Map args) throws ResourceException, ScriptException {
+		HashMap<String, Object> arrangedMap = new HashMap<String, Object>();
+		arrangedMap.put("args", args);
+		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(arrangedMap));
+	}
+		
+	/**
+	 * Convenience method exactly the same as calling
+	 * run(class, ["args":["var":"val, ...]])
+	 * 
+	 * @param clazz
+	 * @param args
+	 * @return
+	 * @throws ResourceException
+	 * @throws ScriptException
+	 */
+	@SuppressWarnings("rawtypes")
+	public Object runMacro(Class clazz) throws ResourceException, ScriptException {
+		HashMap<String, Object> arrangedMap = new HashMap<String, Object>();
+		arrangedMap.put("args", new HashMap<String, Object>());
+		return run(clazz.getCanonicalName().replace(".", "/")+".groovy", new Binding(arrangedMap));
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/GSERunner.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/JobHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/JobHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/JobHandler.java	(revision 122)
@@ -0,0 +1,276 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+import java.util.concurrent.Semaphore;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.txm.functions.ProgressWatcher;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Simplified RCP Job that implements the Toolbox ProgressWatcher class to allow TBX functions to manager the Job monitor.
+ * 
+ * the implemented run methods returns a Status.OK_STATUS or Status.CANCEL_STATUS that can be tested with the getResult() after the join method is called.
+ * 
+ * it must also call the runInit method to allow th user to force stop the JobThread
+ * 
+ * @author mdecorde, nkredens
+ */
+public abstract class JobHandler extends Job implements ProgressWatcher {
+
+	/** The parent. */
+	//Composite parent;
+	IProgressMonitor currentMonitor;
+
+	protected Thread myThread = null;
+	protected Semaphore mySemaphore;
+	protected boolean canBeInterrupted = false;
+	
+	protected boolean success = false;
+	/**
+	 * Instantiates a new job handler.
+	 * 
+	 * @param title
+	 *            the title
+	 * @param parent
+	 *            the parent
+	 */
+	public JobHandler(String title, Composite parent) {
+		super(title);
+		//this.parent = parent;
+		this.setUser(true);
+	}
+
+	/**
+	 * You must set the current monitor to be available to manage the process
+	 * progress
+	 * 
+	 * @param monitor
+	 */
+	public void setCurrentMonitor(IProgressMonitor monitor) {
+		currentMonitor = monitor;
+	}
+	
+	@Override
+	public void beginTask(String name, long totalWork) {
+		if (currentMonitor != null) {
+			currentMonitor.beginTask(name, (int) totalWork);
+		}
+	}
+
+	@Override
+	public void worked(int amount) {
+		if (currentMonitor != null) {
+			currentMonitor.worked(amount);
+		}
+	}
+	
+
+	@Override
+	public void worked() {
+		if (currentMonitor != null) {
+			currentMonitor.worked(1);
+		}
+	}
+
+	@Override
+	public void worked(int amount, String message) {
+		if (currentMonitor != null) {
+			currentMonitor.worked(amount);
+			currentMonitor.subTask(message);
+		}
+	}
+
+	@Override
+	public void setMessage(String message) {
+		if (currentMonitor != null)
+			currentMonitor.subTask(message);
+	}
+
+	@Override
+	public boolean isCanceled() {
+		if (currentMonitor != null) {
+			return currentMonitor.isCanceled();
+		}
+		return false;
+	}
+
+	@Override
+	public void done() {
+		if (currentMonitor != null) {
+			currentMonitor.done();
+		}
+	}
+	
+	@Override
+	public void acquireSemaphore() {
+		try {
+			this.mySemaphore.acquire();
+		} catch (InterruptedException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	@Override
+	public boolean tryAcquireSemaphore() {
+		return this.mySemaphore.tryAcquire();
+	}
+
+	@Override
+	public void releaseSemaphore() {
+		this.mySemaphore.release();
+		if (isCanceled()) {
+			canceling();
+		}
+	}
+
+	/**
+	 * Create a job in RCP scheduler.
+	 * 
+	 * @param title
+	 *            the title
+	 */
+	public JobHandler(String title) {
+		super(title);
+		this.setUser(true);
+	}
+
+	/**
+	 * Instantiates a new job handler.
+	 * 
+	 * @param title
+	 *            the title
+	 * @param parent
+	 *            the parent
+	 * @param show
+	 *            the show
+	 */
+	public JobHandler(String title, Composite parent, boolean show) {
+		super(title);
+		this.setUser(show);
+	}
+
+	/**
+	 * Instantiates a new job handler.
+	 * 
+	 * @param title
+	 *            the title
+	 * @param show
+	 *            the show
+	 */
+	public JobHandler(String title, boolean show) {
+		super(title);
+		this.setUser(show);
+	}
+
+	/*
+	 * use this function to do something with SWT objects
+	 */
+	/**
+	 * Sync exec.
+	 * 
+	 * @param runable
+	 *            the runable
+	 */
+	public void syncExec(Runnable runable) {
+		Display.getDefault().syncExec(runable);
+	}
+
+	public void startJob() {
+		startJob(false);
+	}
+	
+	/**
+	 * Start job.
+	 */
+	public void startJob(boolean modal) {
+		if (modal) {
+			this.setRule(org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot());// set modal job
+		}
+		this.setUser(true);// show popup
+		this.schedule();// start
+	}
+
+	/**
+	 * Allows the job to be interrupted
+	 * 
+	 * @param monitor
+	 */
+	protected void runInit(IProgressMonitor monitor) {
+		this.myThread = Thread.currentThread();
+		this.mySemaphore = new Semaphore(1);
+		this.currentMonitor = monitor;
+		this.canBeInterrupted = true;
+	}
+
+	/**
+	 * Action when user requests for interruption
+	 */
+	@Override
+	protected void canceling() {
+		if (this.myThread == null)
+			return;
+		if (!this.canBeInterrupted) // Prevent thread system interruption (ThreadDeath not handled by the programmer)
+			return;
+		
+		Log.info(this.getName() + Messages.JobHandler_2);
+		
+		try {
+			System.out.println(Messages.JobHandler_1 + " " + this.getName()); //$NON-NLS-1$
+			this.syncExec(new Runnable() {
+				@Override
+				public void run() {
+					StatusLine.setMessage(Messages.JobHandler_0);
+				}
+			});
+			this.currentMonitor.setTaskName(Messages.JobHandler_0);
+			this.mySemaphore.acquire();
+			this.myThread.stop();
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			Log.severe(Messages.JobHandler_3 + this.getName());
+		}
+	}
+
+	/**
+	 * can be used to store the job result after join() has been called
+	 * 
+	 * @return
+	 */
+	public Object getResultObject() {
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/JobHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/SWTEditorsUtils.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/SWTEditorsUtils.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/SWTEditorsUtils.java	(revision 122)
@@ -0,0 +1,106 @@
+/**
+ * 
+ */
+package org.txm.rcpapplication.utils;
+
+import org.eclipse.e4.ui.model.application.ui.MUIElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartStack;
+import org.eclipse.e4.ui.model.application.ui.basic.MStackElement;
+import org.eclipse.e4.ui.model.application.ui.basic.impl.BasicFactoryImpl;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.EditorPart;
+
+/**
+ * Utility class to manage EditorPart.
+ * Methods that modify the UI are intended to be called in the UI thread.
+ * @author sjacquot
+ *
+ */
+public class SWTEditorsUtils {
+	
+	/**
+	 * Checks if the editor specified by its editor input is already open in the active page.
+	 * @param editorInput
+	 * @return
+	 */
+	public static boolean isOpenEditor(IEditorInput editorInput)	{
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
+
+		return (page.findEditor(editorInput) != null);
+	}
+
+	/**
+	 * Checks if the specified editor is already open in the active page.
+	 * @param editor
+	 * @return
+	 */
+	public static boolean isOpenEditor(EditorPart editor)	{
+		return isOpenEditor(editor.getEditorInput());
+	}
+
+	/**
+	 * Splits the parent area of an editor and add another one in this area by splitting it. 
+	 * (Same behavior than the splitting drag and drop event on editor.)
+	 * @param parentEditor
+	 * @param editorToAdd
+	 * @param position
+	 * @param percent
+	 */
+	public static void addEditor(EditorPart parentEditor, EditorPart editorToAdd, int position, float percent) {
+		addPart((MPart) parentEditor.getSite().getService(MPart.class), (MPart) editorToAdd.getSite().getService(MPart.class), position, percent);
+	}
+
+	/**
+	 * Splits the parent area of an editor and add another one in this area by splitting it by the middle. 
+	 * (Same behavior than the splitting drag and drop event on editor.)
+	 * 
+	 * @param parentEditor
+	 * @param editorToAdd
+	 * @param position
+	 * @param percent
+	 */
+	public static void addEditor(EditorPart parentEditor, EditorPart editorToAdd, int position) {
+		addEditor(parentEditor, editorToAdd, position, 0.5f);
+	}
+	
+	/**
+	 * Splits the parent area of a part and add another one in this area by splitting it. 
+	 * (Same behavior than the splitting drag and drop event on editor.)
+	 * 
+	 * @param percent
+	 * @param position
+	 * @param parentPart
+	 * @param partToAdd
+	 */
+	public static void addPart(MPart parentPart, MPart partToAdd, int position, float percent) {
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		EModelService service = (EModelService) window.getService(EModelService.class);
+		MPartStack stackToInsert = createPartStack(partToAdd);
+
+		MUIElement parent = parentPart.getParent();
+		while (!(parent instanceof MPartSashContainerElement))	{
+			parent = parent.getParent();
+		}
+		service.insert(stackToInsert, (MPartSashContainerElement) parent, position, percent);
+	}
+	
+	/**
+	 * Creates a part stack for the specified part.
+	 * @param part
+	 * @return
+	 */
+	private static MPartStack createPartStack(MPart part) {
+		MStackElement stackElement = part;
+		MPartStack stack = BasicFactoryImpl.eINSTANCE.createPartStack();
+		stack.getChildren().add(stackElement);
+		stack.setSelectedElement(stackElement);
+		return stack;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/SWTEditorsUtils.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OverlayImageIcon.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OverlayImageIcon.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OverlayImageIcon.java	(revision 122)
@@ -0,0 +1,148 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+
+import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.Point;
+import org.txm.rcpapplication.IImageKeys;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OverlayImageIcon.
+ *
+ * @author balajik
+ * 
+ * This class is used for overlaying image icons
+ */
+public class OverlayImageIcon extends CompositeImageDescriptor
+{
+  
+  /** Base image of the object. */ 
+  private Image baseImage_;
+  
+  /** Size of the base image. */ 
+  private Point sizeOfImage_;
+
+  /** The imagekey. */
+  private String imagekey; 
+
+  /**
+   * Constructor for overlayImageIcon.
+   *
+   * @param baseImage the base image
+   * @param imagekey the imagekey
+   */
+  public OverlayImageIcon(Image baseImage, 
+                          String imagekey)
+  {
+    // Base image of the object
+    baseImage_ = baseImage;
+    // Demo Image Object 
+    //demoImage_ = demoImage;
+    //imageKey_ = imageKey;
+    sizeOfImage_ = new Point(baseImage.getBounds().width, 
+                             baseImage.getBounds().height);
+    this.imagekey = imagekey;
+  }
+
+  /**
+   * Draw composite image.
+   *
+   * @param arg0 the arg0
+   * @param arg1 the arg1
+   * @see org.eclipse.jface.resource.CompositeImageDescriptor#drawCompositeImage(int, int)
+   * DrawCompositeImage is called to draw the composite image.
+   */
+  @Override
+protected void drawCompositeImage(int arg0, int arg1)
+  {
+	 //System.out.println("draw composite with "+baseImage_);
+    // Draw the base image
+     drawImage(baseImage_.getImageData(), 0, 0); 
+     //System.out.println("draw base ok");
+     //int[] locations = organizeImages();
+     //System.out.println("img key: "+imagekey);
+     Image deco = IImageKeys.getImage(imagekey);
+     //System.out.println("get deco ok");
+     ImageData imageData = deco.getImageData();
+     //System.out.println(imageData);
+     drawImage(imageData, 0, 0);
+      /*  switch(locations[i])
+        {
+          // Draw on the top left corner
+          case TOP_LEFT:
+           
+            break;
+            
+          // Draw on top right corner  
+          case TOP_RIGHT:
+            drawImage(imageData, sizeOfImage_.x - imageData.width, 0);
+            break;
+            
+          // Draw on bottom left  
+          case BOTTOM_LEFT:
+            drawImage(imageData, 0, sizeOfImage_.y - imageData.height);
+            break;
+            
+          // Draw on bottom right corner  
+          case BOTTOM_RIGHT:
+            drawImage(imageData, sizeOfImage_.x - imageData.width,
+                      sizeOfImage_.y - imageData.height);
+            break;
+            
+        }
+     */
+   
+  }
+ 
+  /**
+   * Gets the size.
+   *
+   * @return the size
+   * @see org.eclipse.jface.resource.CompositeImageDescriptor#getSize()
+   * get the size of the object
+   */
+  @Override
+protected Point getSize()
+  {
+    return sizeOfImage_;
+  }
+  
+  /**
+   * Get the image formed by overlaying dif ferent images on the base image.
+   *
+   * @return composite image
+   */ 
+  public Image getImage()
+  {
+    return createImage();
+  }
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OverlayImageIcon.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Utils : Clipboard, Jobs, Locale ...</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Logger.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Logger.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Logger.java	(revision 122)
@@ -0,0 +1,209 @@
+package org.txm.rcpapplication.utils;
+
+import org.eclipse.swt.widgets.Display;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.utils.logger.Log;
+import org.txm.utils.logger.MessageBox;
+
+public class Logger extends Log {
+	/** The class id. */
+	public static final String id = "org.txm.rcpapplication.utils.Logger"; //$NON-NLS-1$
+	
+	/** The flags. */
+	public static final int STATUSLINE = 2;
+	public static final int MSGBOX = 4;
+	public static final int STATUSLINE_REMAIN = 8;
+	
+	static {
+		frameList.add(id);
+	}
+	
+	/**
+	 * Log a severe message using the default flag
+	 * 
+	 * @param message
+	 */
+	public static void severe(String message) {
+		severe(message, STANDARD);
+	}
+	
+	/**
+	 * Log a severe message
+	 * @param message
+	 * @param flag where to print the message
+	 */
+	public static void severe(String message, int flag) {
+		Log.severe(message, flag);
+		if ((flag & STATUSLINE) == STATUSLINE)
+			printStatusLineError(message);
+		if ((flag & MSGBOX) == MSGBOX)
+			printMsgBoxError(message);
+		if ((flag & STATUSLINE_REMAIN) == STATUSLINE_REMAIN)
+			printStatusLineError(message, true);
+	}
+
+	/**
+	 * Log a warning message using the default flag
+	 * 
+	 * @param message
+	 */
+	public static void warning(String message) {
+		warning(message, STANDARD);
+	}
+	
+	/**
+	 * Log a warning message
+	 * @param message
+	 * @param flag where to print the message
+	 */
+	public static void warning(String message, int flag) {
+		Log.warning(message, flag);	
+		if ((flag & STATUSLINE) == STATUSLINE)
+			printStatusLineWarning(message);
+		if ((flag & MSGBOX) == MSGBOX)
+			printMsgBoxWarning(message);
+		if ((flag & STATUSLINE_REMAIN) == STATUSLINE_REMAIN)
+			printStatusLineWarning(message, true);
+	}
+
+	/**
+	 * Log an info message using the default flag
+	 * 
+	 * @param message
+	 */
+	public static void info(String message) {
+		info(message, STANDARD);
+	}
+	
+	/**
+	 * Log an info message
+	 * @param message
+	 * @param flag where to print the message
+	 */
+	public static void info(String message, int flag) {
+		Log.info(message, flag);
+		if ((flag & STATUSLINE) == STATUSLINE)
+			printStatusLineInfo(message);
+		if ((flag & MSGBOX) == MSGBOX)
+			printMsgBoxInfo(message);
+		if ((flag & STATUSLINE_REMAIN) == STATUSLINE_REMAIN)
+			printStatusLineInfo(message, true);
+	}
+	
+	/**
+	 * Print an error message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineError(final String message) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.error(message);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+	
+	/**
+	 * Print a remaining error message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineError(final String message, boolean keep) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.error(message, true);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+	
+	/**
+	 * Print a warning message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineWarning(final String message) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.setMessage(message);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+	
+	/**
+	 * Print a remaining warning message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineWarning(final String message, boolean keep) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.setMessage(message, true);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+
+	/**
+	 * Print an info message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineInfo(final String message) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.setMessage(message);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+	
+	/**
+	 * Print a remaining info message in the StatusLine
+	 * 
+	 * @param message
+	 */
+	private static void printStatusLineInfo(final String message, boolean keep) {
+		Runnable r = new Runnable() {
+			@Override
+			public void run() {
+				StatusLine.setMessage(message, true);
+			}
+		};
+		Display.getDefault().syncExec(r);
+	}
+	
+	/**
+	 * Print an error message in a MessageBox
+	 * 
+	 * @param message
+	 */
+	private static void printMsgBoxError(String message) {
+		MessageBox.error(message);
+	}
+	
+	/**
+	 * Print a warning message in a MessageBox
+	 * 
+	 * @param message
+	 */
+	private static void printMsgBoxWarning(String message) {
+		MessageBox.warning(message);
+	}
+
+	/**
+	 * Print an info message in a MessageBox
+	 * 
+	 * @param message
+	 */
+	private static void printMsgBoxInfo(String message) {
+		MessageBox.info(message);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Logger.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/DownloadJobHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/DownloadJobHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/DownloadJobHandler.java	(revision 122)
@@ -0,0 +1,77 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Simplified RCP Job
+ * 
+ * @author mdecorde, nkredens.
+ */
+public class DownloadJobHandler extends JobHandler {
+
+	private File file;
+	private int contentLength;
+	private Boolean done;
+
+	public DownloadJobHandler(String title, File file, int contentLength, Boolean done) {
+		super(title);
+		this.file = file;
+		this.contentLength = contentLength;
+		this.done = done;
+	}
+	
+	@Override
+	protected IStatus run(final IProgressMonitor monitor) {
+		this.runInit(monitor);
+		//this.setCurrentMonitor(monitor);
+		monitor.beginTask(Messages.DownloadJobHandler_0, contentLength);
+		long size = file.length();
+		while (!done) {
+			try {
+				wait(1000);
+				long current_size = file.length();
+				monitor.worked((int) (current_size - size));
+				size = current_size;
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+				return Status.CANCEL_STATUS;
+			}
+		}
+
+		return Status.OK_STATUS;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/DownloadJobHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Commands.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Commands.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Commands.java	(revision 122)
@@ -0,0 +1,58 @@
+package org.txm.rcpapplication.utils;
+
+import java.util.HashMap;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.part.EditorPart;
+
+//import practicallymacro.commands.EclipseCommand;
+
+import org.txm.rcpapplication.Messages;
+
+public class Commands {
+	
+	protected static Commands cmd;
+	
+//	private HashMap<String, EclipseCommand> commands = new HashMap<String, EclipseCommand>();
+	
+	protected Commands()
+	{
+//		final ICommandService cs = (ICommandService) PlatformUI.getWorkbench().getAdapter(ICommandService.class);
+//		Command[] allCommands = cs.getDefinedCommands();
+//		for (Command c : allCommands)
+//		{
+//			try {
+//				commands.put(c.getName(), new EclipseCommand(c.getId()));
+//			} catch (NotDefinedException e) {
+//				// TODO Auto-generated catch block
+//				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+//			}
+//		}
+//		cmd = this;
+	}
+	
+	public static boolean execute(EditorPart editor, String cmdName)
+	{
+//		if (editor == null || cmdName == null)
+//			return false;
+//		
+//		if (cmd == null)
+//		{
+//			cmd = new Commands();
+//			if (cmd == null)
+//			{
+//				System.out.println(Messages.Commands_0);
+//				return false;
+//			}
+//		}
+//		
+//		if (cmd.commands.containsKey(cmdName))
+//			return cmd.commands.get(cmdName).execute(editor);
+//		
+//		return false;
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/Commands.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OpenURI.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OpenURI.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OpenURI.java	(revision 122)
@@ -0,0 +1,110 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OpenURI.
+ */
+public class OpenURI {
+
+	/**
+	 * Open.
+	 *
+	 * @param file the file
+	 * @return true, if successful
+	 */
+	public static boolean open(File file) {
+
+		try
+		{
+			if ( !java.awt.Desktop.isDesktopSupported() ) {
+				System.err.println( Messages.OpenURI_0 );
+				return false;
+			}
+
+			java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
+
+			if ( desktop.isSupported( java.awt.Desktop.Action.OPEN ) ) {
+
+				desktop.open( file );
+				return true;
+			}
+			else if ( desktop.isSupported( java.awt.Desktop.Action.EDIT ) )
+			{
+				desktop.edit(file);
+				return true;
+			}
+			else if (desktop.isSupported(java.awt.Desktop.Action.BROWSE))
+			{
+				desktop.browse(file.toURI());
+				return true;
+			}
+		}
+		catch(Exception e)
+		{
+			System.out.println(e.getLocalizedMessage());
+			StatusLine.error(NLS.bind(Messages.OpenURI_1, file));
+		}
+		return false;
+	}
+	
+	/**
+	 * Browse.
+	 *
+	 * @param file the file
+	 * @return true, if successful
+	 */
+	public static boolean browse(File file) {
+		if ( !java.awt.Desktop.isDesktopSupported() ) {
+			System.err.println( Messages.OpenURI_0 );
+			return false;
+		}
+		
+		java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
+		
+		if (desktop.isSupported(java.awt.Desktop.Action.BROWSE))
+		{
+			try {
+				desktop.browse(file.toURI());
+			} catch (IOException e) {
+				System.out.println(e.getLocalizedMessage());
+				return false;
+			}
+			return true;
+		}
+		return false;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/OpenURI.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/LanguageSwitchHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/LanguageSwitchHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/LanguageSwitchHandler.java	(revision 122)
@@ -0,0 +1,296 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.utils;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.service.datalocation.Location;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.rcpapplication.swt.dialog.ComboDialog;
+import org.txm.utils.logger.Log;
+import org.txm.utils.logger.MessageBox;
+// TODO: Auto-generated Javadoc
+/**
+ * Switches the language in RCP based products. Works only if the product is
+ * deployed to the local file system since the <product>.ini file is altered.
+ * 
+ * @see org.eclipse.core.commands.IHandler
+ * @see org.eclipse.core.commands.AbstractHandler
+ */
+public class LanguageSwitchHandler extends AbstractHandler {
+	/**
+	 * The constructor.
+	 */
+	public LanguageSwitchHandler() {
+	}
+
+	/**
+	 * the command has been executed, so extract extract the needed information
+	 * from the application context.
+	 *
+	 * @param event the event
+	 * @return the object
+	 * @throws ExecutionException the execution exception
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IPreferencesService service = Platform.getPreferencesService();
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		ArrayList<String> values = new ArrayList<String>();
+		values.add("fr"); //$NON-NLS-1$
+		values.add("en"); //$NON-NLS-1$
+		values.add("ru"); //$NON-NLS-1$
+		ComboDialog d = new ComboDialog(shell, Messages.LanguageSwitchHandler_3, values,
+				service.getString(Application.PLUGIN_ID,
+						LocalePreferencePage.UI_LOCALE, "fr", null)); //$NON-NLS-1$
+		if (d.open() == Window.OK) {
+			TxmPreferences.set(LocalePreferencePage.UI_LOCALE, d
+					.getSelectedValue());
+		} else
+			return null;
+
+		String locale = service.getString(Application.PLUGIN_ID,
+				LocalePreferencePage.UI_LOCALE, "fr", null); //$NON-NLS-1$
+		if (locale.length() == 0)
+			Log.warning(Messages.LanguageSwitchHandler_0);
+		// Does not work:
+		//System.getProperties().setProperty("eclipse.exitdata", "-nl " + locale);
+		//changeLocaleTXMIni(locale);
+		changeLocaleConfigIni(locale);
+		PlatformUI.getWorkbench().restart();
+
+		return null;
+	}
+
+	/**
+	 * Change locale of TXM.ini.
+	 *
+	 * @param locale the locale
+	 */
+	public static void changeLocaleTXMIni(String locale) {
+
+//		Location configArea = Platform.getInstallLocation();
+//		//MessageBox.warning(Platform.getInstanceLocation().getURL().toString());
+//		// String product = Platform.getProduct().getName();
+//		if (configArea == null) {
+//			return;
+//		}
+
+		URL location = null;
+		try {
+			String path = System.getProperty("osgi.instance.area"); //$NON-NLS-1$
+			location = new URL(path + "TXM.ini"); //$NON-NLS-1$
+		} catch (MalformedURLException e) {
+			System.err.println(NLS.bind(Messages.LanguageSwitchHandler_5, location));
+			return;
+		}
+		
+		String fileName = location.getFile();
+		File file = new File(fileName);
+		if (!file.exists()) {
+			MessageBox.error(NLS.bind(Messages.LanguageSwitchHandler_1, file.getAbsolutePath()));
+			return;
+		}
+		fileName += ".bak"; //$NON-NLS-1$
+		file.renameTo(new File(fileName));
+		
+		// update TXM.ini
+		System.out.println(Messages.LanguageSwitchHandler_7+location);
+		Log.severe(Messages.LanguageSwitchHandler_7+location);
+		try {
+
+			BufferedReader in = new BufferedReader(new FileReader(fileName));
+			BufferedWriter out = new BufferedWriter(new FileWriter(location.getFile()));
+			try {
+				boolean isNl = false;
+				boolean isNlWiritten = false;
+				String line = in.readLine();
+				while (line != null) {
+
+					// write nl before vmargs
+					if (line.equals("-vmargs") && !isNlWiritten) //$NON-NLS-1$
+					{
+						out.write("-nl"); //$NON-NLS-1$
+						out.newLine();
+						out.write(locale);
+						out.newLine();
+						isNl = true;
+					}
+
+					// write line if -nl was not found in previous line
+					// else locale
+					if (!isNl) {
+						out.write(line);
+					} else {
+						out.write(locale);
+						isNl = false;
+						isNlWiritten = true;
+					}
+					out.newLine();
+
+					// check nl line
+					if (line.equals("-nl")) { //$NON-NLS-1$
+						isNl = true;
+					}
+
+					line = in.readLine();
+				}
+				// create nl if it was not presents
+				if (!isNlWiritten) {
+					out.write("-nl"); //$NON-NLS-1$
+					out.newLine();
+					out.write(locale);
+					out.newLine();
+				}
+				out.flush();
+			} finally {
+				if (in != null) {
+					try {
+						in.close();
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				if (out != null) {
+					try {
+						out.close();
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+			}
+		} catch (FileNotFoundException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (IOException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+	
+	/**
+	 * Change locale of config.ini.
+	 *
+	 * @param locale the locale
+	 */
+	public static void changeLocaleConfigIni(String locale) {
+
+		Location configArea = Platform.getConfigurationLocation();
+		
+		if (configArea == null) {
+			return;
+		}
+
+		String fileName = Platform.getConfigurationLocation().getURL().getFile() + 
+				System.getProperty("file.separator") + "config.ini"; //$NON-NLS-1$ //$NON-NLS-2$
+
+		File file = new File(fileName);
+		if (!file.exists()) {
+			MessageBox.error(NLS.bind(Messages.LanguageSwitchHandler_1, file.getAbsolutePath()));
+			return;
+		}
+		String fileNameBackup = fileName + ".bak"; //$NON-NLS-1$
+		file.renameTo(new File(fileNameBackup));
+		
+		// update config.ini
+		System.out.println("config.ini"+fileName); //$NON-NLS-1$
+		Log.severe("config.ini"+fileName); //$NON-NLS-1$
+		try {
+
+			BufferedReader in = new BufferedReader(new FileReader(fileNameBackup));
+			BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
+			try {
+				boolean isNlWritten = false;
+				String line = in.readLine();
+				while (line != null) {
+
+					if (!isNlWritten) {
+						if (line.contains("osgi.nl=")) { //$NON-NLS-1$
+							out.write("osgi.nl=" + locale); //$NON-NLS-1$
+							isNlWritten = true;
+						} else
+							out.write(line);
+					} else
+						out.write(line);
+					
+					out.newLine();
+					line = in.readLine();
+				}
+				// create osgi.nl if it was not presents
+				if (!isNlWritten) {
+					out.write("osgi.nl=" + locale); //$NON-NLS-1$
+					out.newLine();
+				}
+				out.flush();
+			} finally {
+				if (in != null) {
+					try {
+						in.close();
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				if (out != null) {
+					try {
+						out.close();
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+			}
+		} catch (FileNotFoundException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (IOException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/LanguageSwitchHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/FitFontSize.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/FitFontSize.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/FitFontSize.java	(revision 122)
@@ -0,0 +1,14 @@
+package org.txm.rcpapplication.utils;
+
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.widgets.Composite;
+
+public class FitFontSize {
+	public static int calculate(Composite shell, String txt) {
+		
+		GC gc = new GC(shell);
+
+		//return Math.max(shell.getSize().x, gc.stringExtent(txt).x);
+		return gc.stringExtent(txt).x;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/utils/FitFontSize.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/DeleteInCorporaView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/DeleteInCorporaView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/DeleteInCorporaView.java	(revision 122)
@@ -0,0 +1,116 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.ISelectionListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+// TODO: Auto-generated Javadoc
+/**
+ * This class manage the deletion of nodes in the tree of the corpora view.
+ *
+ * @author jmague
+ */
+public class DeleteInCorporaView extends Action implements ISelectionListener,
+		IWorkbenchAction {
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.actions.DeleteInCorporaView"; //$NON-NLS-1$
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/**
+	 * Check classof selection.
+	 *
+	 * @return true, if successful
+	 */
+	private boolean checkClassofSelection() {
+		boolean b = (selection.size() == 1 && (selection.getFirstElement() instanceof Subcorpus || selection
+				.getFirstElement() instanceof Partition));
+		return b;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
+	 */
+	@Override
+	public void selectionChanged(IWorkbenchPart part, ISelection incoming) {
+		// Selection containing elements
+		if (incoming instanceof IStructuredSelection) {
+			selection = (IStructuredSelection) incoming;
+			setEnabled(checkClassofSelection());
+		} else {
+			// Other selections, for example containing text or of other kinds.
+			setEnabled(false);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		if (selection.getFirstElement() instanceof Subcorpus) {
+			Subcorpus subcorpus = (Subcorpus) selection.getFirstElement();
+			try {
+				subcorpus.getMotherSubcorpus().dropSubcorpus(subcorpus);
+			} catch (CqiClientException e) {
+				System.err.println(NLS.bind(Messages.DeleteInCorporaView_1, e));
+			}
+		}
+		if (selection.getFirstElement() instanceof Partition) {
+			Partition partition = (Partition) selection.getFirstElement();
+			try {
+				partition.getCorpus().dropPartition(partition);
+			} catch (CqiClientException e) {
+				System.err.println(NLS.bind(
+						Messages.DeleteInCorporaView_2, e));
+			}
+		}
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/DeleteInCorporaView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ImportDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ImportDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ImportDialog.java	(revision 122)
@@ -0,0 +1,512 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.io.File;
+import java.util.Locale;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.swt.dialog.TXMMessageBox;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow the user to choose the main language, the main encoding of a an
+ * imported corpus @ author mdecorde.
+ */
+public class ImportDialog extends Dialog {
+	
+	static final String ID = "org.txm.rcpapplication.actions.ImportDialog"; //$NON-NLS-1$
+	/** The self. */
+	ImportDialog self;
+	
+	/** The parent. */
+	Composite parent;
+	
+	/** The main panel. */
+	Composite mainPanel;
+
+	/** The btn default lang. */
+	Button btnDefaultLang;
+	
+	/** The btn guess lang. */
+	Button btnGuessLang;
+	
+	/** The btn guess2 lang. */
+	Button btnGuess2Lang;
+	
+	/** The btn select lang. */
+	Button btnSelectLang;
+	
+	/** The langcombo. */
+	Combo langcombo;
+	//Combo modelCombo;
+	/** The btn default encoding. */
+	Button btnDefaultEncoding;
+	
+	/** The btn guess encoding. */
+	Button btnGuessEncoding;
+	
+	/** The btn guess2 encoding. */
+	Button btnGuess2Encoding;
+	
+	/** The btn select encoding. */
+	Button btnSelectEncoding;
+	
+	/** The encoding combo. */
+	Combo encodingCombo;
+	
+	/** The dir value. */
+	Text dirValue;
+
+	/** The lastopenedbase. */
+	static File lastopenedbase;
+	
+	/** The directory. */
+	File directory;
+	
+	/** The paramtokenizer. */
+	File paramtokenizer;
+	
+	/** The lang. */
+	String lang;
+	
+	/** The encoding. */
+	String encoding;
+	
+	/** The model. */
+	String model;
+	
+	/** The loadername. */
+	String loadername =""; //$NON-NLS-1$
+	
+	/** The expand_state. */
+	boolean expand_state = false;
+
+	/**
+	 * Instantiates a new import dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param loadername the loadername
+	 */
+	public ImportDialog(Shell parentShell, String loadername) {
+		super(parentShell);
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		this.loadername = loadername;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(NLS.bind(Messages.ImportDialog_0, loadername)); 
+		newShell.setMinimumSize(300, 200);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(final Composite p) {
+		try {
+			this.self = this;
+			this.parent = p;
+			
+			
+			// System.out.println(parent.getLayout());
+			mainPanel = new Composite(parent, SWT.NONE);
+			mainPanel.setLayout(new GridLayout(3, false));
+			GridData gridData = new GridData(GridData.FILL, GridData.FILL,
+					true, false);
+			mainPanel.setLayoutData(gridData);
+
+			// directory
+			Label dirLabel = new Label(mainPanel, SWT.NONE);
+			dirLabel.setText(Messages.ImportDialog_1);
+			dirLabel.setAlignment(SWT.CENTER);
+			dirLabel.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					false, false));
+
+			dirValue = new Text(mainPanel, SWT.SINGLE | SWT.BORDER);
+			dirValue.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false));
+			if (lastopenedbase != null)
+				dirValue.setText(lastopenedbase.getPath());
+
+			Button dirButton = new Button(mainPanel, SWT.PUSH);
+			dirButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					false, false));
+			dirButton.setText("..."); //$NON-NLS-1$
+			dirButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					DirectoryDialog dialog = new DirectoryDialog(parent
+							.getShell(), SWT.OPEN);
+					if (lastopenedbase != null) {
+						dialog.setFilterPath(dirValue.getText());
+					} else
+						dialog.setFilterPath(new File(TxmPreferences
+										.get(Toolbox.INSTALL_DIR), "corpora").getAbsolutePath()); //$NON-NLS-1$
+					if (dialog.open() != null) {
+						String path = dialog.getFilterPath();
+						
+						File srcdir = new File(path);
+						if (new File(srcdir, "html").exists() && new File(srcdir, "data").exists() && new File(srcdir, "registry").exists()) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 
+						{	
+							TXMMessageBox.show(parent
+									.getShell(), Messages.AddBase_19, Messages.ImportDialog_13, SWT.ICON_WARNING);
+						}
+						
+						directory = new File(path);
+						lastopenedbase = new File(path);
+						dirValue.setText(path);
+	
+					}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+			// optionnel
+			final ExpandBar bar = new ExpandBar(mainPanel, SWT.V_SCROLL);
+			bar.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+					false, 3, 1));
+			
+
+			
+			Composite optionsPanel = new Composite(bar, SWT.NONE);
+			optionsPanel.setLayout(new GridLayout(3, false));
+
+			/*
+			 * Label oplabel = new Label(mainPanel, SWT.NONE);
+			 * oplabel.setText(Messages.ImportDialog_3);
+			 * 
+			 * Font f = oplabel.getFont(); FontData defaultFont =
+			 * f.getFontData()[0]; defaultFont.setStyle(SWT.BOLD); Font newf =
+			 * new Font(oplabel.getDisplay(),defaultFont);
+			 * oplabel.setFont(newf);
+			 * 
+			 * oplabel.setAlignment(SWT.CENTER); oplabel.setLayoutData(new
+			 * GridData(GridData.FILL, GridData.FILL, true, false,3,1));
+			 */
+
+			// encoding
+			Group encodingGroup = new Group(optionsPanel, SWT.SHADOW_ETCHED_IN);
+			encodingGroup.setText(Messages.ImportDialog_4);
+			encodingGroup.setLayout(new GridLayout(2, false));
+			encodingGroup.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false, 3, 1));
+
+			btnDefaultEncoding = new Button(encodingGroup, SWT.RADIO);
+			btnDefaultEncoding.setText(Messages.ImportDialog_14
+					+ System.getProperty("file.encoding")); //$NON-NLS-1$
+			btnDefaultEncoding.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false, 2, 1));
+			btnDefaultEncoding.setSelection(true);
+
+			btnGuessEncoding = new Button(encodingGroup, SWT.RADIO);
+			btnGuessEncoding.setText(Messages.ImportDialog_16);
+
+			btnGuess2Encoding = new Button(encodingGroup, SWT.PUSH);
+			btnGuess2Encoding.setText("??"); //$NON-NLS-1$
+
+			btnSelectEncoding = new Button(encodingGroup, SWT.RADIO);
+			btnSelectEncoding.setText(Messages.ImportDialog_22);
+
+			encodingCombo = new Combo(encodingGroup, SWT.BORDER);
+			encodingCombo.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false, 1, 1));
+			
+			//fill combo and select default encoding
+			int index = 0;
+			int i = 0;
+			for (String encoding : java.nio.charset.Charset.availableCharsets().keySet())
+			{
+				encodingCombo.add(encoding);
+				if (encoding.equals(System.getProperty("file.encoding"))) //$NON-NLS-1$
+					index = i;
+				i++;
+			}
+			encodingCombo.select(index);
+			
+			encodingCombo.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					btnSelectEncoding.setSelection(true);
+					btnGuessEncoding.setSelection(false);
+					btnDefaultEncoding.setSelection(false);
+				}
+				
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) { }
+			});
+
+			// lang
+			Group langGroup = new Group(optionsPanel, SWT.SHADOW_ETCHED_IN);
+			langGroup.setText(Messages.ImportDialog_5);
+			langGroup.setLayout(new GridLayout(2, false));
+			langGroup.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false, 3, 1));
+
+			btnDefaultLang = new Button(langGroup, SWT.RADIO);
+			btnDefaultLang.setText(Messages.ImportDialog_19
+					+ Locale.getDefault().getLanguage());
+			btnDefaultLang.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false, 2, 1));
+			btnDefaultLang.setSelection(true);
+
+			btnGuessLang = new Button(langGroup, SWT.RADIO);
+			btnGuessLang.setText(Messages.ImportDialog_16); 
+
+			btnGuess2Lang = new Button(langGroup, SWT.PUSH);
+			btnGuess2Lang.setText("??"); //$NON-NLS-1$
+
+			btnSelectLang = new Button(langGroup, SWT.RADIO);
+			btnSelectLang.setText(Messages.ImportDialog_22);
+
+			langcombo = new Combo(langGroup, SWT.BORDER);
+			langcombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false, 1, 1));
+			
+			//fill combo and select default language
+			index = 0;
+			i = 0;
+			for (String lang : Locale.getISOLanguages())
+			{
+				langcombo.add(lang);
+				if (lang.equals(Locale.getDefault().getLanguage()))
+					index = i;
+				i++;
+			}
+			langcombo.select(index);
+			
+			//if widget selected change the radio buttons value
+			langcombo.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					btnSelectLang.setSelection(true);
+					btnGuessLang.setSelection(false);
+					btnDefaultLang.setSelection(false);
+				}
+				
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) { }
+			});
+
+			// tokenizer options
+			Group selectTokenizerPanel = new Group(optionsPanel,
+					SWT.SHADOW_ETCHED_IN);
+			selectTokenizerPanel.setLayout(new GridLayout(4, false));
+			selectTokenizerPanel.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false, 3, 1));
+			selectTokenizerPanel.setText(Messages.ImportDialog_6);
+
+			final Text tokenizerValue = new Text(selectTokenizerPanel,
+					SWT.SINGLE | SWT.BORDER);
+			tokenizerValue.setLayoutData(new GridData(GridData.FILL,
+					GridData.FILL, true, false));
+
+			Button tokenizerButton = new Button(selectTokenizerPanel, SWT.PUSH);
+			// tokenizerButton.setLayoutData(new GridData(GridData.FILL,
+			// GridData.FILL, false, false));
+			tokenizerButton.setText("..."); //$NON-NLS-1$
+			tokenizerButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
+					if (LastOpened.getFolder(ID) != null)
+						lastopenedbase = new File(LastOpened.getFolder(ID));
+					if (lastopenedbase != null) {
+						dialog.setFilterPath(dirValue.getText());
+					} else
+						dialog.setFilterPath(new File(TxmPreferences
+										.get(Toolbox.INSTALL_DIR), "corpora").getAbsolutePath()); //$NON-NLS-1$
+					if (dialog.open() != null) {
+						paramtokenizer = new File(dialog.getFilterPath(),
+								dialog.getFileName());
+						tokenizerValue.setText(paramtokenizer.getAbsolutePath());
+						LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+					}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+			tokenizerButton = new Button(selectTokenizerPanel, SWT.PUSH);
+			// tokenizerButton.setLayoutData(new GridData(GridData.FILL,
+			// GridData.FILL, false, false));
+			tokenizerButton.setText(Messages.PropertiesSelector_2);
+			tokenizerButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (paramtokenizer != null)
+						if (paramtokenizer.exists())
+							if (paramtokenizer.isFile()) {
+								EditFile.openfile(paramtokenizer
+										.getAbsolutePath());
+							}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+			final ExpandItem item0 = new ExpandItem(bar, SWT.NONE, 0);
+			item0.setText(Messages.ImportDialog_23);
+			item0.setHeight(optionsPanel.computeSize(SWT.DEFAULT,SWT.DEFAULT).y);
+			item0.setControl(optionsPanel);
+						
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return p;
+
+	}
+
+	/**
+	 * Gets the directory.
+	 *
+	 * @return the directory
+	 */
+	public File getDirectory() {
+		return directory;
+	}
+
+	/**
+	 * Gets the language.
+	 *
+	 * @return the language
+	 */
+	public String getLanguage() {
+		return lang;
+	}
+
+	/**
+	 * Gets the encoding.
+	 *
+	 * @return the encoding
+	 */
+	public String getEncoding() {
+		return encoding;
+	}
+
+	/**
+	 * Gets the model.
+	 *
+	 * @return the model
+	 */
+	public String getModel() {
+		return model;
+	}
+
+	/**
+	 * Gets the tokenizer param file.
+	 *
+	 * @return the tokenizer param file
+	 */
+	public File getTokenizerParamFile() {
+		return paramtokenizer;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+
+		directory = new File(dirValue.getText());
+
+		//LANGUAGE
+		if (btnDefaultLang.getSelection())// default lang
+			lang = Locale.getDefault().getLanguage();
+		else if (btnGuessLang.getSelection())
+		{
+			if (!btnGuess2Lang.getText().equals("??")) //$NON-NLS-1$
+				lang = btnGuess2Lang.getText();
+			else
+				lang = Locale.getDefault().getLanguage();
+		}
+		else
+			lang = langcombo.getText();
+		
+		//ENCODING
+		
+		if (btnDefaultEncoding.getSelection())// default lang
+			encoding = System.getProperty("file.encoding"); //$NON-NLS-1$
+		else if (btnGuessEncoding.getSelection())
+		{	
+			if (!btnGuess2Encoding.getText().equals("??")) //$NON-NLS-1$
+				encoding = btnGuess2Encoding.getText();
+			else
+				encoding = System.getProperty("file.encoding"); //$NON-NLS-1$
+		}
+		else
+			encoding = encodingCombo.getText();
+		
+		System.out.println("Encoding : "+encoding); //$NON-NLS-1$
+		
+		if (lang.length() == 0)
+			lang = Locale.getDefault().getLanguage();
+
+		if (encoding.length() == 0)
+			encoding = System.getProperty("file.encoding"); //$NON-NLS-1$
+
+		model = lang;
+
+		super.okPressed();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ImportDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesForSubcorpusDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesForSubcorpusDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesForSubcorpusDialog.java	(revision 122)
@@ -0,0 +1,148 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+// TODO: Auto-generated Javadoc
+/**
+ * 
+ * TODO : this dialog box should be factorized between function (getProperty,
+ * getPropertyWithModality, etc.)
+ * 
+ * @author sloiseau
+ * 
+ */
+public class ComputeSpecificitiesForSubcorpusDialog extends Dialog {
+
+	/** The property. */
+	private Property property;
+	
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The ana prop combo. */
+	private Combo anaPropCombo;
+
+	/**
+	 * Instantiates a new compute specificities for subcorpus dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param subcorpus the subcorpus
+	 */
+	public ComputeSpecificitiesForSubcorpusDialog(Shell parentShell,
+			Subcorpus subcorpus) {
+		super(parentShell);
+		try {
+			this.properties = new ArrayList<Property>(subcorpus.getOrderedProperties());
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.Compute_Specificities);
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		Label anaPropLabel = new Label(composite, SWT.NONE);
+		anaPropLabel.setText(Messages.CreatePartitionDialog_4);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(composite, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		int iword= 0;
+		int i = 0;
+		for (Property p : properties) {
+			anaPropCombo.add(p.getName());
+			if (p.getName().equals("word")) //$NON-NLS-1$
+				iword=i;
+			i++;
+		}
+		anaPropCombo.select(iword);
+		return composite;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		int propIndex = anaPropCombo.getSelectionIndex();
+		if (propIndex == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.Structure_field_not_empty);
+			return;
+		}
+
+		property = properties.get(propIndex);
+		super.okPressed();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesForSubcorpusDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreatePartitionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreatePartitionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreatePartitionDialog.java	(revision 122)
@@ -0,0 +1,659 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.widget.PartitionComposer;
+import org.txm.rcpapplication.swt.widget.QueryWidget;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow the user to choose between 3 mode to create a Partition Simple : choose
+ * a structural unit and a property Assisted : choose a structural unit and a
+ * property, then dispatch them into parts Advanced : user define the queries to
+ * build the parts 
+ * 
+ * @author mdecorde.
+ */
+public class CreatePartitionDialog extends Dialog {
+
+	// For the "simple" tab
+	/** The selected structural unit. */
+	private StructuralUnit selectedStructuralUnit;
+
+	/** The selected structural unit property. */
+	private StructuralUnitProperty selectedStructuralUnitProperty;
+
+	/** The corpus. */
+	private Corpus corpus;
+
+	// for the "advanced" tab
+	/** The queries. */
+	private List<QueryWidget> queries = new ArrayList<QueryWidget>();
+
+	/** The part names. */
+	private List<Text> partNames = new ArrayList<Text>();
+
+	/** The queries string. */
+	List<String> queriesString = new ArrayList<String>();
+
+	/** The is simple selected. */
+	private boolean isSimpleSelected = true;
+
+	/** The is assisted selected. */
+	private boolean isAssistedSelected = false;
+
+	/** The is advanced selected. */
+	private boolean isAdvancedSelected = false;
+
+	/** The name. */
+	private String name;
+
+	/** The name text. */
+	private Text nameText;
+
+	/** The composite for assisted. */
+	private PartitionComposer compositeForAssisted;
+
+	/** The structural units combo. */
+	private Combo structuralUnitsCombo;
+
+	/** The structural units final. */
+	private List<StructuralUnit> structuralUnitsFinal;
+
+	/** The property combo. */
+	private Combo propertyCombo;
+
+	/** The partition. */
+	private Partition partition;
+
+	/** The composite for advanced. */
+	private Composite compositeForAdvanced;
+
+	/** The scroll composite. */
+	private ScrolledComposite scrollComposite;
+
+	/**
+	 * Instantiates a new creates the partition dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public CreatePartitionDialog(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		this.corpus = corpus;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.CreatePartitionDialog_0);
+		newShell.setMinimumSize(400, 400);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite c = new Composite(parent, SWT.NONE);
+		c.setLayout(new GridLayout(2, false));
+		GridData maindatalayout = new GridData(GridData.FILL, GridData.FILL, true, false);
+		maindatalayout.minimumHeight = 400;
+		maindatalayout.minimumWidth = 600;
+		c.setLayoutData(maindatalayout);
+		Label nameLabel = new Label(c, SWT.NONE);
+		Font f = nameLabel.getFont();
+		FontData defaultFont = f.getFontData()[0];
+		defaultFont.setStyle(SWT.BOLD);
+		Font newf = new Font(nameLabel.getDisplay(), defaultFont);
+		nameLabel.setText(Messages.CreatePartitionDialog_6);
+		nameLabel.setLayoutData(new GridData(GridData.FILL, GridData.CENTER,
+				false, false));
+		nameLabel.setFont(newf);
+
+		nameText = new Text(c, SWT.BORDER);
+		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
+		data.horizontalSpan = 1;
+		nameText.setLayoutData(data);
+
+		final TabFolder tabFolder = new TabFolder(parent, SWT.NONE);
+		tabFolder.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, true));
+		// First tab
+		// --------------------------------------------------------
+
+		TabItem simpleTab = new TabItem(tabFolder, SWT.NONE);
+
+		simpleTab.setText(Messages.CreatePartitionDialog_1);
+
+		Composite composite = new Composite(tabFolder, SWT.NONE);
+		simpleTab.setControl(composite);
+
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		// StructuralUnit
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		Label structureLabel = new Label(composite, SWT.NONE);
+		structureLabel.setText(Messages.CreatePartitionDialog_2);
+		structureLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+
+		structuralUnitsCombo = new Combo(composite, SWT.READ_ONLY);
+		structuralUnitsCombo.setLayoutData(new GridData(GridData.FILL, GridData.CENTER,
+				true, false));
+
+		List<StructuralUnit> structuralUnits = null;
+		try {
+			structuralUnits = corpus.getOrderedStructuralUnits();
+		} catch (CqiClientException e) {
+			Log.severe(Messages.ObjectExplorer_9
+					+ Log.toString(e));
+			return null;
+		}
+		structuralUnitsFinal = new ArrayList<StructuralUnit>();
+		for (StructuralUnit unit : structuralUnits) {
+			if (unit.getName().equals("txmcorpus")) continue; // ignore txmcorpus structure
+			
+			if (unit.getOrderedProperties() != null
+					&& unit.getOrderedProperties().size() != 0) {
+				/*
+				 * if ((unit.getName().equals("text") &&
+				 * unit.getProperties().size() > 3)) //$NON-NLS-1$ {
+				 * structuralUnitsCombo.add(unit.getName());
+				 * structuralUnitsFinal.add(unit); } else
+				 * if (!unit.getName().equals("text")) //$NON-NLS-1$ {
+				 */
+				structuralUnitsCombo.add(unit.getName());
+				structuralUnitsFinal.add(unit);
+				// }
+			}
+		}
+
+		if (structuralUnitsCombo.getItemCount() == 0) {
+			this.getButton(IDialogConstants.OK_ID).setEnabled(false);
+		} else {
+			structuralUnitsCombo.select(0);
+			String[] items = structuralUnitsCombo.getItems();
+			for (int i = 0 ; i < items.length ; i++) {
+				if (items[i].equals("text")) //$NON-NLS-1$
+				{
+					structuralUnitsCombo.select(i);
+					break;
+				}
+			}
+			selectedStructuralUnit = structuralUnitsFinal.get(0);
+		}
+		// combo.setSize (200, 200);
+
+		// StructuralUnitProperty
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		Label propertyLabel = new Label(composite, SWT.NONE);
+		propertyLabel.setText(Messages.CreatePartitionDialog_4);
+		propertyLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		propertyCombo = new Combo(composite, SWT.READ_ONLY);
+		propertyCombo.setLayoutData(new GridData(GridData.FILL, GridData.CENTER,
+				true, false));
+		// combo.setSize (200, 200);
+		structuralUnitsCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				reloadProperties();
+			}
+		});
+
+		for (StructuralUnitProperty property : structuralUnitsFinal.get(0).getOrderedProperties()) {
+			if (!(structuralUnitsFinal.get(0).getName().equals("text") &&  //$NON-NLS-1$
+					(property.getName().equals("project") || property.getName().equals("base")))) //$NON-NLS-1$ //$NON-NLS-2$
+				propertyCombo.add(property.getName());
+		}
+		propertyCombo.select(0);
+		selectedStructuralUnitProperty = selectedStructuralUnit.getOrderedProperties()
+		.get(0);
+
+		propertyCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				selectedStructuralUnitProperty = selectedStructuralUnit
+				.getOrderedProperties().get(propertyCombo.getSelectionIndex());
+			}
+		});
+
+		reloadProperties();
+
+		// Second Tab : assisted mode
+		TabItem assistedTab = new TabItem(tabFolder, SWT.NONE);
+
+		assistedTab.setText(Messages.CreatePartitionDialog_3);
+
+		compositeForAssisted = new PartitionComposer(tabFolder, SWT.NONE,
+				this.corpus);
+		assistedTab.setControl(compositeForAssisted);
+
+		// Third tab: avanced mode
+		// --------------------------------------------------------
+
+		TabItem advancedTab = new TabItem(tabFolder, SWT.NONE);
+		advancedTab.setText(Messages.CreatePartitionDialog_5);
+
+		Composite advanceContainer = new Composite(tabFolder, SWT.NONE);
+		GridLayout advanceLayout = new GridLayout(1, true);
+		advanceContainer.setLayout(advanceLayout);
+		advancedTab.setControl(advanceContainer);
+
+		scrollComposite = new ScrolledComposite(advanceContainer, SWT.V_SCROLL
+				| SWT.BORDER);
+		scrollComposite.setLayoutData(new GridData(GridData.FILL,
+				GridData.FILL, true, true));
+
+		Button plusButton = new Button(advanceContainer, SWT.NONE);
+		plusButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER,
+				GridData.FILL, false, false));
+		plusButton.setText("+"); //$NON-NLS-1$
+		plusButton.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				addQueryField(compositeForAdvanced);
+			}
+		});
+
+		compositeForAdvanced = new Composite(scrollComposite, SWT.NONE);
+		GridLayout layoutForAdvanced = new GridLayout(3, false);
+		compositeForAdvanced.setLayout(layoutForAdvanced);
+
+		scrollComposite.setContent(compositeForAdvanced);
+		scrollComposite.setExpandVertical(true);
+		scrollComposite.setExpandHorizontal(true);
+		scrollComposite.addControlListener(new ControlAdapter() {
+			@Override
+			public void controlResized(ControlEvent e) {
+				Rectangle r = scrollComposite.getClientArea();
+				scrollComposite.setMinSize(compositeForAdvanced.computeSize(
+						r.width, SWT.DEFAULT));
+			}
+		});
+
+		createAdvancedQueryField();
+
+		// check the state of the OK button according to the change of tab
+		// --------------------------------
+
+		tabFolder.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				// record the tab currently in use
+				if (tabFolder.getSelectionIndex() == 0) {
+					isSimpleSelected = true;
+					isAssistedSelected = false;
+					isAdvancedSelected = false;
+				} else if (tabFolder.getSelectionIndex() == 1) {
+					isSimpleSelected = false;
+					isAssistedSelected = true;
+					isAdvancedSelected = false;
+				} else {
+					isSimpleSelected = false;
+					isAssistedSelected = false;
+					isAdvancedSelected = true;
+				}
+			}
+		});
+
+		return tabFolder;
+	}
+
+	/**
+	 * Reload properties.
+	 */
+	private void reloadProperties() {
+		List<StructuralUnitProperty> properties = null;
+		selectedStructuralUnit = structuralUnitsFinal.get(structuralUnitsCombo
+				.getSelectionIndex());
+
+		properties = selectedStructuralUnit.getOrderedProperties();
+		propertyCombo.removeAll();
+		for (StructuralUnitProperty property : properties) {
+			/*
+			 * if (!(selectedStructuralUnit.getName().equals("text") &&
+			 * //$NON-NLS-1$ (property.getName().equals("id") || //$NON-NLS-1$
+			 * property.getName().equals("base") || //$NON-NLS-1$
+			 * property.getName().equals("project")))) //$NON-NLS-1$
+			 */
+			if (selectedStructuralUnit.getName().equals("text") && 
+					(property.getName().equals("project") || property.getName().equals("base"))) continue; // ignore technical properties
+			propertyCombo.add(property.getName());
+		}
+		if (propertyCombo.getItemCount() > 0) {
+			propertyCombo.select(0);
+			String[] items = propertyCombo.getItems();
+			for(int i = 0 ; i < items.length ; i++)
+				if (items[i].equals("id")) //$NON-NLS-1$
+				{
+					propertyCombo.select(i);
+					break;
+				}
+			selectedStructuralUnitProperty = selectedStructuralUnit
+			.getOrderedProperties().get(0);
+			// this.getButton(IDialogConstants.OK_ID).setEnabled(true);
+		}
+	}
+
+	/**
+	 * Return true if no query is currently given in the "advanced" tab (ie if
+	 * all Text field opened are empty).
+	 *
+	 * @return true, if successful
+	 */
+	private boolean noquery() {
+		for (QueryWidget query : queries) {
+			if (query.getText().length() == 0)
+				return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Creates the advanced query field.
+	 *
+	 * @param composite the composite
+	 */
+	private void createAdvancedQueryField() {
+		addQueryField(compositeForAdvanced);
+		Rectangle r = scrollComposite.getClientArea();
+		scrollComposite.setMinSize(compositeForAdvanced.computeSize(r.width,
+				SWT.DEFAULT));
+	}
+
+	/**
+	 * Adds the query field.
+	 *
+	 * @param composite the composite
+	 */
+	private void addQueryField(final Composite composite) {
+		final Text advancedPartLabel = new Text(composite, SWT.NONE);
+		advancedPartLabel.setText(Messages.CreatePartitionDialog_7
+				+ (partNames.size() + 1)); 
+		advancedPartLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+		partNames.add(advancedPartLabel);
+
+		final QueryWidget queryText;
+		queryText = new QueryWidget(composite, SWT.DROP_DOWN);
+		queryText.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		// gridData.widthHint = convertHeightInCharsToPixels(20);
+		queryText.setLayoutData(gridData);
+		queries.add(queryText);
+
+		final Button minusButton = new Button(composite, SWT.NONE);
+		minusButton.setText("-"); //$NON-NLS-1$
+		// minusButton.setData(queryText);
+		minusButton.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				queries.remove(queryText);
+				partNames.remove(advancedPartLabel);
+				advancedPartLabel.dispose();
+				queryText.dispose();
+				minusButton.dispose();
+			}
+		});
+		Rectangle r = scrollComposite.getClientArea();
+		scrollComposite.setMinSize(compositeForAdvanced.computeSize(r.width,
+				SWT.DEFAULT));
+		scrollComposite.update();
+		scrollComposite.layout();
+		composite.update();
+		composite.layout();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (nameText.getText().length() == 0) {
+			if(isAdvancedSelected())
+			{
+				String name = "partition"+(this.corpus.getPartitions().size()+1); //$NON-NLS-1$
+				nameText.setText(name);
+				System.out.println(Messages.CreatePartitionDialog_9);
+			}
+			else if (isAssistedSelected)
+			{
+				String name = this.corpus.getName()+"_"+compositeForAssisted.getProperty().getFullName(); //$NON-NLS-1$
+				nameText.setText(name);
+				System.out.println(Messages.CreatePartitionDialog_9);
+			}
+			//return;
+		}
+
+		if (isAdvancedSelected() && noquery()) {
+			MessageDialog.openError(getShell(),
+					Messages.CreateSubcorpusDialog_13,
+					Messages.CreatePartitionDialog_16);
+			return;
+		}
+
+		/*if (isAssistedSelected) {
+			if (compositeForAssisted.hasUnassigned()) {
+				System.out.println(Messages.CreatePartitionDialog_11);
+				return;
+			}
+		}*/
+
+		for (QueryWidget query : queries) {
+			queriesString.add(query.getQueryString());
+			query.memorize();
+		}
+		name = nameText.getText();
+		partition = _getPartition();
+		super.okPressed();
+	}
+
+	/**
+	 * Tell if the user is using the "advanced" tab.
+	 *
+	 * @return true, if is advanced selected
+	 */
+	public boolean isAdvancedSelected() {
+		return isAdvancedSelected;
+	}
+
+	/**
+	 * Gets the structural unit.
+	 *
+	 * @return the structural unit
+	 */
+	public StructuralUnit getStructuralUnit() {
+		if (isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return selectedStructuralUnit;
+	}
+
+	/**
+	 * Gets the structural unit property.
+	 *
+	 * @return the structural unit property
+	 */
+	public StructuralUnitProperty getStructuralUnitProperty() {
+		if (isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return selectedStructuralUnitProperty;
+	}
+
+	/**
+	 * Gets the queries.
+	 *
+	 * @return the queries
+	 */
+	public List<String> getQueries() {
+		if (!isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return queriesString;
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 */
+	public String getName() {
+		// if (!isAdvancedSelected()) throw new
+		// IllegalStateException(Messages.CreatePartitionDialog_20);
+		return name;
+	}
+
+	/**
+	 * _get partition.
+	 *
+	 * @return the partition
+	 */
+	public Partition _getPartition() {
+		Partition p = null;
+		if (isSimpleSelected) {
+			StructuralUnit structuralUnit = this.structuralUnitsFinal.get(this.structuralUnitsCombo.getSelectionIndex());
+			StructuralUnitProperty property = structuralUnit.getProperty(this.propertyCombo.getText());
+			try {
+				p = corpus.createPartition(structuralUnit, property);
+			} catch (CqiClientException e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				return null;
+			}
+		} else if (isAssistedSelected) {
+			p = this.compositeForAssisted.getPartition();
+		} else if (isAdvancedSelected) {
+			try {
+				p = corpus.createPartition(getName(), getQueries(), getAdvancePartNames());
+			} catch (CqiClientException e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				return null;
+			}
+		}
+
+		if (p == null) {
+			System.out.println(Messages.CreatePartitionDialog_8);
+			return null;
+		}
+		
+		if (p.getParts().size() == 0) {
+			System.out.println(Messages.CreatePartitionDialog_10);
+			return null;
+		}
+		
+		if (this.getName() != null && !this.getName().trim().equals("")) //$NON-NLS-1$
+			p.setName(this.getName().trim());
+
+		return p;
+	}
+
+	/**
+	 * Gets the advance part names.
+	 *
+	 * @return the advance part names
+	 */
+	private List<String> getAdvancePartNames() {
+		ArrayList<String> values = new ArrayList<String>();
+		int count = 0;
+		for (Text t: partNames) {
+			String name = t.getText().trim();
+			if (name.length() == 0)
+				name = Messages.CreatePartitionDialog_7+count++; 
+			values.add(name);
+		}
+		return values;
+	}
+
+	/**
+	 * Gets the partition.
+	 *
+	 * @return the partition
+	 */
+	public Partition getPartition() {
+		return partition;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreatePartitionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Actions (OLD) and their dialogs (still used by the commands)</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/RunGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/RunGroovyScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/RunGroovyScript.java	(revision 122)
@@ -0,0 +1,160 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import groovy.lang.Binding;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.action.Action;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.importer.scripting.GroovyImportScriptRunner;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RunGroovyScript.
+ */
+public class RunGroovyScript extends Action implements IWorkbenchAction {
+
+	/** The ID. */
+	private static String ID = "org.txm.rcpapplication.actions.RunGroovyScript"; //$NON-NLS-1$
+
+	/** The window. */
+	private IWorkbenchWindow window;
+
+	/** The gse. */
+	private GroovyImportScriptRunner gse = null;
+
+	/**
+	 * Instantiates a new run groovy script.
+	 * 
+	 * @param window
+	 *            the window
+	 */
+	public RunGroovyScript(IWorkbenchWindow window) {
+		this.window = window;
+		setId(ID);
+		setText(Messages.RunGroovyScript_1);
+		setToolTipText(Messages.RunGroovyScript_2);
+		setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_RUN_SCRIPT));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+
+		FileDialog dialog = new FileDialog(window.getShell(), SWT.OPEN);
+		dialog.setFilterExtensions(new String[] { Messages.RunGroovyScript_3 });
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptRootDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT, null);
+		String scriptCurrentDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_CURRENT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_CURRENT_DIR_DEFAULT, null);
+
+		if (LastOpened.getFolder(ID) != null) {
+			scriptCurrentDir = LastOpened.getFolder(ID);
+		}
+		dialog.setFilterPath(scriptCurrentDir);
+		String result = dialog.open();
+		if (result == null)
+			return;
+
+		final File script = new File(result);
+		LastOpened.set(ID, script.getParent(), script.getName());
+		try {
+			List<File> classPath = new ArrayList<File>();
+			classPath.add(new File(scriptRootDir));
+			gse = new GroovyImportScriptRunner(script, classPath);
+		} catch (IOException e) {
+			System.err.println(NLS.bind(Messages.RunGroovyScript_4, e));
+			System.err.println(e);
+		}
+
+		if (gse != null) {
+			JobHandler jobhandler = new JobHandler(Messages.RunGroovyScript_0,
+					null) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						monitor.beginTask(Messages.RunGroovyScript_9, 100);
+						new Binding();
+						// gse.run(binding);
+						monitor.worked(100);
+
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						System.out.println(NLS.bind(Messages.RunGroovyScript_8,
+								e));
+					} finally {
+						monitor.done();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/RunGroovyScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesDialog.java	(revision 122)
@@ -0,0 +1,380 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Part;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+// TODO: Auto-generated Javadoc
+/**
+ * User can choose a lexical property the values to keep and the parts to keep.
+ *
+ * @author jpmague, Sylvain Loiseau
+ */
+public class ComputeSpecificitiesDialog extends Dialog {
+
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The ana prop combo. */
+	private Combo anaPropCombo;
+	
+	/** The property. */
+	private Property property;
+
+	/** The type focus. */
+	private List<Text> typeFocus = new ArrayList<Text>();
+	
+	/** The part focus. */
+	private List<Combo> partFocus = new ArrayList<Combo>();
+	
+	/** The type focus string. */
+	private List<String> typeFocusString;
+	
+	/** The part focus string. */
+	private ArrayList<Part> partFocusString;
+
+	/** The partition. */
+	private Partition partition;
+
+	/** The show part focus selection. */
+	boolean showPartFocusSelection = false;
+
+	/**
+	 * Instantiates a new compute specificities dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param partition the partition
+	 * @param showPartFocusSelection the show part focus selection
+	 */
+	public ComputeSpecificitiesDialog(Shell parentShell, Partition partition,
+			boolean showPartFocusSelection) {
+		super(parentShell);
+		this.partition = partition;
+		this.showPartFocusSelection = showPartFocusSelection;
+		try {
+			this.properties = new ArrayList<Property>(partition
+					.getCorpus().getOrderedProperties());
+		} catch (CqiClientException e) {
+			System.err.println(NLS.bind(
+					Messages.ComputeSpecificitiesDialog_0, e));
+		}
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.Compute_Specificities);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		// TODO : we just put a composite into another composite. Everything
+		// should be directly put into parent
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		Label anaPropLabel = new Label(composite, SWT.NONE);
+		anaPropLabel.setText(Messages.CreatePartitionDialog_4);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(composite, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		int iword= 0;
+		int i = 0;
+		for (Property p : properties) {
+			anaPropCombo.add(p.getName());
+			if (p.getName().equals("word")) //$NON-NLS-1$
+				iword=i;
+			i++;
+		}
+		anaPropCombo.select(iword);
+
+		// set the focus
+//		Label advancedFocusLabel = new Label(composite, SWT.NONE);
+//		advancedFocusLabel.setText(Messages.ComputeSpecificitiesDialog_3);
+//		advancedFocusLabel.setLayoutData(new GridData(GridData.END,
+//				GridData.CENTER, false, false));
+//
+//		Composite focusComposite = new Composite(composite, SWT.NONE);
+//		// TODO : we just put a composite into another composite. Everything
+//		// should be directly put into parent
+//		focusComposite.setLayout(new GridLayout(1, false));
+//
+//		createTypeFocusField(focusComposite);
+
+		// Set the part focus
+		if (showPartFocusSelection) {
+
+			Label advancedPartLabel = new Label(composite, SWT.NONE);
+			advancedPartLabel.setText(Messages.ComputeSpecificitiesDialog_4);
+			advancedPartLabel.setLayoutData(new GridData(GridData.END,
+					GridData.CENTER, false, false));
+
+			Composite partFocusComposite = new Composite(composite, SWT.NONE);
+			// TODO : we just put a composite into another composite. Everything
+			// should be directly put into parent
+			partFocusComposite.setLayout(new GridLayout(1, false));
+
+			createPartFocusField(partFocusComposite);
+		}
+
+		return composite;
+	}
+
+	/**
+	 * Creates the type focus field.
+	 *
+	 * @param composite the composite
+	 */
+	private void createTypeFocusField(final Composite composite) {
+		Text focusTextBox = new Text(composite, SWT.BORDER);
+		focusTextBox.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		gridData.widthHint = convertHeightInCharsToPixels(20);
+		focusTextBox.setLayoutData(gridData);
+
+		final Button plusButton = new Button(composite, SWT.NONE);
+		plusButton.setText("+"); //$NON-NLS-1$
+		plusButton.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				createTypeFocusField(composite);
+				getShell().pack();
+			}
+		});
+
+		// final Button minusButton = new Button(composite, SWT.NONE);
+		// minusButton.setText("-");
+		// minusButton.addListener(SWT.Selection, new Listener() {
+		// public void handleEvent(Event event) {
+		// }
+		// });
+
+		// queryText.addKeyListener(new KeyListener() {
+		// public void keyPressed(KeyEvent e) {
+		// // If there is no query in any text field, disabled the "Ok" button.
+		// if (noquery()) {
+		// CreatePartitionDialog.this.getButton(IDialogConstants.OK_ID).setEnabled(false);
+		// } else {
+		// CreatePartitionDialog.this.getButton(IDialogConstants.OK_ID).setEnabled(true);
+		// }
+		//
+		// // // If there is no text in this particular text field, disabled the
+		// "+" button.
+		// // if (queryText.getText().length() == 0) {
+		// // plusButton.setEnabled(false);
+		// // } else {
+		// // plusButton.setEnabled(true);
+		// // }
+		// }
+		//
+		// public void keyReleased(KeyEvent e) {
+		// }
+		// }
+		// );
+
+		typeFocus.add(focusTextBox);
+	}
+
+	/**
+	 * Creates the part focus field.
+	 *
+	 * @param composite the composite
+	 */
+	private void createPartFocusField(final Composite composite) {
+
+		final Combo partFocusBox;
+		partFocusBox = new Combo(composite, SWT.BORDER);
+		partFocusBox.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		gridData.widthHint = convertHeightInCharsToPixels(20);
+		partFocusBox.setLayoutData(gridData);
+		for (String name : partition.getPartShortNames()) {
+			partFocusBox.add(name);
+		}
+
+		final Button plusButton = new Button(composite, SWT.NONE);
+		plusButton.setText("+"); //$NON-NLS-1$
+		plusButton.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				createPartFocusField(composite);
+				getShell().pack();
+			}
+		});
+
+		// final Button minusButton = new Button(composite, SWT.NONE);
+		// minusButton.setText("-");
+		// minusButton.addListener(SWT.Selection, new Listener() {
+		// public void handleEvent(Event event) {
+		// }
+		// });
+
+		// queryText.addKeyListener(new KeyListener() {
+		// public void keyPressed(KeyEvent e) {
+		// // If there is no query in any text field, disabled the "Ok" button.
+		// if (noquery()) {
+		// CreatePartitionDialog.this.getButton(IDialogConstants.OK_ID).setEnabled(false);
+		// } else {
+		// CreatePartitionDialog.this.getButton(IDialogConstants.OK_ID).setEnabled(true);
+		// }
+		//
+		// // // If there is no text in this particular text field, disabled the
+		// "+" button.
+		// // if (queryText.getText().length() == 0) {
+		// // plusButton.setEnabled(false);
+		// // } else {
+		// // plusButton.setEnabled(true);
+		// // }
+		// }
+		//
+		// public void keyReleased(KeyEvent e) {
+		// }
+		// }
+		// );
+
+		partFocus.add(partFocusBox);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		int propIndex = anaPropCombo.getSelectionIndex();
+		if (propIndex == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.Structure_field_not_empty);
+			return;
+		}
+		property = properties.get(propIndex);
+
+		typeFocusString = new ArrayList<String>();
+		if (typeFocus != null)
+		for (Text foc : typeFocus) {
+			String regex = foc.getText().trim();
+			if (regex.length() != 0) {
+				try
+				{
+					Pattern p = Pattern.compile(regex);
+					if (p != null)
+						typeFocusString.add(regex);
+				}
+				catch(PatternSyntaxException e)
+				{
+					String str = NLS.bind(Messages.ComputeSpecificitiesDialog_1, e.getMessage());
+					System.out.println(str);
+					StatusLine.error(str);
+					return;
+				}
+			}
+		}
+
+		partFocusString = new ArrayList<Part>();
+		if (partFocus != null)
+		for (Combo com : partFocus) {
+			if (com.getText().length() != 0) {
+				partFocusString.add(partition.getParts().get(
+						com.getSelectionIndex()));
+			}
+		}
+
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the analysis property.
+	 *
+	 * @return the analysis property
+	 */
+	public Property getAnalysisProperty() {
+		return property;
+	}
+
+	/**
+	 * Gets the type focus.
+	 *
+	 * @return the type focus
+	 */
+	public List<String> getTypeFocus() {
+		return typeFocusString;
+	}
+
+	/**
+	 * Gets the part focus.
+	 *
+	 * @return the part focus
+	 */
+	public List<Part> getPartFocus() {
+		if (!showPartFocusSelection) {
+			//throw new IllegalStateException(Messages.ComputeSpecificitiesDialog_9);
+		}
+		// System.out.println("get partfocus (string ,normalement) "+partFocusString);
+		return partFocusString;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/ComputeSpecificitiesDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateFrequencyListDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateFrequencyListDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateFrequencyListDialog.java	(revision 122)
@@ -0,0 +1,140 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow user to choose a lexical property.
+ *
+ * @author sloiseau
+ */
+public class CreateFrequencyListDialog extends Dialog {
+
+	/** The property. */
+	private Property property;
+	
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The ana prop combo. */
+	private Combo anaPropCombo;
+
+	/**
+	 * Instantiates a new creates the frequency list dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public CreateFrequencyListDialog(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		try {
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.FrequencyListEditorInput_0);
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		Label anaPropLabel = new Label(composite, SWT.NONE);
+		anaPropLabel.setText(Messages.CreatePartitionDialog_4);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(composite, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		for (Property property : properties) {
+			anaPropCombo.add(property.getName());
+		}
+		if (anaPropCombo.indexOf("word") >= 0) //$NON-NLS-1$
+			anaPropCombo.select(anaPropCombo.indexOf("word")); //$NON-NLS-1$
+
+		return composite;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		int propIndex = anaPropCombo.getSelectionIndex();
+		if (propIndex == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.Structure_field_not_empty);
+			return;
+		}
+		property = properties.get(propIndex);
+		super.okPressed();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateFrequencyListDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/GetConcordancesDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/GetConcordancesDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/GetConcordancesDialog.java	(revision 122)
@@ -0,0 +1,411 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Text;
+import org.txm.functions.ReferencePattern;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+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.query.Query;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class GetConcordancesDialog.
+ *
+ * @deprecated has been moved to concordance editor @ author mdecorde
+ */
+@Deprecated
+public class GetConcordancesDialog extends Dialog {
+
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The ana prop combo. */
+	private Combo anaPropCombo;
+	
+	/** The view prop combo. */
+	private Combo viewPropCombo;
+	
+	/** The query text. */
+	private Text queryText;
+	
+	/** The available reference items. */
+	private List<Property> availableReferenceItems;
+	
+	/** The selected reference items. */
+	private List<Property> selectedReferenceItems;
+	
+	/** The left context spinner. */
+	private Spinner leftContextSpinner;
+	
+	/** The right context spinner. */
+	private Spinner rightContextSpinner;
+
+	/** The analysis property. */
+	private Property analysisProperty;
+	
+	/** The view property. */
+	private Property viewProperty;
+	
+	/** The query. */
+	private Query query;
+	
+	/** The reference pattern. */
+	private ReferencePattern referencePattern;
+	
+	/** The left context size. */
+	private int leftContextSize;
+	
+	/** The right context size. */
+	private int rightContextSize;
+
+	/**
+	 * Instantiates a new gets the concordances dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public GetConcordancesDialog(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		try {
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+			this.availableReferenceItems = new ArrayList<Property>();
+			this.selectedReferenceItems = new ArrayList<Property>();
+			this.availableReferenceItems.addAll(corpus.getOrderedProperties());
+			List<StructuralUnit> structuralUnits = corpus.getOrderedStructuralUnits();
+			for (StructuralUnit unit : structuralUnits) {
+				availableReferenceItems.addAll(unit.getOrderedProperties());
+			}
+		} catch (CqiClientException e) {
+			System.err.println(NLS.bind(Messages.GetConcordancesDialog_0,
+					e));
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.GetConcordancesDialog_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		mainArea.setLayout(layout);
+
+		Label queryLabel = new Label(mainArea, SWT.NONE);
+		queryLabel.setText(Messages.CreateSubcorpusDialog_10);
+		queryLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+		queryText = new Text(mainArea, SWT.BORDER);
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		gridData.widthHint = convertWidthInCharsToPixels(20);
+		queryText.setLayoutData(gridData);
+		// queryText.setText("\"Graal\"");
+
+		Label anaPropLabel = new Label(mainArea, SWT.NONE);
+		anaPropLabel.setText(Messages.CreatePartitionDialog_4);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(mainArea, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		for (Property property : properties) {
+			anaPropCombo.add(property.getName());
+		}
+		anaPropCombo.select(0);
+
+		Label viewPropLabel = new Label(mainArea, SWT.NONE);
+		viewPropLabel.setText(Messages.GetConcordancesDialog_4);
+		viewPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		viewPropCombo = new Combo(mainArea, SWT.READ_ONLY);
+		viewPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		for (Property property : properties) {
+			viewPropCombo.add(property.getName());
+		}
+		viewPropCombo.select(0);
+
+		Label leftContextLabel = new Label(mainArea, SWT.NONE);
+		leftContextLabel.setText(Messages.GetConcordancesDialog_5);
+		leftContextLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+		leftContextSpinner = new Spinner(mainArea, SWT.BORDER);
+		leftContextSpinner.setSelection(15);
+
+		Label rightContextLabel = new Label(mainArea, SWT.NONE);
+		rightContextLabel.setText(Messages.GetConcordancesDialog_6);
+		rightContextLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+		rightContextSpinner = new Spinner(mainArea, SWT.BORDER);
+		rightContextSpinner.setSelection(15);
+
+		Label referenceLabel = new Label(mainArea, SWT.NONE);
+		referenceLabel.setText(Messages.GetConcordancesDialog_7);
+		referenceLabel.setLayoutData(new GridData(GridData.END,
+				GridData.BEGINNING, false, false));
+		Composite referencePatternComposer = new Composite(mainArea, SWT.NONE);
+		referencePatternComposer.setLayout(new GridLayout(4, false));
+
+		final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+				referencePatternComposer, SWT.BORDER | SWT.V_SCROLL);
+		for (Property property : availableReferenceItems) {
+			if (property instanceof StructuralUnitProperty) {
+				StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+				availbleItems.add(sProperty.getStructuralUnit().getName()
+						+ ": " + property.getName()); //$NON-NLS-1$
+			} else {
+				availbleItems.add(property.getName());
+			}
+		}
+		gridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+		Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		gridData.widthHint = size.x;
+		availbleItems.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(referencePatternComposer,
+				SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+				referencePatternComposer, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+		selectedItems.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(referencePatternComposer,
+				SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = availbleItems.getSelectionIndex();
+				selectedItems.add(availbleItems.getItem(ind));
+				availbleItems.remove(ind);
+				selectedReferenceItems.add(availableReferenceItems.get(ind));
+				availableReferenceItems.remove(ind);
+				availbleItems.setSelection(ind);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				availbleItems.add(selectedItems.getItem(ind));
+				selectedItems.remove(ind);
+				availableReferenceItems.add(selectedReferenceItems.get(ind));
+				selectedReferenceItems.remove(ind);
+				selectedItems.setSelection(ind);
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind > 0) {
+					selectedItems.add(selectedItems.getItem(ind), ind - 1);
+					selectedItems.remove(ind + 1);
+					selectedReferenceItems.add(selectedReferenceItems
+							.get(ind - 1));
+					selectedReferenceItems.remove(ind + 1);
+					selectedItems.setSelection(ind - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind < selectedItems.getItemCount() - 1) {
+					selectedItems.add(selectedItems.getItem(ind), ind + 2);
+					selectedItems.remove(ind);
+					selectedReferenceItems.add(selectedReferenceItems
+							.get(ind + 2));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind + 2);
+				}
+			}
+		});
+
+		return mainArea;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (queryText.getText().equals("")) { //$NON-NLS-1$
+			MessageDialog.openError(getShell(),
+					Messages.CreateSubcorpusDialog_13,
+					Messages.CreateSubcorpusDialog_14);
+			return;
+		} else
+			query = new Query(wrap(queryText.getText()));
+
+		if (anaPropCombo.getSelectionIndex() == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.GetConcordancesDialog_13);
+			return;
+		} else
+			analysisProperty = properties.get(anaPropCombo.getSelectionIndex());
+
+		if (viewPropCombo.getSelectionIndex() == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.GetConcordancesDialog_14,
+					Messages.GetConcordancesDialog_15);
+			return;
+		} else
+			viewProperty = properties.get(viewPropCombo.getSelectionIndex());
+
+		referencePattern = new ReferencePattern();
+		for (Property prop : selectedReferenceItems)
+			referencePattern.addProperty(prop);
+
+		leftContextSize = leftContextSpinner.getSelection();
+		rightContextSize = rightContextSpinner.getSelection();
+
+		super.okPressed();
+	}
+
+	/**
+	 * Wrap.
+	 *
+	 * @param text the text
+	 * @return the string
+	 */
+	private String wrap(String text) {
+		Pattern quoted = Pattern.compile("\".*\""); //$NON-NLS-1$
+		if (quoted.matcher(text).matches())
+			return text;
+		Pattern bracketed = Pattern.compile("\\[.*\\]"); //$NON-NLS-1$
+		if (bracketed.matcher(text).matches())
+			return text;
+		Pattern equals = Pattern.compile(".*\".*\""); //$NON-NLS-1$
+		if (equals.matcher(text).matches())
+			return '[' + text + ']';
+		return '"' + text + '"'; //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the analysis property.
+	 *
+	 * @return the analysis property
+	 */
+	public Property getAnalysisProperty() {
+		return analysisProperty;
+	}
+
+	/**
+	 * Gets the view property.
+	 *
+	 * @return the view property
+	 */
+	public Property getViewProperty() {
+		return viewProperty;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @return the query
+	 */
+	public Query getQuery() {
+		return query;
+	}
+
+	/**
+	 * Gets the reference pattern.
+	 *
+	 * @return the reference pattern
+	 */
+	public ReferencePattern getReferencePattern() {
+		return referencePattern;
+	}
+
+	/**
+	 * Gets the left context size.
+	 *
+	 * @return the left context size
+	 */
+	public int getLeftContextSize() {
+		return leftContextSize;
+	}
+
+	/**
+	 * Gets the right context size.
+	 *
+	 * @return the right context size
+	 */
+	public int getRightContextSize() {
+		return rightContextSize;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/GetConcordancesDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/SaveBeforeExecutionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/SaveBeforeExecutionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/SaveBeforeExecutionDialog.java	(revision 122)
@@ -0,0 +1,86 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.io.File;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow the user to choose : the type of the graphic the structural units,
+ * property and values to be shown the queries of each curves.
+ *
+ * @author mdecorde
+ */
+public class SaveBeforeExecutionDialog extends Dialog {
+
+	private File script;
+
+	/**
+	 * Instantiates a new progression dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public SaveBeforeExecutionDialog(Shell parentShell, File script) {
+		super(parentShell);
+		this.script = script;
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(org.txm.rcpapplication.Messages.SaveBeforeExecutionDialog_0);
+		newShell.setMinimumSize(300, 460);
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite p) {
+		
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		super.okPressed();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/SaveBeforeExecutionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateSubcorpusDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateSubcorpusDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateSubcorpusDialog.java	(revision 122)
@@ -0,0 +1,364 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.widget.ComplexSubcorpusPanel;
+import org.txm.rcpapplication.swt.widget.QueryWidget;
+import org.txm.rcpapplication.swt.widget.SimpleSubcorpusPanel;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+
+/**
+ * Allow the user to create a Sub-corpus 2 mode : Simple : he can choose a
+ * structural unit, a property and a selection of values Advance: he define the
+ * query to build the sub-corpus @ author mdecorde.
+ */
+public class CreateSubcorpusDialog extends Dialog {
+	// For the "simple" tab
+	/** The selected structural unit. */
+	//private StructuralUnit selectedStructuralUnit;
+	//List<StructuralUnitProperty> selectableStructuralUnitProperties = null;
+	/** The selected structural unit property. */
+	//private StructuralUnitProperty selectedStructuralUnitProperty;
+
+	/** The selected values. */
+	//private List<String> selectedValues;
+
+	// For the assisted tab
+	/** The simple and complex panels. */
+	SimpleSubcorpusPanel simplePanel;
+	ComplexSubcorpusPanel complexPanel;
+
+	// For the "advanced" tab
+	/** The query text. */
+	private QueryWidget queryText;
+
+	/** The query string. */
+	private String queryString;
+
+	// for both tab
+	/** The name. */
+	private Text name;
+
+	/** The name string. */
+	private String nameString;
+
+	/** The corpus. */
+	private Corpus corpus;
+
+	/** The is advanced selected. */
+	private boolean isAdvancedSelected = false;
+
+	/** The assisted selected. */
+	private boolean assistedSelected = false;
+
+	/**
+	 * Instantiates a new creates the subcorpus dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public CreateSubcorpusDialog(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		this.corpus = corpus;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.CreateSubcorpusDialog_0);
+		newShell.setMinimumSize(300, 300);
+	}
+
+	/** The structural units final. */
+	List<StructuralUnit> structuralUnitsFinal;
+
+	/** The structural units combo. */
+	Combo structuralUnitsCombo;
+
+	/** The property combo. */
+	Combo propertyCombo;
+
+	/** The value combo. */
+	org.eclipse.swt.widgets.List valueCombo;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+
+		Composite inclosing = new Composite(parent, SWT.NONE);
+		// TODO : we just put a composite into another composite. Everything
+		// should be directly put into parent
+		GridLayout layout4inclosing = new GridLayout(1, true);
+		inclosing.setLayout(layout4inclosing);
+		inclosing.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+
+		// name panel
+		Composite nameComposite = new Composite(inclosing, SWT.NONE);
+		nameComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+		GridLayout layout4nameComposite = new GridLayout(2, false);
+		nameComposite.setLayout(layout4nameComposite);
+
+		Label nameLabel = new Label(nameComposite, SWT.NONE);
+		nameLabel.setText(Messages.CreatePartitionDialog_6);
+		nameLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
+
+		name = new Text(nameComposite, SWT.BORDER);
+		name.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+
+		// Param panel
+		final TabFolder tabFolder = new TabFolder(inclosing, SWT.NONE);
+		tabFolder.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+		
+		// First tab
+		TabItem simpleTab = new TabItem(tabFolder, SWT.NONE);
+		simpleTab.setText(Messages.CreatePartitionDialog_1);
+		simplePanel = new SimpleSubcorpusPanel(tabFolder, SWT.NONE, this, corpus);
+		simpleTab.setControl(simplePanel);
+		
+		//Second tab: assisted mode
+		TabItem secondTab = new TabItem(tabFolder, SWT.NONE);
+		secondTab.setText(Messages.CreatePartitionDialog_3);
+		this.complexPanel = new ComplexSubcorpusPanel(tabFolder, SWT.NONE, this.corpus);
+		secondTab.setControl(complexPanel);
+
+		// Third tab: advanced mode
+		TabItem advancedTab = new TabItem(tabFolder, SWT.NONE);
+		advancedTab.setText(Messages.CreatePartitionDialog_5);
+
+		Composite compositeForAdvanced = new Composite(tabFolder, SWT.NONE);
+		advancedTab.setControl(compositeForAdvanced);
+
+		GridLayout layoutForAdvanced = new GridLayout(3, false);
+		compositeForAdvanced.setLayout(layoutForAdvanced);
+
+		Label advancedPartLabel = new Label(compositeForAdvanced, SWT.NONE);
+		advancedPartLabel.setText(Messages.CreateSubcorpusDialog_10);
+		advancedPartLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+
+		queryText = new QueryWidget(compositeForAdvanced, SWT.DROP_DOWN);
+		queryText.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		gridData.widthHint = convertHeightInCharsToPixels(20);
+		queryText.setLayoutData(gridData);
+
+		// check the state of the OK button according to the change of tab
+		// --------------------------------
+
+		tabFolder.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (tabFolder.getSelectionIndex() == 0) {
+					isAdvancedSelected = false;
+					assistedSelected = false;
+				} else if (tabFolder.getSelectionIndex() == 1) {
+					isAdvancedSelected = false;
+					assistedSelected = true;
+				}else {
+					isAdvancedSelected = true;
+					assistedSelected = false;
+				}
+			}
+		});
+
+		return tabFolder;
+	}
+
+
+	
+	public Button getButton(int id) {
+		return this.getButton(id);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (name.getText().length() == 0) {
+			String generated = "subcorpus"; //$NON-NLS-1$
+
+			System.out.println(Messages.CreateSubcorpusDialog_8);
+			if (isAdvancedSelected()) {
+				generated += ""+(this.corpus.getSubcorpora().size()+1); //$NON-NLS-1$
+			} else if (assistedSelected) {
+				generated = this.complexPanel.getGeneratedName();
+			} else { // simple
+				generated = this.corpus.getName()+"_"+getStructuralUnitProperty().getFullName(); //$NON-NLS-1$
+			}
+			//return;
+			name.setText(generated);
+		}
+		// test if a query has been set
+		if ((isAdvancedSelected()) && queryText.getText().length() == 0) {
+			MessageDialog.openError(getShell(),
+					Messages.CreateSubcorpusDialog_13,
+					Messages.CreateSubcorpusDialog_14);
+			return;
+		}
+
+		queryString = queryText.getQueryString();
+		//queryText.memorize();
+
+		if (assistedSelected) {
+			//System.out.println("1 "+queryString);
+			queryString = this.complexPanel.getQueryFieldValue();
+			//System.out.println("2 "+queryString);
+			if (queryString == null || queryString.trim().length() == 0) {
+				queryString = this.complexPanel.getQueryString();
+				//System.out.println("3 "+queryString);
+				if (queryString == null || queryString.trim().length() == 0) {
+					MessageDialog.openError(getShell(),
+							Messages.CreateSubcorpusDialog_13,
+							Messages.CreateSubcorpusDialog_14);
+					return;
+				}
+			}
+		}
+
+		nameString = name.getText();
+		super.okPressed();
+	}
+
+	/**
+	 * Tell if the user is using the "advanced" tab.
+	 *
+	 * @return true, if is advanced selected
+	 */
+	public boolean isAdvancedSelected() {
+		return isAdvancedSelected;
+	}
+
+	/**
+	 * Tell if the user is using the "assisted" tab.
+	 *
+	 * @return true, if is assisted selected
+	 */
+	public boolean isAssistedSelected() {
+		return assistedSelected;
+	}
+
+	/**
+	 * Gets the structural unit.
+	 *
+	 * @return the structural unit
+	 */
+	public StructuralUnit getStructuralUnit() {
+		if (isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return simplePanel.selectedStructuralUnit;
+	}
+
+	/**
+	 * Gets the structural unit property.
+	 *
+	 * @return the structural unit property
+	 */
+	public StructuralUnitProperty getStructuralUnitProperty() {
+		if (isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return simplePanel.selectedStructuralUnitProperty;
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<String> getValues() {
+		if (isAdvancedSelected())
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return simplePanel.selectedValues;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @return the query
+	 */
+	public String getQuery() {
+		if (isAdvancedSelected() == false && isAssistedSelected() == false)
+			throw new IllegalStateException(
+					Messages.Cannot_ask_simple_when_advance);
+		return queryString;
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 */
+	public String getName() {
+		return nameString;
+	}
+
+	/**
+	 * Gets the sub corpus name.
+	 *
+	 * @return the sub corpus name
+	 */
+	public String getSubCorpusName() {
+		return name.getText();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/CreateSubcorpusDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/LexicalTableDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/LexicalTableDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/LexicalTableDialog.java	(revision 122)
@@ -0,0 +1,251 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+// TODO: Auto-generated Javadoc
+/**
+ * Retrieve the property analysis to be used for computing correspondance
+ * analysis. and also the max number of entries and their minimal frequency
+ * 
+ * @author sloiseau
+ * 
+ */
+public class LexicalTableDialog extends Dialog {
+
+	/** The property. */
+	private Property property;
+	
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The ana prop combo. */
+	private Combo anaPropCombo;
+	
+	/** The fmin label. */
+	Label fminLabel;
+	
+	/** The maxlines label. */
+	Label maxlinesLabel;
+	
+	/** The maxlines spinner. */
+	Spinner maxlinesSpinner;
+	
+	/** The fmin spinner. */
+	Spinner fminSpinner;
+	
+	/** The corpus. */
+	Corpus corpus;
+
+	/** The title. */
+	String title;
+	
+	/** The mess. */
+	String mess;
+	
+	/** The max, default value read from CA preference page. */
+	private int vmax = TxmPreferences.getInt(CAPreferencePage.VMAX, 200);
+	
+	/** The fmin, default value read from CA preference page. */
+	private int fmin = TxmPreferences.getInt(CAPreferencePage.FMIN, 10);
+
+	/**
+	 * Instantiates a new compute correspondance analysis dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public LexicalTableDialog(Shell parentShell, Corpus corpus, String title) {
+		super(parentShell);
+		try {
+			this.corpus = corpus;
+			this.title = title;
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/**
+	 * Instantiates a new compute correspondance analysis dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 * @param title the title
+	 * @param mess the mess
+	 */
+	public LexicalTableDialog(Shell parentShell,
+			Corpus corpus, String title, String mess) {
+		super(parentShell);
+		this.corpus = corpus;
+		this.title = title;
+		this.mess = mess;
+		try {
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.LexicalTablePreferencePage_0);
+		if (title != null)
+			newShell.setText(title);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite composite = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		Label anaPropLabel = new Label(composite, SWT.NONE);
+		if (mess != null)
+			anaPropLabel.setText(mess);
+		else
+			anaPropLabel
+					.setText(Messages.ComputeCorrespondanceAnalysisDialog_1);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(composite, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		int iword= 0;
+		int i = 0;
+		for (Property p : properties) {
+			anaPropCombo.add(p.getName());
+			if (p.getName().equals("word")) //$NON-NLS-1$
+				iword=i;
+			i++;
+		}
+		anaPropCombo.select(iword);
+
+		maxlinesLabel = new Label(composite, SWT.NONE);
+		maxlinesLabel.setText(Messages.ComputeCorrespondanceAnalysisDialog_2);
+		maxlinesLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				true, false));
+		maxlinesSpinner = new Spinner(composite, SWT.BORDER);
+		maxlinesSpinner.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+		maxlinesSpinner.setMaximum(9999999);
+		maxlinesSpinner.setMinimum(1);
+		maxlinesSpinner.setSelection(9999999);
+		maxlinesSpinner.setSelection(vmax);
+		
+		fminLabel = new Label(composite, SWT.NONE);
+		fminLabel.setText(Messages.IndexEditor_5);
+		fminLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				true, false));
+		fminSpinner = new Spinner(composite, SWT.BORDER);
+		fminSpinner.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
+		fminSpinner.setMaximum(9999999);
+		fminSpinner.setMinimum(1);
+		fminSpinner.setSelection(fmin);
+
+		return composite;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		int propIndex = anaPropCombo.getSelectionIndex();
+		if (propIndex == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.Structure_field_not_empty);
+			return;
+		}
+		property = properties.get(propIndex);
+
+		vmax = maxlinesSpinner.getSelection();
+		fmin = fminSpinner.getSelection();
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+	/**
+	 * Gets the fmin.
+	 *
+	 * @return the fmin
+	 */
+	public int getFmin() {
+		return fmin;
+	}
+
+	/**
+	 * Gets the max lines.
+	 *
+	 * @return the max lines
+	 */
+	public int getMaxLines() {
+		return vmax;
+	}
+	
+	public void setFminAndVMax(int fmin, int vmax) {
+		this.fmin = fmin;
+		this.vmax = vmax;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/actions/LexicalTableDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/FileExplorerPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/FileExplorerPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/FileExplorerPreferencePage.java	(revision 122)
@@ -0,0 +1,132 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ExportPreferencePage.
+ */
+public class FileExplorerPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant FILES_TO_HIDE. */
+	public static final String FILES_TO_HIDE = "files_to_hide"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.FileExplorerPreferencePage"; //$NON-NLS-1$
+
+	public static final String SHOW_HIDDEN_FILES = "show_hidden_files"; //$NON-NLS-1$
+	
+	public static final String SHOW_FOLDERS = "show_folders"; //$NON-NLS-1$
+	
+	/** The show_export. */
+	private StringFieldEditor files_to_hide;
+	private BooleanFieldEditor show_hidden_files;
+	//private BooleanFieldEditor show_folders;
+	
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/**
+	 * Instantiates a new export preference page.
+	 */
+	public FileExplorerPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.ExportPreferencePage_1);
+		setTitle(Messages.ExportPreferencePage_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		
+		files_to_hide = new StringFieldEditor(FILES_TO_HIDE,
+				Messages.FileExplorerPreferencePage_0, getFieldEditorParent());
+		addField(files_to_hide);
+		
+		show_hidden_files = new BooleanFieldEditor(SHOW_HIDDEN_FILES,
+				Messages.FileExplorerPreferencePage_1, getFieldEditorParent());
+		addField(show_hidden_files);
+		
+		//show_folders = new BooleanFieldEditor(SHOW_FOLDERS, Messages.FileExplorerPreferencePage_2, getFieldEditorParent());
+		//addField(show_folders);
+		TxmPreferences.set(SHOW_FOLDERS, true);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+			Explorer.refresh();
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/FileExplorerPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferencePage.java	(revision 122)
@@ -0,0 +1,130 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ConcordancerPreferencePage.
+ */
+public class ConcordancerPreferencePage extends FieldEditorPreferencePage
+		implements IWorkbenchPreferencePage {
+	
+	/** The Constant N_LINE_PER_PAGE. */
+	public static final String N_LINE_PER_PAGE = "conc_n_lines_per_page"; //$NON-NLS-1$
+	
+	/** The Constant LEFT_CONTEXT_SIZE. */
+	public static final String LEFT_CONTEXT_SIZE = "conc_left_context_size"; //$NON-NLS-1$
+	
+	/** The Constant RIGHT_CONTEXT_SIZE. */
+	public static final String RIGHT_CONTEXT_SIZE = "conc_right_context_size"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.ConcordancerPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The n_line_per_page. */
+	private IntegerFieldEditor n_line_per_page;
+	
+	/** The left context size. */
+	private IntegerFieldEditor leftContextSize;
+	
+	/** The right context size. */
+	private IntegerFieldEditor rightContextSize;
+
+	/**
+	 * Instantiates a new concordancer preference page.
+	 */
+	public ConcordancerPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.ConcordancerPreferencePage_3);
+		setTitle(Messages.ConcordancerPreferencePage_3);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		n_line_per_page = new IntegerFieldEditor(N_LINE_PER_PAGE,
+				Messages.ConcordancerPreferencePage_4, getFieldEditorParent());
+		addField(n_line_per_page);
+		leftContextSize = new IntegerFieldEditor(LEFT_CONTEXT_SIZE,
+				Messages.ConcordancerPreferencePage_5, getFieldEditorParent());
+		addField(leftContextSize);
+		rightContextSize = new IntegerFieldEditor(RIGHT_CONTEXT_SIZE,
+				Messages.ConcordancerPreferencePage_6, getFieldEditorParent());
+		addField(rightContextSize);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+		// return n_line_per_page.getIntValue()>0;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AdvancePreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AdvancePreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AdvancePreferencePage.java	(revision 122)
@@ -0,0 +1,255 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class AdvancePreferencePage.
+ */
+public class AdvancePreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+	
+	/**
+	 * The constant ID. 
+	 */
+	public static final String ID = "org.txm.rcpapplication.preferences.AdvancePreferencePage"; //$NON-NLS-1$
+
+	/** The Constant INSTALL_DIR. */
+	public static final String INSTALL_DIR = Toolbox.INSTALL_DIR; 
+	
+	/** The Constant TXMHOME. */
+	public static final String TXMHOME = Toolbox.USER_TXM_HOME; 
+	
+	/** The Constant LOG_LEVEL. */
+	public static final String LOG_LEVEL = Toolbox.LOG_LEVEL; 
+	
+	/** The Constant ADD_TECH_LOGS. */
+	public static final String ADD_TECH_LOGS = Toolbox.ADD_TECH_LOGS; 
+	
+	/** The Constant SHOW_SEVERE_DIALOG. */
+	public static final String SHOW_SEVERE_DIALOG = "show_severe_dialog"; 
+
+	/** The Constant LOG_CONSOLE. */
+	public static final String SHOW_TIMINGS = Toolbox.SHOW_TIMINGS; 
+	/** The Constant LOG_FILE. */
+	public static final String LOG_IN_FILE = Toolbox.LOG_IN_FILE;
+
+	/** The Constant EXPERT_USER. */
+	public static final String EXPERT_USER = Toolbox.EXPERT_USER;
+	/** The Constant UPDATE_LEVEL. */
+	public static final String UPDATE_LEVEL = "update_level"; //$NON-NLS-1$
+	
+	/** The Constant LOG_STACKTRACE */
+	public static final String LOG_STACKTRACE = Toolbox.LOG_STACKTRACE;
+	
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The install dir. */
+	private DirectoryFieldEditor installDirField;
+	
+	/** The txmhome dir. */
+	private DirectoryFieldEditor txmhomeDirField;
+	
+	/** The log level. */
+	private ComboFieldEditor logLevelField;
+	
+	/** The log console. */
+	private BooleanFieldEditor logTimingsField;
+	
+	/** The log console. */
+	private BooleanFieldEditor logConsoleField;
+	
+	/** The log file. */
+	private BooleanFieldEditor logFileField;
+	
+	/** The log console. */
+	private BooleanFieldEditor expertField;
+	
+	/** The log stacktrace. */
+	private BooleanFieldEditor logStackTraceField;
+	
+	/** The severeDialog Field. */
+	private BooleanFieldEditor severeDialogField;
+
+	private ComboFieldEditor updateLevelField;
+
+	/**
+	 * Instantiates a new advance preference page.
+	 */
+	public AdvancePreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE, Application.PLUGIN_ID);
+		//System.out.println("prefs store: "+preferences);
+		
+		setPreferenceStore(preferences);
+		//setDescription(Messages.AdvancePreferencePage_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		installDirField = new DirectoryFieldEditor(INSTALL_DIR,
+				Messages.AdvancePreferencePage_1, getFieldEditorParent());
+		addField(installDirField);
+		
+		txmhomeDirField = new DirectoryFieldEditor(TXMHOME,
+				Messages.AdvancePreferencePage_2, getFieldEditorParent());
+		addField(txmhomeDirField);
+		
+		Group updateGroup = new Group(getFieldEditorParent(), SWT.NONE);
+		updateGroup.setText(Messages.AdvancePreferencePage_6);
+		GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false);
+		gridData2.horizontalSpan = 3;
+		gridData2.verticalIndent = 10;
+		updateGroup.setLayoutData(gridData2);
+		RowLayout rlayout = new RowLayout(SWT.VERTICAL);
+		rlayout.marginHeight = 5;
+		updateGroup.setLayout(rlayout);
+		
+		String[][] choices = new String[9][2];
+		choices[0][0] = choices[0][1] = "OFF"; //$NON-NLS-1$
+		choices[1][0] = choices[1][1] = "SEVERE"; //$NON-NLS-1$
+		choices[2][0] = choices[2][1] = "WARNING"; //$NON-NLS-1$
+		choices[3][0] = choices[3][1] = "INFO"; //$NON-NLS-1$
+		choices[4][0] = choices[4][1] = "CONFIG"; //$NON-NLS-1$
+		choices[5][0] = choices[5][1] = "FINE"; //$NON-NLS-1$
+		choices[6][0] = choices[6][1] = "FINER"; //$NON-NLS-1$
+		choices[7][0] = choices[7][1] = "FINEST"; //$NON-NLS-1$
+		choices[8][0] = choices[8][1] = "ALL"; //$NON-NLS-1$
+		logLevelField = new ComboFieldEditor(LOG_LEVEL,
+				Messages.AdvancePreferencePage_12, choices,
+				updateGroup);
+		addField(logLevelField);
+
+		logTimingsField = new BooleanFieldEditor(SHOW_TIMINGS,
+				Messages.AdvancePreferencePage_3, updateGroup);
+		addField(logTimingsField);
+		
+		logStackTraceField = new BooleanFieldEditor(LOG_STACKTRACE, 
+				Messages.AdvancePreferencePage_0, updateGroup);
+		addField(logStackTraceField);
+		
+		logConsoleField = new BooleanFieldEditor(ADD_TECH_LOGS,
+				Messages.AdvancePreferencePage_13, updateGroup);
+		addField(logConsoleField);
+		
+		severeDialogField = new BooleanFieldEditor(SHOW_SEVERE_DIALOG,
+				"Show a dialog when a severe error occurs", updateGroup);
+		addField(severeDialogField);
+
+		logFileField = new BooleanFieldEditor(LOG_IN_FILE,
+				Messages.AdvancePreferencePage_14, updateGroup);
+		addField(logFileField);
+		
+		String[][] choices2 = new String[4][2];
+		choices2[0][0] = choices2[0][1]= "STABLE"; //$NON-NLS-1$
+		choices2[1][0] = choices2[1][1] = "BETA"; //$NON-NLS-1$
+		choices2[2][0] = choices2[2][1] = "ALPHA"; //$NON-NLS-1$
+		choices2[3][0] = choices2[3][1] = "DEV"; //$NON-NLS-1$
+		updateLevelField = new ComboFieldEditor(UPDATE_LEVEL,
+				Messages.AdvancePreferencePage_7,choices2, getFieldEditorParent());
+		addField(updateLevelField);
+		
+		expertField = new BooleanFieldEditor(EXPERT_USER,
+				Messages.AdvancePreferencePage_4, getFieldEditorParent());
+		addField(expertField);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			String oldHome = preferences.getString(TXMHOME);
+			super.performOk();
+			preferences.save();
+			String newHome = preferences.getString(TXMHOME);
+			
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+			
+			// the macro directory changed
+			// System.out.println("old="+oldHome+" new="+newHome);
+			if (oldHome != null && !oldHome.equals(newHome)) {
+				MacroExplorer.refresh();
+			}
+			
+			// update repositories
+			IHandlerService service = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+			service.executeCommand("org.txm.rcpapplication.p2.plugins.FixUpdateHandler", null); //$NON-NLS-1$
+			
+			// FIXME: Refresh the Advanced\Charts Engine preference page to show/hide the "Display format" combo box according to expert mode value
+			// This code make the current engine switch bugged when the user displays this page before switching of current engine.
+			// It's because this method is called before the performOK() method of the chart engine preference page
+//			PlatformUI.getWorkbench().getPreferenceManager().
+//				find("org.txm.rcpapplication.preferences.TextometriePreferencePage/" + AdvancePreferencePage.ID + "/" + ChartsEnginePreferencePage.ID).createPage();
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AdvancePreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferencePage.java	(revision 122)
@@ -0,0 +1,258 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.FileFieldEditor;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.osgi.service.prefs.Preferences;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.stat.engine.r.RWorkspace;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class RPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant R_PATH_TO_EXECUTABLE. */
+	public static final String R_PATH_TO_EXECUTABLE = Toolbox.R_PATH_TO_EXECUTABLE;
+	
+	/** The Constant R_REMOTE. */
+	public static final String R_REMOTE = Toolbox.R_REMOTE;
+	
+	/** The Constant R_SERVER_ADRESS. */
+	public static final String R_SERVER_ADRESS = Toolbox.R_SERVER_ADDRESS;
+	
+	public static final String R_PORT = Toolbox.R_PORT;
+	public static final String R_DEBUG = Toolbox.R_DEBUG;
+	
+	/** The Constant R_USER. */
+	public static final String R_USER = Toolbox.R_USER;
+	
+	/** The Constant R_PASSWORD. */
+	public static final String R_PASSWORD = Toolbox.R_PASSWORD;
+	
+	/** The Constant R_FILE_TRANSFERT. */
+	public static final String R_FILE_TRANSFERT = Toolbox.R_FILE_TRANSFERT;
+	
+	public static final String R_SVG_DEVICE = Toolbox.R_SVG_DEVICE;
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The r_path_to_executable. */
+	private StringFieldEditor r_path_to_executable;
+	
+	/** The r_server_adress. */
+	private StringFieldEditor r_server_adress;
+	private IntegerFieldEditor r_port;
+	
+	/** The r_user. */
+	private StringFieldEditor r_user;
+	
+	/** The r_password. */
+	private StringFieldEditor r_password;
+	
+	/** The r_is_remote. */
+	private BooleanFieldEditor r_is_remote;
+	
+	private BooleanFieldEditor r_debug;
+
+	
+	/** The r_use_file_transfert. */
+	private BooleanFieldEditor r_use_file_transfert;
+	
+	private StringFieldEditor r_svg_device;
+	
+	private StringFieldEditor r_rargs;
+	private StringFieldEditor r_rserveargs;
+
+	/**
+	 * Instantiates a new r preference page.
+	 */
+	public RPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.RPreferencePage_1);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		r_debug = new BooleanFieldEditor(R_DEBUG,
+				Messages.RPreferencePage_0, BooleanFieldEditor.DEFAULT,
+				getFieldEditorParent());
+		addField(r_debug);
+		
+		r_is_remote = new BooleanFieldEditor(R_REMOTE,
+				Messages.RPreferencePage_3, BooleanFieldEditor.DEFAULT,
+				getFieldEditorParent());
+		addField(r_is_remote);
+
+		r_path_to_executable = new FileFieldEditor(R_PATH_TO_EXECUTABLE,
+				Messages.RPreferencePage_2, getFieldEditorParent());
+		addField(r_path_to_executable);
+		
+		r_rargs = new StringFieldEditor(Toolbox.R_RARGS,
+				Messages.RPreferencePage_8, getFieldEditorParent());
+		addField(r_rargs);
+		
+		r_rserveargs = new StringFieldEditor(Toolbox.R_RSERVEARGS,
+				Messages.RPreferencePage_9, getFieldEditorParent());
+		addField(r_rserveargs);
+				
+		r_use_file_transfert = new BooleanFieldEditor(R_FILE_TRANSFERT,
+				Messages.RPreferencePage_7, BooleanFieldEditor.DEFAULT,
+				getFieldEditorParent());
+		addField(r_use_file_transfert);
+
+		r_server_adress = new StringFieldEditor(R_SERVER_ADRESS,
+				Messages.RPreferencePage_4, getFieldEditorParent());
+		addField(r_server_adress);
+		
+		r_port = new IntegerFieldEditor(R_PORT,	Messages.RPreferencePage_1, getFieldEditorParent());
+		addField(r_port);
+
+		r_user = new StringFieldEditor(R_USER, Messages.RPreferencePage_5,
+				getFieldEditorParent());
+		addField(r_user);
+
+		r_password = new StringFieldEditor(R_PASSWORD,
+				Messages.RPreferencePage_6, getFieldEditorParent());
+		addField(r_password);
+		
+//		r_svg_device = new StringFieldEditor(R_SVG_DEVICE, Messages.RPreferencePage_5,
+//				getFieldEditorParent());
+//		addField(r_svg_device);
+
+		Preferences preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE
+				.getNode(Application.PLUGIN_ID);
+		
+		boolean serverIsRemote = preferences.getBoolean(R_REMOTE, false);
+		changeFieldStates(serverIsRemote);
+	}
+	
+	public void changeFieldStates(boolean serverIsRemote) {
+		if (serverIsRemote) {
+			r_server_adress.setEnabled(true, getFieldEditorParent());
+			r_user.setEnabled(true, getFieldEditorParent());
+			r_password.setEnabled(true, getFieldEditorParent());
+			r_port.setEnabled(true, getFieldEditorParent());
+			r_path_to_executable.setEnabled(false, getFieldEditorParent());
+			r_rargs.setEnabled(false, getFieldEditorParent());
+			r_rserveargs.setEnabled(false, getFieldEditorParent());
+			r_use_file_transfert.setEnabled(false, getFieldEditorParent());
+		} else {
+			r_server_adress.setEnabled(false, getFieldEditorParent());
+			r_user.setEnabled(false, getFieldEditorParent());
+			r_password.setEnabled(false, getFieldEditorParent());
+			r_port.setEnabled(false, getFieldEditorParent());
+			r_path_to_executable.setEnabled(true, getFieldEditorParent());
+			r_rargs.setEnabled(true, getFieldEditorParent());
+			r_rserveargs.setEnabled(true, getFieldEditorParent());
+			r_use_file_transfert.setEnabled(true, getFieldEditorParent());
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+	 */
+	@Override
+	public void propertyChange(PropertyChangeEvent event) {
+		if (((FieldEditor) event.getSource()).getPreferenceName().equals(
+				R_REMOTE)) {
+			changeFieldStates((Boolean) event.getNewValue());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+			
+			RWorkspace rw = RWorkspace.getRWorkspaceInstance();
+			if (rw != null)
+				RWorkspace.setUseFileCommunication(TxmPreferences.getBoolean(RPreferencePage.R_FILE_TRANSFERT, false));
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/WordCloudPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/WordCloudPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/WordCloudPreferencePage.java	(revision 122)
@@ -0,0 +1,162 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.functions.classification.CAH;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class WordCloudPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant DISPLAY. */
+	public static final String MAXWORDS = "wordcloud_maxwords"; //$NON-NLS-1$
+	
+	/** The Constant METHOD. */
+	public static final String FMIN = "wordcloud_fmin"; //$NON-NLS-1$
+	
+	/** The Constant METRIC. */
+	public static final String ROT = "wordcloud_rotper"; //$NON-NLS-1$
+	
+	/** The Constant NCLUSTER. */
+	public static final String RANDOMCOLOR = "wordcloud_randomcolor"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.WordCloudPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The defaultdisplay. */
+	private BooleanFieldEditor randomcolors;
+	
+	/** The defaultncluster. */
+	private IntegerFieldEditor maxwords;
+	private IntegerFieldEditor fmin;
+	private IntegerFieldEditor rotper;
+	
+
+
+	/**
+	 * Instantiates a new cAH preference page.
+	 */
+	public WordCloudPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		setTitle(Messages.CAHEditorTitle);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		//set defaults
+		TxmPreferences.set(MAXWORDS, TxmPreferences.getInt(MAXWORDS, 2));
+		TxmPreferences.set(FMIN, TxmPreferences.getInt(FMIN, 2));
+		TxmPreferences.set(ROT, TxmPreferences.getInt(ROT, 10));
+		TxmPreferences.set(RANDOMCOLOR, TxmPreferences.getBoolean(RANDOMCOLOR, false));
+		
+		maxwords = new IntegerFieldEditor(MAXWORDS,
+				Messages.WordCloudPreferencePage_0, getFieldEditorParent());
+		addField(maxwords);
+		
+		fmin = new IntegerFieldEditor(FMIN,
+				Messages.WordCloudPreferencePage_1, getFieldEditorParent());
+		addField(fmin);
+		
+		rotper = new IntegerFieldEditor(ROT,
+				Messages.WordCloudPreferencePage_2, getFieldEditorParent());
+		addField(rotper);
+		
+		randomcolors = new BooleanFieldEditor(RANDOMCOLOR,
+				Messages.WordCloudPreferencePage_3, getFieldEditorParent());
+		addField(randomcolors);
+		
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/WordCloudPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferencePage.java	(revision 122)
@@ -0,0 +1,140 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ScriptPreferencePage.
+ */
+public class ScriptPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant SCRIPT_ROOT_DIR. */
+	public static final String SCRIPT_ROOT_DIR = "script_root_dir"; //$NON-NLS-1$
+	
+	/** The Constant SCRIPT_CURRENT_DIR. */
+	public static final String SCRIPT_CURRENT_DIR = "script_current_dir"; //$NON-NLS-1$
+	
+	/** The Constant NO_SESSION. */
+	public static final String NO_SESSION = "script_nosession"; //$NON-NLS-1$
+	
+	public static final String SAVE_BEFORE_EXECUTION = "script_save_before_execution"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The script root dir. */
+	private DirectoryFieldEditor scriptRootDir;
+	
+	/** The script current dir. */
+	private DirectoryFieldEditor scriptCurrentDir;
+	
+	/** The nosession. */
+	private IntegerFieldEditor nosession;
+	
+	private BooleanFieldEditor save_before_execution;
+
+	/**
+	 * Instantiates a new script preference page.
+	 */
+	public ScriptPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.ScriptPreferencePage_2);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		
+		TxmPreferences.set(NO_SESSION, TxmPreferences.getInt(NO_SESSION, 1));
+		
+		save_before_execution = new BooleanFieldEditor(SAVE_BEFORE_EXECUTION,
+				Messages.ScriptPreferencePage_1, getFieldEditorParent());
+		addField(save_before_execution);
+		
+		nosession = new IntegerFieldEditor(NO_SESSION,
+				Messages.ScriptPreferencePage_0, getFieldEditorParent());
+		addField(nosession);
+		
+		scriptRootDir = new DirectoryFieldEditor(SCRIPT_ROOT_DIR,
+				Messages.ScriptPreferencePage_3, getFieldEditorParent());
+		addField(scriptRootDir);
+		/*
+		scriptCurrentDir = new DirectoryFieldEditor(SCRIPT_CURRENT_DIR,
+				Messages.ScriptPreferencePage_4, getFieldEditorParent());
+		addField(scriptCurrentDir);*/
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferenceInitializer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferenceInitializer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferenceInitializer.java	(revision 122)
@@ -0,0 +1,64 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.txm.rcpapplication.Activator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ConcordancerPreferenceInitializer.
+ */
+public class ConcordancerPreferenceInitializer extends
+		AbstractPreferenceInitializer {
+
+	/** The Constant N_LINE_PER_PAGE_DEFAULT. */
+	public static final int N_LINE_PER_PAGE_DEFAULT = 100;
+	
+	/** The Constant LEFT_CONTEXT_SIZE_DEFAULT. */
+	public static final int LEFT_CONTEXT_SIZE_DEFAULT = 15;
+	
+	/** The Constant RIGHT_CONTEXT_SIZE_DEFAULT. */
+	public static final int RIGHT_CONTEXT_SIZE_DEFAULT = 15;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	@Override
+	public void initializeDefaultPreferences() {
+		Activator a = Activator.getDefault();
+		IPreferenceStore store = a.getPreferenceStore();
+		store.setDefault(ConcordancerPreferencePage.N_LINE_PER_PAGE,
+				N_LINE_PER_PAGE_DEFAULT);
+		store.setDefault(ConcordancerPreferencePage.LEFT_CONTEXT_SIZE,
+				LEFT_CONTEXT_SIZE_DEFAULT);
+		store.setDefault(ConcordancerPreferencePage.RIGHT_CONTEXT_SIZE,
+				RIGHT_CONTEXT_SIZE_DEFAULT);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ConcordancerPreferenceInitializer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferenceInitializer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferenceInitializer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferenceInitializer.java	(revision 122)
@@ -0,0 +1,59 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.txm.rcpapplication.Activator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Class used to initialize default preference values.
+ */
+public class RPreferenceInitializer extends AbstractPreferenceInitializer {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
+	 * initializeDefaultPreferences()
+	 */
+
+	/** The Constant R_DEFAULT_PATH_TO_EXECUTABLE. */
+	public static final String R_DEFAULT_PATH_TO_EXECUTABLE = ""; //default value expected in plugin_customization.ini //$NON-NLS-1$
+	public static final String R_DEFAULT_PORT = "6311"; //default value expected in plugin_customization.ini //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	@Override
+	public void initializeDefaultPreferences() {
+		IPreferenceStore store = Activator.getDefault().getPreferenceStore();
+		store.setDefault(RPreferencePage.R_PORT,R_DEFAULT_PORT);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/RPreferenceInitializer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TXMPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TXMPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TXMPreferencePage.java	(revision 122)
@@ -0,0 +1,284 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Properties;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.equinox.internal.p2.ui.sdk.scheduler.AutomaticUpdatePlugin;
+import org.eclipse.equinox.internal.p2.ui.sdk.scheduler.PreferenceConstants;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.StringButtonFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+import org.txm.rcpapplication.Activator;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TextometriePreferencePage.
+ */
+public class TXMPreferencePage extends FieldEditorPreferencePage
+implements IWorkbenchPreferencePage {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.TXMPreferencePage"; //$NON-NLS-1$
+
+	public static final String AUTO_UPDATE = "auto_update"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	StringButtonFieldEditor buttonExport, buttonImport;
+
+	private BooleanFieldEditor update;
+
+	/**
+	 * Instantiates a new textometrie preference page.
+	 */
+	public TXMPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.TextometriePreferencePage_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+			.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+					.getProperties());
+			
+			// We no more use Eclipse AutomaticUpdatePlugin preference store
+			/*if (update != null) {
+				
+				IPreferenceStore pref = AutomaticUpdatePlugin.getDefault().getPreferenceStore();
+//				System.out.println("before saving: "+pref.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+				pref.setValue(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED, update.getBooleanValue());
+	
+				AutomaticUpdatePlugin.getDefault().savePreferences();
+				AutomaticUpdatePlugin.getDefault().getScheduler().rescheduleUpdate();
+//				System.out.println("context "+AutomaticUpdatePlugin.getDefault().getContext());
+//				System.out.println("Location "+AutomaticUpdatePlugin.getDefault().getStateLocation());
+//				System.out.println("after saving: "+pref.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+			}
+			*/
+			
+		} catch (Exception e) {
+			System.out.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		Group generalGroup = new Group(getFieldEditorParent(), SWT.NONE);
+		generalGroup.setText(Messages.TextometriePreferencePage_1);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
+		gridData.horizontalSpan = 2;
+		generalGroup.setLayoutData(gridData);
+		generalGroup.setLayout(new RowLayout(SWT.VERTICAL));
+
+
+		buttonExport = new StringButtonFieldEditor("export_prefs", "", generalGroup) { //$NON-NLS-1$ //$NON-NLS-2$
+			@Override
+			protected String changePressed() {
+				FileDialog dialog = new FileDialog(new Shell(), SWT.SAVE);
+				if (LastOpened.getFile(ID) != null) {
+					dialog.setFilterPath(LastOpened.getFolder(ID));
+					dialog.setFileName(LastOpened.getFile(ID));
+				}
+				String path = dialog.open();
+				if (path != null) {
+					File export = new File(path);
+					LastOpened.set(ID, export.getParent(), export.getName());
+					FileWriter writer;
+					try {
+						Preferences prefs = Platform.getPreferencesService().getRootNode().node(TxmPreferences.SCOPE); //$NON-NLS-1$
+//						writer = new FileWriter(export);
+//						Properties txmprops = org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+//								.getProperties();
+//						Set<Object> tbxKeys = txmprops.keySet();
+//
+//						TxmPreferences.set("software", "TXM"); //$NON-NLS-1$ //$NON-NLS-2$
+//						org.osgi.framework.Version v = Activator.getDefault().getBundle().getVersion();
+//						TxmPreferences.set("version", v.toString()); //$NON-NLS-1$
+//
+//						// write props for the TBX
+//						for(Object prop : txmprops.keySet()) {
+//							writer.write(""+prop+"="+txmprops.get(prop)+"\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+//						}
+//						writer.write("\n"); //$NON-NLS-1$
+//						// write RCP props
+//						
+//						for (String child : prefs.childrenNames()) {
+//							Preferences childNode = prefs.node(child);
+//							for (String key : childNode.keys()) {
+//								if (!tbxKeys.contains(key)) {
+//									Object value = childNode.get(key, null);
+//									if (value != null)
+//										writer.write(""+key+"="+value+"\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+//								}
+//							}
+//						}
+//						writer.close();
+
+						IPreferencesService service = Platform.getPreferencesService();
+						service.exportPreferences((IEclipsePreferences) prefs,new BufferedOutputStream(new FileOutputStream(export)), null);
+						System.out.println(Messages.TextometriePreferencePage_14+export);
+					} catch (IOException e) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+//					} catch (BackingStoreException e) {
+//						// TODO Auto-generated catch block
+//						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} catch (CoreException e) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				return path;
+			}
+		};
+		buttonExport.setChangeButtonText(Messages.TextometriePreferencePage_15);
+		addField(buttonExport);
+
+		buttonImport = new StringButtonFieldEditor("import_prefs", "", generalGroup) { //$NON-NLS-1$ //$NON-NLS-2$
+			@Override
+			protected String changePressed() {
+				FileDialog dialog = new FileDialog(new Shell(), SWT.OPEN);
+				if (LastOpened.getFile(ID) != null) {
+					dialog.setFilterPath(LastOpened.getFolder(ID));
+					dialog.setFileName(LastOpened.getFile(ID));
+				}
+				String path = dialog.open();
+				if (path != null) {
+					File export = new File(path);
+					LastOpened.set(ID, export);
+					IPreferencesService service = Platform.getPreferencesService();
+					
+					//Preferences prefs = service.getRootNode().node("configuration");
+					try {
+						service.importPreferences(new FileInputStream(export));
+						System.out.println(Messages.TextometriePreferencePage_18+export);
+						System.out.println(Messages.TextometriePreferencePage_19);
+						performOk();
+
+						Composite composite = TXMPreferencePage.this.getControl().getParent();
+						composite.getShell().close();
+					} catch (FileNotFoundException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} catch (CoreException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				return path;
+			}
+		};
+		buttonImport.setChangeButtonText(Messages.TextometriePreferencePage_20);
+		addField(buttonImport);
+
+		// disable if expert user
+		if (!TxmPreferences.getBoolean(AdvancePreferencePage.EXPERT_USER, false)) {
+			Group updateGroup = new Group(getFieldEditorParent(), SWT.NONE);
+			updateGroup.setText(Messages.TextometriePreferencePage_2);
+			GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false);
+			gridData2.horizontalSpan = 2;
+			gridData2.verticalIndent = 10;
+			updateGroup.setLayoutData(gridData2);
+			updateGroup.setLayout(new RowLayout(SWT.VERTICAL));
+			
+			//System.out.println(AutomaticUpdatePlugin.getDefault().getStateLocation());
+			final IPreferenceStore updatePrefStore = AutomaticUpdatePlugin.getDefault().getPreferenceStore();
+			update = new BooleanFieldEditor(AUTO_UPDATE,
+					Messages.TextometriePreferencePage_0, updateGroup);
+			
+			//update.setPreferenceStore(updatePrefStore);
+			//boolean enabled = updatePrefStore.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED);
+//			System.out.println("before load: "+updatePrefStore.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+			//update.load();
+//			System.out.println("after 1st load: "+updatePrefStore.getBoolean(PreferenceConstants.PREF_AUTO_UPDATE_ENABLED));
+			addField(update);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TXMPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AnnotationPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AnnotationPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AnnotationPreferencePage.java	(revision 122)
@@ -0,0 +1,146 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcp.chartsengine.base.messages.___SWTComponentsProviderMessages;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class AnnotationPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant DISPLAY. */
+	public static final String MODE = "annotation_mode"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.AnnotationPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	//private BooleanFieldEditor mode_expert;
+	private RadioGroupFieldEditor mode_annotation;
+
+	/**
+	 * Instantiates a new cAH preference page.
+	 */
+	public AnnotationPreferencePage() {
+		super(GRID);
+		
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		setTitle("Annotation");
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		/*BooleanFieldEditor mode_expert = new BooleanFieldEditor(MODE,
+				Messages.AnnotationPreferences_0, getFieldEditorParent());	
+		addField(mode_expert);*/
+		
+		String[][] labelAndValues = {
+				{Messages.AnnotationPreferences_1, "simple"},
+				{Messages.AnnotationPreferences_2, "advanced"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		
+		mode_annotation = new RadioGroupFieldEditor(MODE, Messages.AnnotationPreferences_0, 2, labelAndValues, getFieldEditorParent());
+		addField(mode_annotation);
+		//mode_annotation.setPreferenceStore(store);
+		
+	}
+
+	
+	
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the behaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/AnnotationPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ImportPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ImportPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ImportPreferencePage.java	(revision 122)
@@ -0,0 +1,216 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ExportPreferencePage.
+ */
+public class ImportPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant EXPORT_ENCODING. */
+	public static final String METADATA_ENCODING = Toolbox.METADATA_ENCODING;
+
+	/** The Constant EXPORT_COLSEPARATOR. */
+	public static final String METADATA_COLSEPARATOR = Toolbox.METADATA_COLSEPARATOR;
+	
+	/** The Constant EXPORT_TXTSEPARATOR. */
+	public static final String METADATA_TXTSEPARATOR = Toolbox.METADATA_TXTSEPARATOR;
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.ImportPreferencePage"; //$NON-NLS-1$
+
+	public static final String DEFAULT_LANG = "default_clipboard_lang"; //$NON-NLS-1$
+
+	public static String CQP_EMPTY_VALUE_CODE = Toolbox.CQP_EMPTY_VALUE_CODE;
+	
+	/** The encoding. */
+	private ComboFieldEditor encoding;
+	
+	/** The colseparators. */
+	private ComboFieldEditor colseparators;
+	
+	/** The txtseparators. */
+	private ComboFieldEditor txtseparators;
+	
+	private StringFieldEditor defaultlang;
+	
+	private StringFieldEditor empty_code;
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/**
+	 * Instantiates a new export preference page.
+	 */
+	public ImportPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.ExportPreferencePage_1);
+		setTitle(Messages.ExportPreferencePage_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		Set<String> encodings = java.nio.charset.Charset.availableCharsets()
+				.keySet();
+		String[][] values = new String[encodings.size()][2];
+		int i = 0;
+		for (String s : encodings) {
+			values[i][0] = values[i][1] = s;
+			i++;
+		}
+
+		if (TxmPreferences.get(METADATA_ENCODING) == null)
+			TxmPreferences.set(METADATA_ENCODING, "UTF-8"); //$NON-NLS-1$
+		if (TxmPreferences.get(METADATA_COLSEPARATOR) == null)
+			TxmPreferences.set(METADATA_COLSEPARATOR, ","); //$NON-NLS-1$
+//		if (TxmPreferences.get(METADATA_TXTSEPARATOR) == null) {
+//			System.out.println("SET DEFAULT VALUE FOR METADATA_TEXTSEPARATOR");
+//			TxmPreferences.set(METADATA_TXTSEPARATOR, "\""); //$NON-NLS-1$
+//		}
+
+		Group csvMetadataGroup = new Group(getFieldEditorParent(), SWT.NONE);
+		csvMetadataGroup.setText(Messages.ImportPreferencePage_2);
+		GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false);
+		gridData2.horizontalSpan = 3;
+		gridData2.verticalIndent = 10;
+		csvMetadataGroup.setLayoutData(gridData2);
+//		RowLayout rlayout = new RowLayout(SWT.VERTICAL);
+//		rlayout.marginHeight = 150;
+//		rlayout.marginLeft = 150;
+//		rlayout.marginTop = 150;
+//		rlayout.marginRight = 150;
+//		rlayout.marginBottom = 150;
+		GridLayout gridlayout = new GridLayout(3, false);
+		gridlayout.marginWidth = 3;
+		csvMetadataGroup.setLayout(gridlayout);
+		
+		
+		encoding = new ComboFieldEditor(METADATA_ENCODING,
+				Messages.ImportPreferencePage_0, values, csvMetadataGroup);
+		addField(encoding);
+		
+		String[][] cols = {{"TAB","\t"}, {",", ","}, {";", ";"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		String txts[][] = {{"none", ""}, {"\"", "\""}, {"'", "'"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		colseparators = new ComboFieldEditor(METADATA_COLSEPARATOR,
+				Messages.ExportPreferencePage_18, cols, csvMetadataGroup);
+		addField(colseparators);
+
+		txtseparators = new ComboFieldEditor(METADATA_TXTSEPARATOR,
+				Messages.ExportPreferencePage_19, txts, csvMetadataGroup);
+		addField(txtseparators);
+		
+		Group langGroup = new Group(getFieldEditorParent(), SWT.NONE);
+		langGroup.setText(Messages.ImportPreferencePage_3);
+		gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false);
+		gridData2.horizontalSpan = 3;
+		gridData2.verticalIndent = 10;
+		langGroup.setLayoutData(gridData2);
+		RowLayout rlayout = new RowLayout(SWT.VERTICAL);
+		rlayout.marginHeight = 5;
+		langGroup.setLayout(rlayout);
+		
+		defaultlang = new StringFieldEditor(DEFAULT_LANG,
+				Messages.ImportPreferencePage_4, langGroup);
+		defaultlang.setEmptyStringAllowed(false);
+		
+		Label l = new Label(langGroup, SWT.NONE);
+		l.setText(Messages.ImportPreferencePage_5);
+		GridData ldata = new GridData(SWT.FILL, SWT.FILL, true, false);
+		ldata.horizontalSpan = 3;
+		l.setLayoutData(ldata);
+		addField(defaultlang);
+		
+		empty_code = new StringFieldEditor(CQP_EMPTY_VALUE_CODE,
+				"Empty property value code", getFieldEditorParent());
+		addField(empty_code);
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());			
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ImportPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferenceInitializer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferenceInitializer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferenceInitializer.java	(revision 122)
@@ -0,0 +1,60 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Activator;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ScriptPreferenceInitializer.
+ */
+public class ScriptPreferenceInitializer extends AbstractPreferenceInitializer {
+	
+	/** The txmhome. */
+	static String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+	
+	/** The Constant SCRIPT_ROOT_DIR_DEFAULT. */
+	public static final String SCRIPT_ROOT_DIR_DEFAULT = txmhome + File.separator + File.separator + "scripts"; //$NON-NLS-1$ 
+
+	/** The Constant SCRIPT_CURRENT_DIR_DEFAULT. */
+	public static final String SCRIPT_CURRENT_DIR_DEFAULT = txmhome + File.separator + "scripts"; //$NON-NLS-1$ 
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	@Override
+	public void initializeDefaultPreferences() {
+		Activator a = Activator.getDefault();
+		a.getPreferenceStore();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ScriptPreferenceInitializer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/UserPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/UserPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/UserPreferencePage.java	(revision 122)
@@ -0,0 +1,131 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class UserPreferencePage.
+ */
+public class UserPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.UserPreferencePage"; //$NON-NLS-1$
+	
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The Constant USER_ALERT_DELETE. */
+	public static final String USER_ALERT_DELETE = "user_alert_delete"; //$NON-NLS-1$
+	
+	public static final String AUTO_UPDATE_EDITOR = "auto_update_editor"; //$NON-NLS-1$
+	
+	/** The Constant PROPERTY_SEPARATOR. */
+	public static final String PROPERTY_SEPARATOR = "property_separator"; //$NON-NLS-1$
+
+	/** The alert_delete. */
+	private BooleanFieldEditor alert_delete;
+	private BooleanFieldEditor auto_update_editor;
+
+	/**
+	 * Instantiates a new user preference page.
+	 */
+	public UserPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		setTitle(Messages.UserPreferencePage_0);
+		//setDescription(Messages.UserPreferencePage_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			// System.out.println("User ok");
+			// System.out.println(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+		}
+		return super.performOk();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		alert_delete = new BooleanFieldEditor(USER_ALERT_DELETE,
+				Messages.UserPreferencePage_3,
+				BooleanFieldEditor.SEPARATE_LABEL, getFieldEditorParent());
+		addField(alert_delete);
+		
+		auto_update_editor = new BooleanFieldEditor(AUTO_UPDATE_EDITOR,
+				Messages.UserPreferencePage_1,
+				BooleanFieldEditor.SEPARATE_LABEL, getFieldEditorParent());
+		addField(auto_update_editor);
+		
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/UserPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ReferencerPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ReferencerPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ReferencerPreferencePage.java	(revision 122)
@@ -0,0 +1,126 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class ReferencerPreferencePage extends FieldEditorPreferencePage
+		implements IWorkbenchPreferencePage {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.ReferencerPreferencePage"; //$NON-NLS-1$
+	
+	/** The Constant SORTBYFREQ. */
+	public static final String SORTBYFREQ = "referencer_sorttype"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The referencer_sorttype. */
+	private BooleanFieldEditor referencer_sorttype;
+
+	/**
+	 * Instantiates a new referencer preference page.
+	 */
+	public ReferencerPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.DiagnosticPreferencePage_1);
+		setTitle(Messages.ReferencerPreferencePage_2);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		referencer_sorttype = new BooleanFieldEditor(SORTBYFREQ,
+				Messages.ReferencerPreferencePage_3, getFieldEditorParent());
+		
+		addField(referencer_sorttype);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ReferencerPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/OpenPathFromPreferenceFieldEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/OpenPathFromPreferenceFieldEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/OpenPathFromPreferenceFieldEditor.java	(revision 122)
@@ -0,0 +1,73 @@
+package org.txm.rcpapplication.preferences;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.rcpapplication.TxmPreferences;
+
+public class OpenPathFromPreferenceFieldEditor extends BooleanFieldEditor {
+	private Button theCheckBox;
+	String preferenceName;
+	public OpenPathFromPreferenceFieldEditor(String name, String title, Composite parent, String preferencename) {
+		super(name, title, parent);
+		this.preferenceName = preferencename;
+	}
+
+	/**
+	 * Returns the change button for this field editor.
+	 * 
+	 * @param parent
+	 *            The Composite to create the receiver in.
+	 * 
+	 * @return the change button
+	 */
+	@Override
+	protected Button getChangeControl(Composite parent) {
+		
+		if (theCheckBox == null) {
+			theCheckBox = super.getChangeControl(parent);
+			theCheckBox.dispose();
+			theCheckBox = new Button(parent, SWT.PUSH | SWT.LEFT);
+			theCheckBox.setFont(parent.getFont());
+			theCheckBox.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
+					try {
+						String path = TxmPreferences.get(preferenceName);
+						if (path == null | path.length() == 0) {
+							System.out.println(preferenceName+" preference is not set.");
+							return;
+						}
+						File dir = new File(path);
+						if (dir.exists()) {
+							desktop.open(dir);
+						} else {
+							System.out.println("Cannot open: "+dir);
+						}
+					} catch (IOException e1) {
+						// TODO Auto-generated catch block
+						e1.printStackTrace();
+					}
+				}
+			});
+			theCheckBox.addDisposeListener(new DisposeListener() {
+				@Override
+				public void widgetDisposed(DisposeEvent event) {
+					theCheckBox = null;
+				}
+			});
+		} else {
+			checkParent(theCheckBox, parent);
+		}
+		return theCheckBox;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/OpenPathFromPreferenceFieldEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ExportPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ExportPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ExportPreferencePage.java	(revision 122)
@@ -0,0 +1,217 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+import java.util.Set;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.awt.SWT_AWT;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.core.chartsengine.r.__RDevice;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.stat.engine.r.RWorkspace;
+import org.txm.stat.engine.r.RWorkspaceException;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ExportPreferencePage.
+ */
+public class ExportPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant EXPORT_SHOW. */
+	public static final String EXPORT_SHOW = "export_show"; //$NON-NLS-1$
+	
+	/** The Constant EXPORT_ENCODING. */
+	public static final String EXPORT_ENCODING = "export_encoding"; //$NON-NLS-1$
+	
+	/** The Constant RDEVICE. */
+	public static final String RDEVICE = "export_rdevice"; //$NON-NLS-1$
+	
+	/** The Constant EXPORT_COLSEPARATOR. */
+	public static final String EXPORT_COLSEPARATOR = "export_colseparator"; //$NON-NLS-1$
+	
+	/** The Constant EXPORT_TXTSEPARATOR. */
+	public static final String EXPORT_TXTSEPARATOR = "export_txtseparator"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.ExportPreferencePage"; //$NON-NLS-1$
+	
+	
+
+	/** The show_export. */
+	private BooleanFieldEditor show_export;
+	
+	/** The encoding. */
+	private ComboFieldEditor encoding;
+	
+	/** The colseparators. */
+	private ComboFieldEditor colseparators;
+	
+	/** The txtseparators. */
+	private ComboFieldEditor txtseparators;
+	
+	/** The devices. */
+	private ComboFieldEditor devices;
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/**
+	 * Instantiates a new export preference page.
+	 */
+	public ExportPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.ExportPreferencePage_1);
+		setTitle(Messages.ExportPreferencePage_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		Set<String> encodings = java.nio.charset.Charset.availableCharsets()
+				.keySet();
+		String[][] values = new String[encodings.size()][2];
+		int i = 0;
+		for (String s : encodings) {
+			values[i][0] = values[i][1] = s;
+			i++;
+		}
+
+		if (TxmPreferences.get(EXPORT_ENCODING) == null)
+			TxmPreferences.set(EXPORT_ENCODING, System
+					.getProperty("file.encoding")); //$NON-NLS-1$
+		if (TxmPreferences.get(EXPORT_COLSEPARATOR) == null)
+			TxmPreferences.set(EXPORT_COLSEPARATOR, ","); //$NON-NLS-1$
+		if (TxmPreferences.get(EXPORT_TXTSEPARATOR) == null)
+			TxmPreferences.set(EXPORT_TXTSEPARATOR, "\""); //$NON-NLS-1$
+		
+
+		encoding = new ComboFieldEditor(EXPORT_ENCODING,
+				Messages.ExportPreferencePage_3, values, getFieldEditorParent());
+		addField(encoding);
+		
+		String[][] cols = {{"\t","\t"}, {",", ","}, {";", ";"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		String txts[][] = {{"", ""}, {"\"", "\""}, {"'", "'"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+		colseparators = new ComboFieldEditor(EXPORT_COLSEPARATOR,
+				Messages.ExportPreferencePage_18, cols, getFieldEditorParent());
+		addField(colseparators);
+		
+		
+		txtseparators = new ComboFieldEditor(EXPORT_TXTSEPARATOR,
+				Messages.ExportPreferencePage_19, txts, getFieldEditorParent());
+		addField(txtseparators);
+
+		show_export = new BooleanFieldEditor(EXPORT_SHOW,
+				Messages.ExportPreferencePage_4,
+				BooleanFieldEditor.SEPARATE_LABEL, getFieldEditorParent());
+		
+		
+		
+		// Default charts export format
+		String[][] devicesvalues = new String[SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().size()][2];
+		for(int j = 0; j < SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().size(); j++) {
+			devicesvalues[j][0] = devicesvalues[j][1] = SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().get(j);
+		}
+		// FIXME : rename the preference "RDEVICE" and store it at charts engine level
+		// FIXME : change the Messages.ExportPreferencePage_21 message to "Default chart export file format", "Format de fichier d'export des graphiques par défaut", todo : russian
+		if(SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().size() > 0)	{
+			String defaultdevice = TxmPreferences.get(RDEVICE);
+			if (defaultdevice == null)	{
+				TxmPreferences.set(RDEVICE, SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().get(0));
+			}
+		}
+
+		
+		devices = new ComboFieldEditor(RDEVICE, Messages.ExportPreferencePage_21, devicesvalues, getFieldEditorParent());
+
+		
+		addField(show_export);
+		addField(devices);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			
+			// System.out.println("Locale ok");
+			// System.out.println(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+
+			org.txm.Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+			
+			// FIXME : to remove when  charts engine will be validated
+			// FIXME : became useless since we use the chart editors export capabilities
+//			RWorkspace rw = RWorkspace.getRWorkspaceInstance();
+//			if (rw != null)
+//				rw.setDefaultGraphicDevice(RDevice.valueOf(TxmPreferences.get(RDEVICE)));
+			
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+			// FIXME : to remove when  charts engine will be validated
+//		} catch (RWorkspaceException e) {
+//			// TODO Auto-generated catch block
+//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/ExportPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Preferences page used by TXM</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAPreferencePage.java	(revision 122)
@@ -0,0 +1,303 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class CAPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant FMIN. */
+	public static final String FMIN = "ca_lt_fmin"; //$NON-NLS-1$
+	public static final String VMAX = "ca_lt_vmax"; //$NON-NLS-1$
+
+	/** The Constant SHOWINDIVIDUALS. */
+	public static final String SHOWINDIVIDUALS = "ca_show_individuals"; //$NON-NLS-1$
+
+	/** The Constant SHOWVARIABLES. */
+	public static final String SHOWVARIABLES = "ca_show_variables"; //$NON-NLS-1$
+
+	/** The Constant QUALITYDISPLAY. */
+	public static final String QUALITYDISPLAY = "ca_quality_display"; //$NON-NLS-1$
+
+	/** The Constant CONTRIBDISPLAY. */
+	public static final String CONTRIBDISPLAY = "ca_contrib_display"; //$NON-NLS-1$
+
+	/** The Constant MASSDISPLAY. */
+	public static final String MASSDISPLAY = "ca_mass_display"; //$NON-NLS-1$
+
+	/** The Constant DISTDISPLAY. */
+	public static final String DISTDISPLAY = "ca_dist_display"; //$NON-NLS-1$
+
+	/** The Constant COS2DISPLAY. */
+	public static final String COS2DISPLAY = "ca_cos2_display"; //$NON-NLS-1$
+
+	/** The Constant COORDDISPLAY. */
+	public static final String COORDDISPLAY = "ca_coord_display"; //$NON-NLS-1$
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.CAPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The fmin preference field. */
+	public IntegerFieldEditor fmin;
+	public IntegerFieldEditor vmax;
+
+	/** The show variables preference field. */
+	private BooleanFieldEditor showVariables;
+
+	/** The show individuals preference field. */
+	private BooleanFieldEditor showIndividuals;
+
+	/** The quality display preference field. */
+	private StringFieldEditor qualityDisplay;
+
+	/** The contrib display preference field. */
+	private StringFieldEditor contribDisplay;
+
+	/** The mass display preference field. */
+	private StringFieldEditor massDisplay;
+
+	/** The dist display preference field. */
+	private StringFieldEditor distDisplay;
+
+	/** The cos2 display. */
+	private StringFieldEditor cos2Display;
+
+	/** The coord display preference field. */
+	private StringFieldEditor coordDisplay;
+
+	/**
+	 * Instantiates a new CA preference page.
+	 */
+	public CAPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.CorrespondanceAnalysisEditorInput_10);
+		setTitle(Messages.CorrespondanceAnalysisEditorInput_10);
+
+		if (TxmPreferences.getInt(FMIN, -1) <= 0)
+			TxmPreferences.set(FMIN, 10);
+		if (TxmPreferences.getInt(VMAX, -1) <= 0)
+			TxmPreferences.set(VMAX,200);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		Group ltGroup = new Group(getFieldEditorParent(), SWT.NONE);
+		ltGroup.setText(Messages.CAPreferencePage_2);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, false);
+		gridData.horizontalSpan = 2;
+		gridData.verticalIndent = 10;
+		ltGroup.setLayoutData(gridData);
+
+		fmin = new IntegerFieldEditor(FMIN,
+				Messages.LexicalTablePreferencePage_1, ltGroup);
+		addField(fmin);
+
+		vmax = new IntegerFieldEditor(VMAX,
+				Messages.LexicalTableEditor_8, ltGroup);
+		addField(vmax);
+
+		qualityDisplay = new StringFieldEditor(QUALITYDISPLAY,
+				Messages.CAPreferencePage_0, getFieldEditorParent());
+		addField(qualityDisplay);
+
+		contribDisplay = new StringFieldEditor(CONTRIBDISPLAY,
+				Messages.CAPreferencePage_1, getFieldEditorParent());
+		addField(contribDisplay);
+
+		massDisplay = new StringFieldEditor(MASSDISPLAY,
+				Messages.CAPreferencePage_5, getFieldEditorParent());
+		addField(massDisplay);
+
+		distDisplay = new StringFieldEditor(DISTDISPLAY,
+				Messages.CAPreferencePage_6, getFieldEditorParent());
+		addField(distDisplay);
+
+		cos2Display = new StringFieldEditor(COS2DISPLAY,
+				Messages.CAPreferencePage_7, getFieldEditorParent());
+		addField(cos2Display);
+
+		coordDisplay = new StringFieldEditor(COORDDISPLAY,
+				Messages.CAPreferencePage_8, getFieldEditorParent());
+		addField(coordDisplay);
+
+
+		// Charts rendering
+		Group chartsGroup = SWTChartsComponentsProvider.createChartsRenderingPreferencesGroup(getFieldEditorParent());
+
+		// FIXME : these 2 preferences should be renamed and moved to charts engine preference level (associated messages too)
+		showIndividuals = new BooleanFieldEditor(SHOWINDIVIDUALS, Messages.CAPreferencePage_3, chartsGroup);
+		addField(showIndividuals);
+
+		showVariables = new BooleanFieldEditor(SHOWVARIABLES, Messages.CAPreferencePage_4, chartsGroup);
+		addField(showVariables);
+
+	}
+
+	
+//	@Override
+//	public void createFieldEditors() {
+//
+//		
+//		// FIXME: tabbed preferences page test
+//		
+//		TabFolder tabFolder = new TabFolder(this.getFieldEditorParent(), SWT.TOP);
+//		tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+//		
+//		TabItem tabItem = new TabItem(tabFolder, SWT.NULL);
+//		tabItem.setText("Table lexicale");
+//		Composite composite1 = new Composite(tabFolder, SWT.NULL);
+//		tabItem.setControl(composite1);
+//		fmin = new IntegerFieldEditor(FMIN, Messages.LexicalTablePreferencePage_1, composite1);
+//		addField(fmin);
+//		vmax = new IntegerFieldEditor(VMAX, Messages.LexicalTableEditor_8, composite1);
+//		addField(vmax);
+//
+//		
+//		TabItem tabItem2 = new TabItem(tabFolder, SWT.NULL);
+//		tabItem2.setText("Calcul");
+//		Composite composite2 = new Composite(tabFolder, SWT.NULL);
+//		tabItem2.setControl(composite2);
+//		qualityDisplay = new StringFieldEditor(QUALITYDISPLAY,
+//				Messages.CAPreferencePage_0, composite2);
+//		addField(qualityDisplay);
+//
+//		contribDisplay = new StringFieldEditor(CONTRIBDISPLAY,
+//				Messages.CAPreferencePage_1, composite2);
+//		addField(contribDisplay);
+//
+//		massDisplay = new StringFieldEditor(MASSDISPLAY,
+//				Messages.CAPreferencePage_5, composite2);
+//		addField(massDisplay);
+//
+//		distDisplay = new StringFieldEditor(DISTDISPLAY,
+//				Messages.CAPreferencePage_6, composite2);
+//		addField(distDisplay);
+//
+//		cos2Display = new StringFieldEditor(COS2DISPLAY,
+//				Messages.CAPreferencePage_7, composite2);
+//		addField(cos2Display);
+//
+//		coordDisplay = new StringFieldEditor(COORDDISPLAY,
+//				Messages.CAPreferencePage_8, composite2);
+//		addField(coordDisplay);
+//
+//
+//		// Charts rendering
+//		TabItem tabItem3 = new TabItem(tabFolder, SWT.NULL);
+//		tabItem3.setText("Graphiques");
+//		Composite composite3 = new Composite(tabFolder, SWT.NULL);
+//		tabItem3.setControl(composite3);
+//
+//		// FIXME : these 2 preferences should be renamed and moved to charts engine preference level (associated messages too)
+//		showIndividuals = new BooleanFieldEditor(SHOWINDIVIDUALS, Messages.CAPreferencePage_3, composite3);
+//		addField(showIndividuals);
+//
+//		showVariables = new BooleanFieldEditor(SHOWVARIABLES, Messages.CAPreferencePage_4, composite3);
+//		addField(showVariables);
+//
+//	}
+
+	
+
+	
+	
+	
+	
+	
+	/*
+	 * (non-Javadoc)
+	 *
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferencePage.java	(revision 122)
@@ -0,0 +1,307 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.FileFieldEditor;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.osgi.service.prefs.Preferences;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class CQPPreferencePage extends FieldEditorPreferencePage implements
+IWorkbenchPreferencePage {
+
+	/** The Constant CQI_NETWORK_MODE. */
+	public static final String CQI_NETWORK_MODE = Toolbox.CQI_NETWORK_MODE; 
+
+	/** The Constant CQI_SERVER_IS_REMOTE. */
+	public static final String CQI_SERVER_IS_REMOTE = Toolbox.CQI_SERVER_IS_REMOTE; 
+
+	/** The Constant CQI_SERVER_HOST. */
+	public static final String CQI_SERVER_HOST = Toolbox.CQI_SERVER_HOST; 
+
+	/** The Constant CQI_SERVER_PORT. */
+	public static final String CQI_SERVER_PORT = Toolbox.CQI_SERVER_PORT; 
+
+	/** The Constant CQI_SERVER_LOGIN. */
+	public static final String CQI_SERVER_LOGIN = Toolbox.CQI_SERVER_LOGIN; 
+
+	/** The Constant CQI_SERVER_PASSWORD. */
+	public static final String CQI_SERVER_PASSWORD = Toolbox.CQI_SERVER_PASSWORD; 
+
+	/** The Constant CQI_SERVER_PATH_TO_EXECUTABLE. */
+	public static final String CQI_SERVER_PATH_TO_EXECUTABLE = Toolbox.CQI_SERVER_PATH_TO_EXECUTABLE; 
+	public static final String CQI_SERVER_PATH_TO_CQPLIB = Toolbox.CQI_SERVER_PATH_TO_CQPLIB; 
+
+	/** The Constant CQI_SERVER_PATH_TO_REGISTRY. */
+	//public static final String CQI_SERVER_PATH_TO_REGISTRY = Toolbox.CQI_SERVER_PATH_TO_REGISTRY; 
+
+	/** The Constant CQI_SERVER_PATH_TO_INIT_FILE. */
+	public static final String CQI_SERVER_PATH_TO_INIT_FILE = Toolbox.CQI_SERVER_PATH_TO_INIT_FILE; 
+
+	/** The Constant CQI_SERVER_ADDITIONAL_OPTIONS. */
+	public static final String CQI_SERVER_ADDITIONAL_OPTIONS = Toolbox.CQI_SERVER_ADDITIONAL_OPTIONS; 
+
+	/** The preferences. */
+	public ScopedPreferenceStore preferences;
+
+	/** The cqi_server_is_remote. */
+	private BooleanFieldEditor cqi_use_network;
+
+	/** The cqi_server_is_remote. */
+	private BooleanFieldEditor cqi_server_is_remote;
+
+	/** The cqi_server_host. */
+	private StringFieldEditor cqi_server_host;
+
+	/** The cqi_server_path_to_executable. */
+	private StringFieldEditor cqi_server_path_to_executable;
+	private StringFieldEditor cqi_server_path_to_cqplib;
+
+//	/** The cqi_server_path_to_registry. */
+//	private StringFieldEditor cqi_server_path_to_registry;
+
+	/** The cqi_server_path_to_init_file. */
+	private StringFieldEditor cqi_server_path_to_init_file;
+
+	/** The cqi_server_additional_options. */
+	private StringFieldEditor cqi_server_additional_options;
+
+	/** The cqi_server_path_to_registry. */
+	private StringFieldEditor cqi_server_port;
+
+	/** The cqi_server_path_to_init_file. */
+	private StringFieldEditor cqi_server_user;
+
+	/** The cqi_server_additional_options. */
+	private StringFieldEditor cqi_server_password;
+
+	/**
+	 * Instantiates a new cQP preference page.
+	 */
+	public CQPPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.CQPPreferencePage_0);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		cqi_use_network = new BooleanFieldEditor(CQI_NETWORK_MODE,
+				Messages.CQPPreferencePage_1,
+				BooleanFieldEditor.DEFAULT, getFieldEditorParent());
+		cqi_server_path_to_cqplib = new DirectoryFieldEditor(
+				CQI_SERVER_PATH_TO_CQPLIB, Messages.CQPPreferencePage_0,
+				getFieldEditorParent());
+		cqi_server_is_remote = new BooleanFieldEditor(CQI_SERVER_IS_REMOTE,
+				Messages.CQPPreferencePage_10,
+				BooleanFieldEditor.DEFAULT, getFieldEditorParent());
+		cqi_server_host = new StringFieldEditor(CQI_SERVER_HOST,
+				Messages.CQPPreferencePage_11, getFieldEditorParent());
+
+		cqi_server_port = new IntegerFieldEditor(CQI_SERVER_PORT,
+				Messages.CQPPreferencePage_12, getFieldEditorParent());
+
+		cqi_server_user = new StringFieldEditor(CQI_SERVER_LOGIN,
+				Messages.CQPPreferencePage_13, getFieldEditorParent());
+
+		cqi_server_password = new StringFieldEditor(CQI_SERVER_PASSWORD,
+				Messages.CQPPreferencePage_14, getFieldEditorParent());
+
+		cqi_server_path_to_executable = new FileFieldEditor(
+				CQI_SERVER_PATH_TO_EXECUTABLE, Messages.CQPPreferencePage_15,
+				getFieldEditorParent());
+
+//		cqi_server_path_to_registry = new DirectoryFieldEditor(
+//				CQI_SERVER_PATH_TO_REGISTRY, Messages.CQPPreferencePage_16,
+//				getFieldEditorParent());
+		cqi_server_path_to_init_file = new FileFieldEditor(
+				CQI_SERVER_PATH_TO_INIT_FILE, Messages.CQPPreferencePage_17,
+				getFieldEditorParent());
+		cqi_server_additional_options = new StringFieldEditor(
+				CQI_SERVER_ADDITIONAL_OPTIONS, Messages.CQPPreferencePage_18,
+				getFieldEditorParent());
+
+		addField(cqi_use_network);
+		addField(cqi_server_path_to_cqplib);
+		addField(cqi_server_is_remote);
+		addField(cqi_server_host);
+		addField(cqi_server_port);
+		addField(cqi_server_user);
+		addField(cqi_server_password);
+		addField(cqi_server_path_to_executable);
+//		addField(cqi_server_path_to_registry);
+		addField(cqi_server_path_to_init_file);
+		addField(cqi_server_additional_options);
+
+		Preferences preferences = org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE.getNode(Application.PLUGIN_ID);
+		boolean useNetwork = preferences.getBoolean(
+				CQPPreferencePage.CQI_NETWORK_MODE,
+				false);
+		boolean serverIsRemote = preferences.getBoolean(
+				CQPPreferencePage.CQI_SERVER_IS_REMOTE,
+				CQPPreferenceInitializer.CQI_DEFAULT_SERVER_IS_REMOTE);
+		updateFieldsState(useNetwork, serverIsRemote);
+
+	}
+
+	public void updateFieldsState(boolean useNetwork, boolean serverIsRemote) {
+
+		//System.out.println("update field state : "+useNetwork+" "+serverIsRemote);
+
+		if (useNetwork) {
+			if (serverIsRemote) {
+				(cqi_server_path_to_cqplib).setEnabled(false, getFieldEditorParent());
+				(cqi_server_is_remote).setEnabled(true, getFieldEditorParent());
+				(cqi_server_host).setEnabled(true, getFieldEditorParent());
+				(cqi_server_port).setEnabled(true, getFieldEditorParent());
+				(cqi_server_user).setEnabled(true, getFieldEditorParent());
+				(cqi_server_password).setEnabled(true, getFieldEditorParent());
+				(cqi_server_path_to_executable).setEnabled(false, getFieldEditorParent());
+//				(cqi_server_path_to_registry).setEnabled(false, getFieldEditorParent());
+				(cqi_server_path_to_init_file).setEnabled(false, getFieldEditorParent());
+				(cqi_server_additional_options).setEnabled(true, getFieldEditorParent());
+			} else {
+				//cqi_server_host.loadDefault();
+				(cqi_server_path_to_cqplib).setEnabled(false, getFieldEditorParent());
+				(cqi_server_is_remote).setEnabled(true, getFieldEditorParent());
+				(cqi_server_host).setEnabled(false, getFieldEditorParent());
+				(cqi_server_port).setEnabled(true, getFieldEditorParent());
+				(cqi_server_user).setEnabled(true, getFieldEditorParent());
+				(cqi_server_password).setEnabled(true, getFieldEditorParent());
+				(cqi_server_path_to_executable).setEnabled(true, getFieldEditorParent());
+//				(cqi_server_path_to_registry).setEnabled(true, getFieldEditorParent());
+				(cqi_server_path_to_init_file).setEnabled(true, getFieldEditorParent());
+				(cqi_server_additional_options).setEnabled(true, getFieldEditorParent());
+			}
+		} else {
+			(cqi_server_path_to_cqplib).setEnabled(true, getFieldEditorParent());
+			(cqi_server_is_remote).setEnabled(false, getFieldEditorParent());
+			(cqi_server_host).setEnabled(false, getFieldEditorParent());
+			(cqi_server_port).setEnabled(false, getFieldEditorParent());
+			(cqi_server_user).setEnabled(false, getFieldEditorParent());
+			(cqi_server_password).setEnabled(false, getFieldEditorParent());
+			(cqi_server_path_to_executable).setEnabled(false, getFieldEditorParent());
+//			(cqi_server_path_to_registry).setEnabled(true, getFieldEditorParent());
+			(cqi_server_path_to_init_file).setEnabled(true, getFieldEditorParent());
+			(cqi_server_additional_options).setEnabled(true, getFieldEditorParent());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
+	 */
+	@Override
+	public void propertyChange(PropertyChangeEvent event) {
+		boolean useNetwork = false;
+		boolean serverIsRemote = false;
+		boolean update = false;
+		if (((FieldEditor) event.getSource()).getPreferenceName().equals(
+				CQI_SERVER_IS_REMOTE)) {
+			useNetwork = cqi_use_network.getBooleanValue();
+			serverIsRemote = (Boolean) event.getNewValue();
+			update = true;
+		} else if (((FieldEditor) event.getSource()).getPreferenceName().equals(
+				CQI_NETWORK_MODE)) {
+			useNetwork = (Boolean) event.getNewValue();
+			serverIsRemote = cqi_server_is_remote.getBooleanValue();
+			update = true;
+		}
+		if (update)
+			updateFieldsState(useNetwork, serverIsRemote);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			// System.out.println("CQP ok");
+			// System.out.println(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+			org.txm.Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CoocPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CoocPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CoocPreferencePage.java	(revision 122)
@@ -0,0 +1,201 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.jface.DoubleFieldEditor;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class CoocPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant SCOREFORMAT. */
+	public static final String SCOREFORMAT = "cooc_scoreformat"; //$NON-NLS-1$
+	
+	/** The Constant MINFREQ. */
+	public static final String MINFREQ = "cooc_minfreq"; //$NON-NLS-1$
+	
+	/** The Constant MINCOUNT. */
+	public static final String MINCOUNT = "cooc_mincount"; //$NON-NLS-1$
+	
+	/** The Constant MINSCORE. */
+	public static final String MINSCORE = "cooc_minscore"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.CoocPreferencePage"; //$NON-NLS-1$
+
+	public static final String MAXLEFT = "cooc_maxleft"; //$NON-NLS-1$
+	public static final String MINLEFT = "cooc_minleft"; //$NON-NLS-1$
+	public static final String MINRIGHT = "cooc_minright"; //$NON-NLS-1$
+	public static final String MAXRIGHT = "cooc_maxright"; //$NON-NLS-1$
+
+	public static final String PARTIALLEXICALTABLE = "cooc_partiallexicaltable"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The scoreformatfield. */
+	private StringFieldEditor scoreformatfield;
+	
+	/** The minfreqfield. */
+	private IntegerFieldEditor minfreqfield;
+	
+	/** The mincountfield. */
+	private IntegerFieldEditor mincountfield;
+	
+	/** The minscorefield. */
+	private DoubleFieldEditor minscorefield;
+	
+	private IntegerFieldEditor maxleftfield;
+	private IntegerFieldEditor minleftfield;
+	private IntegerFieldEditor minrightfield;
+	private IntegerFieldEditor maxrightfield;
+	
+	private BooleanFieldEditor partiallexicaltablefield;
+
+	/**
+	 * Instantiates a new cooc preference page.
+	 */
+	public CoocPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription("Cooccurrences");
+		setTitle(Messages.CoocPreferencePage_5);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		scoreformatfield = new StringFieldEditor(SCOREFORMAT,
+				Messages.CoocPreferencePage_0, getFieldEditorParent());
+		scoreformatfield.setTextLimit(15);
+
+		minfreqfield = new IntegerFieldEditor(MINFREQ,
+				Messages.CoocPreferencePage_1, getFieldEditorParent());
+		minfreqfield.setValidRange(0, 9999999);
+
+		mincountfield = new IntegerFieldEditor(MINCOUNT,
+				Messages.CoocPreferencePage_2, getFieldEditorParent());
+		mincountfield.setValidRange(0, 9999999);
+
+		minscorefield = new DoubleFieldEditor(MINSCORE,
+				Messages.CoocPreferencePage_3, getFieldEditorParent());
+		minscorefield.setTextLimit(15);
+		
+		maxleftfield = new IntegerFieldEditor(MAXLEFT,
+				Messages.CoocPreferencePage_4, getFieldEditorParent());
+		maxleftfield.setValidRange(0, 99999);
+		
+		minleftfield = new IntegerFieldEditor(MINLEFT,
+				Messages.CoocPreferencePage_6, getFieldEditorParent());
+		minleftfield.setValidRange(0, 99999);
+		
+		minrightfield = new IntegerFieldEditor(MINRIGHT,
+				Messages.CoocPreferencePage_11, getFieldEditorParent());
+		minrightfield.setValidRange(0, 99999);
+		
+		maxrightfield = new IntegerFieldEditor(MAXRIGHT,
+				Messages.CoocPreferencePage_12, getFieldEditorParent());
+		maxrightfield.setValidRange(0, 99999);
+		
+		partiallexicaltablefield =  new BooleanFieldEditor(PARTIALLEXICALTABLE,
+				Messages.CoocPreferencePage_8, getFieldEditorParent());
+
+		addField(scoreformatfield);
+		addField(minfreqfield);
+		addField(mincountfield);
+		addField(minscorefield);
+		addField(maxleftfield);
+		addField(minleftfield);
+		addField(minrightfield);
+		addField(maxrightfield);
+		addField(partiallexicaltablefield);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CoocPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DiagnosticPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DiagnosticPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DiagnosticPreferencePage.java	(revision 122)
@@ -0,0 +1,130 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modify preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class DiagnosticPreferencePage extends FieldEditorPreferencePage
+		implements IWorkbenchPreferencePage {
+
+	/** The Constant MAXVALUE. */
+	public static final String MAXVALUE = "diag_max_value"; //$NON-NLS-1$
+	
+	/** The Constant PARTSSORT. */
+	public static final String PARTSSORT = "diag_partssort"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.DiagnosticPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The diag_maxvalue. */
+	private IntegerFieldEditor diag_maxvalue;
+		
+	/**
+	 * Instantiates a new diagnostic preference page.
+	 */
+	public DiagnosticPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.DiagnosticPreferencePage_1);
+		setTitle(Messages.DiagnosticPreferencePage_1);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+		
+		diag_maxvalue = new IntegerFieldEditor(MAXVALUE, Messages.DiagnosticPreferencePage_2, getFieldEditorParent());
+		diag_maxvalue.setValidRange(20, 9999);
+		addField(diag_maxvalue);
+		
+		
+		// Charts rendering
+		//
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the behavior is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+			
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DiagnosticPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DirectoryAndOpenFieldEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DirectoryAndOpenFieldEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DirectoryAndOpenFieldEditor.java	(revision 122)
@@ -0,0 +1,112 @@
+package org.txm.rcpapplication.preferences;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.StringButtonFieldEditor;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.txm.rcpapplication.TxmPreferences;
+
+public class DirectoryAndOpenFieldEditor extends DirectoryFieldEditor {
+    /**
+     * Initial path for the Browse dialog.
+     */
+    private File filterPath = null;
+
+    Button openButton;
+    
+    /**
+     * Creates a new directory field editor 
+     */
+    protected DirectoryAndOpenFieldEditor() {
+    }
+
+    /**
+     * Creates a directory field editor.
+     * 
+     * @param name the name of the preference this field editor works on
+     * @param labelText the label text of the field editor
+     * @param parent the parent of the field editor's control
+     */
+    public DirectoryAndOpenFieldEditor(String name, String labelText, Composite parent) {
+        super(name, labelText, parent);
+    }    
+    
+    /* (non-Javadoc)
+     * Method declared on FieldEditor.
+     */
+    @Override
+	public int getNumberOfControls() {
+        return 4;
+    }
+    
+    /* (non-Javadoc)
+     * Method declared on StringFieldEditor (and FieldEditor).
+     */
+    @Override
+	protected void doFillIntoGrid(Composite parent, int numColumns) {
+        super.doFillIntoGrid(parent, numColumns - 1);
+        openButton = getOpenButton(parent);
+        GridData gd = new GridData();
+        gd.horizontalAlignment = GridData.FILL;
+        int widthHint = convertHorizontalDLUsToPixels(openButton, IDialogConstants.BUTTON_WIDTH);
+        gd.widthHint = Math.max(widthHint, openButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
+        openButton.setLayoutData(gd);
+    }
+	
+    /* (non-Javadoc)
+     * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean, org.eclipse.swt.widgets.Composite)
+     */
+    @Override
+	public void setEnabled(boolean enabled, Composite parent) {
+        super.setEnabled(enabled, parent);
+        if (openButton != null) {
+        	openButton.setEnabled(enabled);
+        }
+    }
+    
+	 /**
+     * Get the change control. Create it in parent if required.
+     * @param parent
+     * @return Button
+     */
+    protected Button getOpenButton(Composite parent) {
+        if (openButton == null) {
+            openButton = new Button(parent, SWT.PUSH);
+            openButton.setText("Open");
+            openButton.setFont(parent.getFont());
+            openButton.addSelectionListener(new SelectionAdapter() {
+                @Override
+				public void widgetSelected(SelectionEvent evt) {
+                    String newValue = changePressed();
+                    if (newValue != null) {
+                        setStringValue(newValue);
+                    }
+                }
+            });
+            openButton.addDisposeListener(new DisposeListener() {
+                @Override
+				public void widgetDisposed(DisposeEvent event) {
+                    openButton = null;
+                }
+            });
+        } else {
+            checkParent(openButton, parent);
+        }
+        return openButton;
+    }
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/DirectoryAndOpenFieldEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TreeTaggerPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TreeTaggerPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TreeTaggerPreferencePage.java	(revision 122)
@@ -0,0 +1,165 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class TreeTaggerPreferencePage extends FieldEditorPreferencePage
+		implements IWorkbenchPreferencePage {
+
+	/** The Constant TREETAGGER_INSTALL_PATH. */
+	public static final String TREETAGGER_INSTALL_PATH = Toolbox.TREETAGGER_INSTALL_PATH;
+	
+	/** The Constant TREETAGGER_MODELS_PATH. */
+	public static final String TREETAGGER_MODELS_PATH = Toolbox.TREETAGGER_MODELS_PATH;
+
+	public static final String TREETAGGER_OPTIONS = Toolbox.TREETAGGER_OPTIONS;
+	
+	public static final String TREETAGGER_APOSTROPHE = Toolbox.TREETAGGER_APOSTROPHE;
+	
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The treetagger_install_path. */
+	private DirectoryFieldEditor treetagger_install_path;
+	
+	/** The treetagger_models_path. */
+	private DirectoryFieldEditor treetagger_models_path;
+	
+	/** The treetagger_models_path. */
+	private StringFieldEditor treetagger_options;
+	
+	/** The treetagger_models_path. */
+	private BooleanFieldEditor treetagger_apostrophe;
+
+	//private BooleanFieldEditor treetagger_opendir;
+
+	/**
+	 * Instantiates a new tree tagger preference page.
+	 */
+	public TreeTaggerPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.TreeTaggerPreferencePage_0);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+		treetagger_install_path = new DirectoryFieldEditor(
+				TREETAGGER_INSTALL_PATH, Messages.TreeTaggerPreferencePage_1,
+				getFieldEditorParent());
+		addField(treetagger_install_path);
+
+		treetagger_models_path = new DirectoryFieldEditor(
+				TREETAGGER_MODELS_PATH, Messages.TreeTaggerPreferencePage_2,
+				getFieldEditorParent());
+		addField(treetagger_models_path);
+		
+//		treetagger_opendir = new OpenPathFromPreferenceFieldEditor("treetagger_open_button", "Open TreeTagger directory", getFieldEditorParent(), TREETAGGER_INSTALL_PATH);
+//		addField(treetagger_opendir);
+//		
+//		treetagger_opendir = new OpenPathFromPreferenceFieldEditor("treetagger_open_button2", "Open models directory", getFieldEditorParent(), TREETAGGER_MODELS_PATH);
+//		addField(treetagger_opendir);
+		
+		treetagger_options = new StringFieldEditor(
+				TREETAGGER_OPTIONS, Messages.TreeTaggerPreferencePage_3,
+				getFieldEditorParent());
+		addField(treetagger_options);
+		
+		
+		
+		treetagger_apostrophe = new BooleanFieldEditor(
+				TREETAGGER_APOSTROPHE, Messages.TreeTaggerPreferencePage_0,
+				getFieldEditorParent());
+		addField(treetagger_apostrophe);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			//System.out.println("PROPS : "+(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties()));
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/TreeTaggerPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/NLPPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/NLPPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/NLPPreferencePage.java	(revision 122)
@@ -0,0 +1,99 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class NLPPreferencePage.
+ */
+public class NLPPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/**
+	 * Instantiates a new nLP preference page.
+	 */
+	public NLPPreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription("..."); //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		// TODO Auto-generated method stub
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/NLPPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LexicalTablePreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LexicalTablePreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LexicalTablePreferencePage.java	(revision 122)
@@ -0,0 +1,129 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class LexicalTablePreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant FMIN. */
+	public static final String FMIN = "lt_fmin"; //$NON-NLS-1$
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.LexicalTablePreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The fmin. */
+	public IntegerFieldEditor fmin;
+	
+	/**
+	 * Instantiates a new lexical table preference page.
+	 */
+	public LexicalTablePreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.LexicalTablePreferencePage_0);
+		setTitle(Messages.LexicalTablePreferencePage_0);
+		
+		if (TxmPreferences.getInt(FMIN, -1) <= 0)
+			TxmPreferences.set(FMIN, 2);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		fmin = new IntegerFieldEditor(FMIN,
+				Messages.LexicalTablePreferencePage_1, getFieldEditorParent());
+		addField(fmin);
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LexicalTablePreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferenceInitializer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferenceInitializer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferenceInitializer.java	(revision 122)
@@ -0,0 +1,103 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.txm.rcpapplication.Activator;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * Class used to initialize default preference values.
+ */
+public class CQPPreferenceInitializer extends AbstractPreferenceInitializer {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @seeorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
+	 * initializeDefaultPreferences()
+	 */
+
+	/** The Constant CQI_DEFAULT_SERVER_IS_REMOTE. */
+	public static final boolean CQI_DEFAULT_SERVER_IS_REMOTE = false;
+	
+	/** The Constant CQI_DEFAULT_SERVER_HOST. */
+	public static final String CQI_DEFAULT_SERVER_HOST = Messages.CQPPreferenceInitializer_0;
+	
+	/** The Constant CQI_DEFAULT_SERVER_PORT. */
+	public static final int CQI_DEFAULT_SERVER_PORT = 4877;
+	
+	/** The Constant CQI_DEFAULT_SERVER_LOGIN. */
+	public static final String CQI_DEFAULT_SERVER_LOGIN = Messages.CQPPreferenceInitializer_1;
+	
+	/** The Constant CQI_DEFAULT_SERVER_PASSWORD. */
+	public static final String CQI_DEFAULT_SERVER_PASSWORD = ""; //$NON-NLS-1$
+	
+	/** The Constant CQI_DEFAULT_SERVER_PATH_TO_EXECUTABLE. */
+	public static final String CQI_DEFAULT_SERVER_PATH_TO_EXECUTABLE = ""; //default value expected to be set by te command line option; see Application.java  //$NON-NLS-1$
+	
+	/** The Constant CQI_DEFAULT_SERVER_PATH_TO_REGISTRY. */
+	public static final String CQI_DEFAULT_SERVER_PATH_TO_REGISTRY = ""; //default value expected to be set by te command line option;  see Application.java //$NON-NLS-1$
+	
+	/** The Constant CQI_DEFAULT_SERVER_PATH_TO_INIT_FILE. */
+	public static final String CQI_DEFAULT_SERVER_PATH_TO_INIT_FILE = ""; //default value expected to be set by te command line option; see Application.java  //$NON-NLS-1$
+	
+	/** The Constant CQI_DEFAULT_SERVER_ADDITIONAL_OPTIONS. */
+	public static final String CQI_DEFAULT_SERVER_ADDITIONAL_OPTIONS = " -b 1000000 -d OFF"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
+	 */
+	@Override
+	public void initializeDefaultPreferences() {
+		// new
+		// DefaultScope().getNode(ReprioritizerPlugin.getId());
+		Activator a = Activator.getDefault();
+		IPreferenceStore store = a.getPreferenceStore();
+
+		store.setDefault(CQPPreferencePage.CQI_SERVER_IS_REMOTE,
+				CQI_DEFAULT_SERVER_IS_REMOTE);
+		store.setDefault(CQPPreferencePage.CQI_SERVER_HOST,
+				CQI_DEFAULT_SERVER_HOST);
+		store.setDefault(CQPPreferencePage.CQI_SERVER_PORT,
+				CQI_DEFAULT_SERVER_PORT);
+		store.setDefault(CQPPreferencePage.CQI_SERVER_LOGIN,
+				CQI_DEFAULT_SERVER_LOGIN);
+		store.setDefault(CQPPreferencePage.CQI_SERVER_PASSWORD,
+				CQI_DEFAULT_SERVER_PASSWORD);
+		// store.setDefault(CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE,CQI_DEFAULT_SERVER_PATH_TO_EXECUTABLE);
+		// store.setDefault(CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY,
+		// CQI_DEFAULT_SERVER_PATH_TO_REGISTRY);
+		// store.setDefault(CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE,
+		// CQI_DEFAULT_SERVER_PATH_TO_INIT_FILE);
+		store.setDefault(CQPPreferencePage.CQI_SERVER_ADDITIONAL_OPTIONS,
+				CQI_DEFAULT_SERVER_ADDITIONAL_OPTIONS);
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CQPPreferenceInitializer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAHPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAHPreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAHPreferencePage.java	(revision 122)
@@ -0,0 +1,179 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.IntegerFieldEditor;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.functions.classification.CAH;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * This class represents a preference page that is contributed to the
+ * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>, we
+ * can use the field support built into JFace that allows us to create a page
+ * that is small and knows how to save, restore and apply itself.
+ * <p>
+ * This page is used to modif y preferences only. They are stored in the
+ * preference store that belongs to the main plug-in class. That way,
+ * preferences can be accessed directly via the preference store.
+ */
+
+public class CAHPreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant DISPLAY. */
+	public static final String DISPLAY = "cah_display_2d"; //$NON-NLS-1$
+	
+	/** The Constant METHOD. */
+	public static final String METHOD = "cah_default_method"; //$NON-NLS-1$
+	
+	/** The Constant METRIC. */
+	public static final String METRIC = "cah_default_metric"; //$NON-NLS-1$
+	
+	/** The Constant NCLUSTER. */
+	public static final String NCLUSTER = "cah_default_ncluster"; //$NON-NLS-1$
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.CAHPreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The defaultdisplay. */
+	private RadioGroupFieldEditor default2D3Ddisplay;
+	
+	/** The defaultncluster. */
+	private IntegerFieldEditor defaultncluster;
+	
+	/** The defaultmethod. */
+	private ComboFieldEditor defaultmethod;
+	
+	/** The defaultmetric. */
+	private ComboFieldEditor defaultmetric;
+
+	/**
+	 * Instantiates a new cAH preference page.
+	 */
+	public CAHPreferencePage() {
+		super(GRID);
+		
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		setTitle(Messages.CAHEditorTitle);
+	}
+
+	/**
+	 * Creates the field editors. Field editors are abstractions of the common
+	 * GUI blocks needed to manipulate various types of preferences. Each field
+	 * editor knows how to save and restore itself.
+	 */
+	@Override
+	public void createFieldEditors() {
+
+		//set defaults
+//		TxmPreferences.set(DISPLAY, TxmPreferences.getBoolean(DISPLAY, false));
+//		TxmPreferences.set(NCLUSTER, TxmPreferences.getInt(NCLUSTER, 2));
+//		TxmPreferences.set(METHOD, TxmPreferences.getString(METHOD, CAH.getDefaultMethod()));
+//		TxmPreferences.set(METRIC, TxmPreferences.getString(METRIC, CAH.getDefaultMetric()));
+		
+		defaultncluster = new IntegerFieldEditor(NCLUSTER,
+				Messages.CAHPreferencePage_2, getFieldEditorParent());
+		addField(defaultncluster);
+
+		String list[] = CAH.getMethods(); 
+		String methods[][] = new String[list.length][2];
+		for(int i = 0 ; i < list.length ; i++)
+			methods[i][0] = methods[i][1] = list[i];
+				
+		defaultmethod = new ComboFieldEditor(METHOD,
+				Messages.CAHPreferencePage_3, methods, getFieldEditorParent());
+		addField(defaultmethod);
+
+		list = CAH.getMetrics(); 
+		String metrics[][] = new String[list.length][2];
+		for(int i = 0 ; i < list.length ; i++)
+			metrics[i][0] = metrics[i][1] = list[i];
+		
+		defaultmetric = new ComboFieldEditor(METRIC,
+				Messages.CAHPreferencePage_4, metrics, getFieldEditorParent());
+		addField(defaultmetric);
+		
+		
+		// Charts
+		Group chartsGroup = SWTChartsComponentsProvider.createChartsRenderingPreferencesGroup(getFieldEditorParent());
+
+		// FIXME : these preferences should be renamed and moved to charts engine preference level (associated messages too)
+		String[][] labelAndValues = {{"2D", "2D"}, {"3D", "3D"}}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		default2D3Ddisplay = new RadioGroupFieldEditor(DISPLAY, Messages.CAHPreferencePage_0, 2, labelAndValues, chartsGroup);
+		addField(default2D3Ddisplay);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true; // Otherwise the bahaviour is so strange ....
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (Exception e) {
+			System.err.println(Messages.FAILED_TO_SAVE_PREFERENCES + e);
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/CAHPreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LocalePreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LocalePreferencePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LocalePreferencePage.java	(revision 122)
@@ -0,0 +1,118 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.preferences;
+
+import java.io.IOException;
+
+import org.eclipse.core.runtime.preferences.ConfigurationScope;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.preferences.ScopedPreferenceStore;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LocalePreferencePage.
+ */
+public class LocalePreferencePage extends FieldEditorPreferencePage implements
+		IWorkbenchPreferencePage {
+
+	/** The Constant UI_LOCALE. */
+	public static final String UI_LOCALE = "ui_locale"; //$NON-NLS-1$
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.preferences.LocalePreferencePage"; //$NON-NLS-1$
+
+	/** The preferences. */
+	private ScopedPreferenceStore preferences;
+
+	/** The locale. */
+	private RadioGroupFieldEditor locale;
+
+	/**
+	 * Instantiates a new locale preference page.
+	 */
+	public LocalePreferencePage() {
+		super(GRID);
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		//setDescription(Messages.LocalePreferencePage_1);
+		setTitle(Messages.LocalePreferencePage_1);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
+	 */
+	@Override
+	protected void createFieldEditors() {
+		String[][] values = { { "français", "fr" }, { "english", "en" } }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		locale = new RadioGroupFieldEditor(UI_LOCALE,
+				Messages.LocalePreferencePage_2, 1, values,
+				getFieldEditorParent());
+		addField(locale);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
+	 */
+	@Override
+	public void init(IWorkbench workbench) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.PreferencePage#isValid()
+	 */
+	@Override
+	public boolean isValid() {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.preference.FieldEditorPreferencePage#performOk()
+	 */
+	@Override
+	public boolean performOk() {
+		try {
+			super.performOk();
+			preferences.save();
+			// System.out.println("Locale ok");
+			// System.out.println(org.txm.rcpapplication.ApplicationWorkbenchAdvisor.getProperties());
+			org.txm.Toolbox
+					.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+		} catch (IOException e) {
+			System.err.println(NLS.bind(
+					Messages.FAILED_TO_SAVE_PREFERENCES, e));
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/preferences/LocalePreferencePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMCqpServerWatcher.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMCqpServerWatcher.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMCqpServerWatcher.java	(revision 122)
@@ -0,0 +1,91 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.txm.CqpServerWatcher;
+import org.txm.rcpapplication.views.CorporaView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Watch if CQP is running
+ */
+@Deprecated
+public class TXMCqpServerWatcher extends CqpServerWatcher{
+	
+	/** The parent. */
+	private Display parent;
+
+	/**
+	 * Instantiates a new tXM cqp server watcher.
+	 *
+	 * @param parent the parent
+	 */
+	TXMCqpServerWatcher(Display parent)
+	{
+		this.parent = parent;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.CqpServerWatcher#restart()
+	 */
+	@Override
+	public boolean restart()
+	{
+		parent.syncExec(new Runnable(){
+		      @Override
+			public void run(){
+		    	  MessageDialog d =
+					    new MessageDialog(
+					      parent.getActiveShell(),
+					      Messages.TXMCqpServerWatcher_0,
+					      null,
+					      Messages.TXMCqpServerWatcher_1,
+					      MessageDialog.ERROR,
+					      new String[] { Messages.TXMRServeWatcher_2 },
+					      0);
+					    d.open();
+		      }
+		    });
+		
+		boolean ret = super.restart();
+		
+		if (ret)
+		{
+			parent.syncExec(new Runnable(){
+			      @Override
+				public void run(){
+			    	  CorporaView.reload();
+			      }
+			    });
+		}
+		
+		return ret;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMCqpServerWatcher.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages.properties	(revision 122)
@@ -0,0 +1,1207 @@
+#Eclipse modern messages class
+#Mon Feb 10 11:04:14 CET 2014
+About_Menu_Label=About TXM...
+AdapterFactory_0=** Warning\: the corpus {0} is corrupted. Some commands won''t work correctly.
+AddBase_1=New corpus\: {0}.
+AddBase_10=TXM is ready.
+AddBase_16=** Cannot set the 'LANG' property from the 'txmcorpus' structure\:
+AddBase_17=** Cannot read the file {0}
+AddBase_19=Warning
+AddBase_2=** Failed to load corpus  from directory\: {0}.\nWe cannot find the necessary components
+AddBase_20=The {0} corpus directory already exists. Do you want to replace it ?
+AddBase_22=This file is not a TXM file\: {0}
+AddBase_23=The corpus {0} has no ''LANG'' set in ''txmcorpus''
+AddBase_24=** Failed to load corpus  {0}
+AddBase_25=A binary corpus is a TXM file (extension .txm or .zip)
+AddBase_27=Loading binary corpus
+AddBase_28=Extracting binary corpus
+AddBase_29=Extracting {0} in {1}
+AddBase_31=** Could not unzip binary corpus\:
+AddBase_32=Loading the corpus in the platform
+AddBase_33=Restarting the platform
+AddBase_34=TXM workspace is not initialized, please restart TXM.
+AddBase_4=** Failed to load binary corpus (null error).
+AddBase_7=** Failed to create binary corpus.
+AddProject_3=Enter project name
+AdvancePreferencePage_0=Print the stacktrace
+AdvancePreferencePage_1=TXM Install directory
+AdvancePreferencePage_12=Log level
+AdvancePreferencePage_13=Log in the console
+AdvancePreferencePage_14=Log in a file
+AdvancePreferencePage_2=TXM user directory
+AdvancePreferencePage_3=Display runtimes in console
+AdvancePreferencePage_4=Advanced user mode
+AdvancePreferencePage_6=Logs
+AdvancePreferencePage_7=Update level
+AnnotationPreferences_0 = Mode
+AnnotationPreferences_1 = simple (with categories)
+AnnotationPreferences_2 = advanced (with types+values)
+ApplicationWorkbenchAdvisor_0=Initializing platform...
+ApplicationWorkbenchAdvisor_1=Initialization of the platform
+ApplicationWorkbenchAdvisor_11=Loading sample corpora
+ApplicationWorkbenchAdvisor_12=** Error\: ''TXMHOME'' environment variable is set ({0}), but the directory doesn''t exist\:
+ApplicationWorkbenchAdvisor_13=** Could not create TXMHOME directory\: {0}
+ApplicationWorkbenchAdvisor_14=\ evaluating extension\:
+ApplicationWorkbenchAdvisor_15=Loading extensions...
+ApplicationWorkbenchAdvisor_16=Removing old corpus backup directory {0}.
+ApplicationWorkbenchAdvisor_17=.
+ApplicationWorkbenchAdvisor_18=Corpora already backuped in ''{0}'' \: {1}
+ApplicationWorkbenchAdvisor_19=** Could not configure TreeTagger parameters\: {0}
+ApplicationWorkbenchAdvisor_2=Loading TXM install preferences
+ApplicationWorkbenchAdvisor_20=\ in
+ApplicationWorkbenchAdvisor_21=Remove unused Eclipse RCP preference page
+ApplicationWorkbenchAdvisor_22=Processing folder\:
+ApplicationWorkbenchAdvisor_23=\ ...
+ApplicationWorkbenchAdvisor_24=Failed moving old corpus from
+ApplicationWorkbenchAdvisor_25=Reading TXM install preferences from\: {0}
+ApplicationWorkbenchAdvisor_26=\ to
+ApplicationWorkbenchAdvisor_27=TXM workspace directory already exists ({0}). Would you like to reload its corpora in your new TXM?"
+ApplicationWorkbenchAdvisor_28=Workspace directory backup
+ApplicationWorkbenchAdvisor_29=Error\:
+ApplicationWorkbenchAdvisor_3=Checking for existing workspace directory
+ApplicationWorkbenchAdvisor_30=Moving corpora to {0}.
+ApplicationWorkbenchAdvisor_31=** Failed to create TXM default.xml workspace
+ApplicationWorkbenchAdvisor_32=** TreeTagger is not installed or paths are incorrect.
+ApplicationWorkbenchAdvisor_33=TreeTagger paths have been set to default values
+ApplicationWorkbenchAdvisor_34=** Could not create backup directory \:
+ApplicationWorkbenchAdvisor_35=\nCorpus
+ApplicationWorkbenchAdvisor_36=Moving corpora
+ApplicationWorkbenchAdvisor_37=\ to
+ApplicationWorkbenchAdvisor_38=Warning\: the corpus has already been backuped.
+ApplicationWorkbenchAdvisor_39=Missing folder in TXM install dir\: {0}
+ApplicationWorkbenchAdvisor_4=Checking TreeTagger installation
+ApplicationWorkbenchAdvisor_40=Failed to copy TXM files from TXMINSTALL DIR to TXMHOME\: {0}
+ApplicationWorkbenchAdvisor_41=Failed to set preferences\: {0}
+ApplicationWorkbenchAdvisor_42=\ moving
+ApplicationWorkbenchAdvisor_43=Corpora {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_43_single=Corpus {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_44=** Failed to move corpus
+ApplicationWorkbenchAdvisor_45=** Failed to read file {0}
+ApplicationWorkbenchAdvisor_46=\nCorpus
+ApplicationWorkbenchAdvisor_47=** Failed to backup existing corpora\:
+ApplicationWorkbenchAdvisor_48=\nCorpus ''{0}'' could not be restored and are moved to ''{1}''.
+ApplicationWorkbenchAdvisor_49=Initializing the toolbox...
+ApplicationWorkbenchAdvisor_5=System Output
+ApplicationWorkbenchAdvisor_51=** Failed to load corpus from file\:
+ApplicationWorkbenchAdvisor_52=** Failed to load sample corpora\: {0}
+ApplicationWorkbenchAdvisor_53=Restoring corpora from folder ''{0}''
+ApplicationWorkbenchAdvisor_54=Converting TXM 0.5 format corpus
+ApplicationWorkbenchAdvisor_55=\ to TXM 0.6 format.
+ApplicationWorkbenchAdvisor_56=** Failed to convert corpus to TXM 0.6 format
+ApplicationWorkbenchAdvisor_57=Loading converted 0.5 corpus
+ApplicationWorkbenchAdvisor_58=Loading 0.6 corpus
+ApplicationWorkbenchAdvisor_59=** Error while loading
+ApplicationWorkbenchAdvisor_6=Exception\:
+ApplicationWorkbenchAdvisor_60=** Error\: corpus
+ApplicationWorkbenchAdvisor_61=\ is not a TXM 0.5 or 0.6 binary corpus
+ApplicationWorkbenchAdvisor_63=Disable automatic update
+ApplicationWorkbenchAdvisor_64=ERROR: no IProvisioningAgent found
+ApplicationWorkbenchAdvisor_65=Failed to set auto update preference: 
+ApplicationWorkbenchAdvisor_66=Restoring previous preferences from
+ApplicationWorkbenchAdvisor_67=No previous preference file found at
+ApplicationWorkbenchAdvisor_68=Setting default TXM theme
+ApplicationWorkbenchAdvisor_69=Failed to set default CSS theme\:
+ApplicationWorkbenchAdvisor_7=Creating TXM user working directory.
+ApplicationWorkbenchAdvisor_71=Loading sample corpora.
+ApplicationWorkbenchAdvisor_72=Start job: load install preferences
+ApplicationWorkbenchAdvisor_73=Start job: check TXMHOME
+ApplicationWorkbenchAdvisor_74=Start job: initialize UI
+ApplicationWorkbenchAdvisor_75=Error while loading TXM: 
+ApplicationWorkbenchAdvisor_76=Automatic update
+ApplicationWorkbenchAdvisor_77=Starting update fetch
+ApplicationWorkbenchAdvisor_78=Error while updating TXM: 
+ApplicationWorkbenchAdvisor_79=Error while updating TXM: no handler service found
+ApplicationWorkbenchAdvisor_8=Install path\: {0}
+ApplicationWorkbenchAdvisor_86=Initializing Toolbox
+ApplicationWorkbenchAdvisor_87=Initializing the SWT Charts Components provider
+ApplicationWorkbenchAdvisor_88=Loading views
+ApplicationWorkbenchAdvisor_89=Missing RCP preference has been set from TBX preference: 
+ApplicationWorkbenchAdvisor_9=** Could not read install preferences file
+ApplicationWorkbenchAdvisor_init=Starting up {0}...
+ApplicationWorkbenchAdvisor_init_failed=** Startup failed, please check TXM preferences (in the 'File>Preferences' menu) or contact txm-users mailing list (menu\: Help>
+ApplicationWorkbenchAdvisor_PROGRESS_BAR_LOADING_CORPORA=Loading corpora
+ApplicationWorkbenchAdvisor_ready=Ready.
+ApplicationWorkbenchWindowAdvisor_0=Remove unnecessary e4 elements
+ApplicationWorkbenchWindowAdvisor_9=Setting status line and configuring action sets
+Application_0=Args: 
+Application_1='-log' option detected
+Application_10=Could not start proxy configuration: 
+Application_11=Setting proxy for Mac OS X: {0}
+Application_2=Force loggin...
+Application_4=This file is not meant to run TXM. Please consult TXM user manual.
+Application_6=** You need to install Java version 1.6 at least before launching TXM, your actual Java version is {0}
+Application_8=Lock RCP workspace
+Application_9=Activate Proxy Service
+AssistedQueryWidget_0=Open the query assistant
+BackToText_0=Display in full text...
+CAHEditor_0=Computing CAH
+CAHEditor_PART_NAME_PREFIX=Classification\: {0}
+CAHPreferencePage_0=Display graphics in
+CAHEditorTitle=Classification
+CAHPreferencePage_2=Number of clusters
+CAHPreferencePage_3=Method
+CAHPreferencePage_4=Metric
+CANT_CREATE_GRAPHIC=** Cannot create the graphic
+CAPreferencePage_0=Quality column format
+CAPreferencePage_1=Contribution column format
+CAPreferencePage_2=Lexical table created when called from a partition
+CAPreferencePage_3=Show the columns
+CAPreferencePage_4=Show the rows
+CAPreferencePage_5=Mass column format
+CAPreferencePage_6=Distance column format
+CAPreferencePage_7=Cos\u00B2 column format
+CAPreferencePage_8=Coord column format
+CQPPreferenceInitializer_0=localhost
+CQPPreferenceInitializer_1=anonymous
+CQPPreferencePage_0=CQPlib path
+CQPPreferencePage_1=Use network protocol
+CQPPreferencePage_10=&Remote CWB server address\:
+CQPPreferencePage_11=CWB server\: &host\:
+CQPPreferencePage_12=CWB server\: &port\:
+CQPPreferencePage_13=CWB server\: &login\:
+CQPPreferencePage_14=CWB server\: &password\:
+CQPPreferencePage_15=Path to CWB server binary
+CQPPreferencePage_16=Path to CWB server registry
+CQPPreferencePage_17=Path to CWB server initialisation file
+CQPPreferencePage_18=Additionnal &options for the CWB server\:
+CaEditor_0=Error while opening CAEditor: 
+Cannot_ask_simple_when_advance=Cannot ask for the simple tab when the user has selected the advanced tab
+ColRowInfosLabelProvider_19=Q
+ColRowInfosLabelProvider_9=Chi\u00B2
+ColsRowsInfosEditor_0=Wrong input
+ColsRowsInfosEditor_2=Infos\: {0}
+Commands_0=Error\: failed to initialize Commands
+ComplexSortSelector_0=sort keys\:
+ComplexSortSelector_1=Complex sort\:
+ComplexSortSelector_2=Sort
+ComplexSortSelector_5=** Error during sort\: {0}
+ComplexSortSelector_6=default
+ComplexSort_0=Opening complex sort dialog
+ComplexSort_1=&Multiple Sort
+ComplexSort_10=Invalid comparator
+ComplexSort_11=you must select at least 2 comparators
+ComplexSort_12=Adding to selection
+ComplexSort_14=Remove from selection
+ComplexSort_16=Moving up the selection
+ComplexSort_18=Moving down the selection
+ComplexSort_2=Define and use a composite sorter
+ComplexSort_3=Select a composite sorter
+ComplexSort_4=&New
+ComplexSort_5=Create a new sorter
+ComplexSort_6=Name\:
+ComplexSort_9=Name is mandatory.
+ComplexSubcorpusPanel_0=Match
+ComplexSubcorpusPanel_1=All criteria
+ComplexSubcorpusPanel_16=does not contain
+ComplexSubcorpusPanel_2=Some criteria
+ComplexSubcorpusPanel_4=Query
+ComplexSubcorpusPanel_5=Refresh
+ComputeCAH_0=Compute Classification with {0}
+ComputeCAH_1=Show graphic
+ComputeCAH_2=Error\: temporary file created cannot be written\:
+ComputeCAH_3=Computing CAH with
+ComputeCAH_4=Statistics Engine is not ready. Canceling command.
+ComputeCAH_5=Opening the Classification result
+ComputeCAH_6=Error while computing Classification\: {0}
+ComputeClassification_5=Compute columns
+ComputeClassification_6=Compute rows
+ComputeConcordance_0=Opening the Concordance result
+ComputeConcordance_1=Failed to open concordance editor.
+ComputeCoocFromLines_0=Computing Cooccurrents
+ComputeCoocFromLines_1=Opening the Cooccurrents table
+ComputeCoocMatrix_0=Cooc matrix\:
+ComputeCoocMatrix_1=Number of nodes\:
+ComputeCoocMatrix_10=Distance
+ComputeCoocMatrix_11=Minimal co frequence
+ComputeCoocMatrix_12=Outfile\: none
+ComputeCoocMatrix_13=Choose outfile
+ComputeCoocMatrix_2=Number of edges\:
+ComputeCoocMatrix_3=Distance\:
+ComputeCoocMatrix_4=Writing cooc matrix in GRAPHML file\:
+ComputeCoocMatrix_7=CoocMatrix parameters
+ComputeCooccurrences_0=Opening cooccurrents table
+ComputeCooccurrences_1=cannot compute cooccurrences with the selection
+ComputeCooccurrences_2=StatEngine is not ready. Canceling command.
+ComputeCorrespondanceAnalysisDialog_0=Correspondance analysis with {0}
+ComputeCorrespondanceAnalysisDialog_1=Property\:
+ComputeCorrespondanceAnalysisDialog_2=Number of lines\:
+ComputeCorrespondanceAnalysis_0=Computing Correspondance analysis on {0} with property {1}
+ComputeCorrespondanceAnalysis_1=Cannot compute CA with less than 4 rows in the table
+ComputeCorrespondanceAnalysis_13=Can't compute CA on lexical table with less than 4 columns
+ComputeCorrespondanceAnalysis_14=Opening the Correspondance Analysis results
+ComputeCorrespondanceAnalysis_15=Create CA
+ComputeCorrespondanceAnalysis_16=Get LexicalTable CA
+ComputeCorrespondanceAnalysis_17=Compute CA
+ComputeCorrespondanceAnalysis_2=StatEngine is not ready. Canceling command.
+ComputeCorrespondanceAnalysis_3=** Error
+ComputeCorrespondanceAnalysis_4=Cannot compute factorial analysis with only {0} parts (the minimum is 4 parts).
+ComputeCorrespondanceAnalysis_6=OK
+ComputeCorrespondanceAnalysis_8=Loading correspondances analysis results...
+ComputeFrequencyList_2=Processing word lexicon of {0} in the corpus {1}
+ComputeIndexFromLines_0=Send selection to Index
+ComputeInternalView_0=Selection is not structured
+ComputeInternalView_1=Error: selection is not a Corpus
+ComputeLexicalTable_0=Computing the Lexical Table with {0}
+ComputeLexicalTable_1=Computing the Lexical Table {0} with the property {1}
+ComputeLexicalTable_10=Opening the lexical table
+ComputeLexicalTable_12=User index occurrences
+ComputeLexicalTable_13=Select which margins you want to use
+ComputeLexicalTable_16=Use all occurrences
+ComputeLexicalTable_2=no property
+ComputeLexicalTable_3=Opening marge configuration dialog
+ComputeLexicalTable_4=StatEngine is not ready. Canceling command.
+ComputeLexicalTable_5=Can not create a lexical table with an Index created on a Corpus
+ComputeLexicalTable_6=Vocabularies must share the same properties\: {0}
+ComputeLexicalTable_7=Vocabularies must share the same partition\: {0}
+ComputeLexicalTable_9=LexicalTable dialog, failed to get corpus size\: {0}
+ComputeReferencer_0=Open references editor
+ComputeSpecificitiesDialog_0=ERROR_ComputeSpecificitiesDialog {0}
+ComputeSpecificitiesDialog_1=** Regexp syntax error\: {0}
+ComputeSpecificitiesDialog_3=Focus\:
+ComputeSpecificitiesDialog_4=Part focus\:
+ComputeSpecificitiesDialog_9=No filtering of part available
+ComputeSpecificities_0=Computing Specificites
+ComputeSpecificities_2=Computing Specificites on {0} and property {1}
+ComputeSpecifities_0=StatEngine is not ready. Canceling command.
+ComputeSpecifities_1=No selection
+ComputeSpecifities_10=Compute Specificities
+ComputeSpecifities_11=Compute Specificities on with lexical table {0}
+ComputeSpecifities_2=Refreshing corpora view...
+ComputeSpecifities_3=Computing Specificities on subcorpus {0} with corpus {1}. Properties\: {2}
+ComputeSpecifities_4=Error while computing specificities: 
+ComputeIndex_0=Opening Index results
+Compute_Specificities=Computing specificities.
+ComputeDiagnostic_0=Selection is not structured
+ComputeDiagnostic_1=Error: selection is not a corpus:
+ConcordancerPreferencePage_3=Concordance Parameters
+ConcordancerPreferencePage_4=Lines per &Page\:
+ConcordancerPreferencePage_5=&Left context length in words
+ConcordancerPreferencePage_6=&Right context length in words
+ConcordancesEditorContributor_0=Concordance
+ConcordancesEditor_0=Last CQI error\:
+ConcordancesEditor_1=Reference
+ConcordancesEditor_10=. Aborting back to text.
+ConcordancesEditor_101=Cancel
+ConcordancesEditor_108=\ elements. Continue ?
+ConcordancesEditor_11=|<
+ConcordancesEditor_110=New value {0} for category {1}  
+ConcordancesEditor_112=The value {0} is not associated with the category {1}. Associate it ?   
+ConcordancesEditor_115=Add a new category
+ConcordancesEditor_12=<
+ConcordancesEditor_13=>
+ConcordancesEditor_14=>|
+ConcordancesEditor_15=Category
+ConcordancesEditor_16=&Keyword\:
+ConcordancesEditor_17=Keywords annotation
+ConcordancesEditor_18=&Edit
+ConcordancesEditor_19=Found {0} occurrences
+ConcordancesEditor_2=Left context
+ConcordancesEditor_20=Loading line informations...
+ConcordancesEditor_21=Could not instanciate one of the corpus Knowledge repository: 
+ConcordancesEditor_22=Affect
+ConcordancesEditor_23=to
+ConcordancesEditor_24=Delete
+ConcordancesEditor_25=of
+ConcordancesEditor_26=Project id {0} Corpus id {1} Text id {2}
+ConcordancesEditor_27=BackToText\: Text {0} is missing
+ConcordancesEditor_28=the annotation
+ConcordancesEditor_29=No page found... for
+ConcordancesEditor_3=Keyword
+ConcordancesEditor_30=BackToText\: default edition is missing
+ConcordancesEditor_31==
+ConcordancesEditor_32=Enter a value for an id
+ConcordancesEditor_33=to
+ConcordancesEditor_34=Opening the Concordance
+ConcordancesEditor_35=selected lines
+ConcordancesEditor_36=Annotating concordance selection...
+ConcordancesEditor_37=Sorting reference column
+ConcordancesEditor_38=Hide settings
+ConcordancesEditor_39=Show settings
+ConcordancesEditor_4=Right context
+ConcordancesEditor_40=Error while annotating concordance selection: 
+ConcordancesEditor_41=Sorting left context column
+ConcordancesEditor_42=page lines
+ConcordancesEditor_43=The {0} corpus has no default references\: {1}
+ConcordancesEditor_44=Annotating concordance page...
+ConcordancesEditor_45=Sorting keyword column
+ConcordancesEditor_46=Full text display failed\: {0}
+ConcordancesEditor_47=Error while annotating concordance page: 
+ConcordancesEditor_48=Sorting right context column
+ConcordancesEditor_49=all lines
+ConcordancesEditor_5=Concordance of <{0}> in corpus {1}
+ConcordancesEditor_50=Opening corpus edition
+ConcordancesEditor_51=Annotating concordance...
+ConcordancesEditor_52=Done\: one result
+ConcordancesEditor_53=Error while annotating concordance: 
+ConcordancesEditor_54=Error while deleting annotation: 
+ConcordancesEditor_55=Opening property dialog
+ConcordancesEditor_56=Start computing concordance
+ConcordancesEditor_57=Looking for TypedValue with id=
+ConcordancesEditor_58=No value found with the {0} id.
+ConcordancesEditor_59=AFFECT 
+ConcordancesEditor_6=Sorting
+ConcordancesEditor_60=\ to SELECTION=
+ConcordancesEditor_61=Could not annotate the value '
+ConcordancesEditor_62='.\n on certain sequences. \n
+ConcordancesEditor_63=\t- The sequence 
+ConcordancesEditor_64=\ is overlapping with \n
+ConcordancesEditor_65=\t\t- the end of a structure 
+ConcordancesEditor_66=, at [
+ConcordancesEditor_67=\ - 
+ConcordancesEditor_68=]\n
+ConcordancesEditor_69=\t\t- the start of a structure 
+ConcordancesEditor_7=CQP error\:
+ConcordancesEditor_70=, at [
+ConcordancesEditor_71=\ - 
+ConcordancesEditor_72=]\n
+ConcordancesEditor_73=About annotations
+ConcordancesEditor_74=Error while affection annotation: 
+ConcordancesEditor_75=Annotate
+ConcordancesEditor_76=Save the annotations
+ConcordancesEditor_77=Open the list of categories
+ConcordancesEditor_78=class
+ConcordancesEditor_79=Select a value among the list
+ConcordancesEditor_8=The corpus has no text_id property
+ConcordancesEditor_80=value=
+ConcordancesEditor_81=Please enter the new type name
+ConcordancesEditor_82=New category
+ConcordancesEditor_83=with the category
+ConcordancesEditor_84=with the category
+ConcordancesEditor_85=OK
+ConcordancesEditor_86=Confirm annotation affectation
+ConcordancesEditor_87=You are about to annotate  
+ConcordancesEditor_88=Delete selected line(s)
+ConcordancesEditor_9=Error: could not retrieve line word id for edition 
+ConcordancesEditor_99=List of categories
+ConcordancesEditor_100=Available values for {0}
+ConcordancesEditor_116=Proceed to annotation
+ConcordancesEditor_referenceColumn_text=Reference
+ConcordancesEditor_xpndtmNewExpanditem_text=New ExpandItem
+ConcordancesEditor_xpndtmNewExpanditem_text_1=New ExpandItem
+ConcordancesEditor_xpndtmNewExpanditem_text_2=New ExpandItem
+ConcordancesEditor_xpndtmNewParameters_text=New Parameters
+ConvertCorpus_0=Corpus conversion failed.
+CoocPreferencePage_0=Score format (default 0.0000E00)
+CoocPreferencePage_1=Minimum frequency threshold of the cooccurent
+CoocPreferencePage_11=Minimum right
+CoocPreferencePage_12=Maximum right
+CoocPreferencePage_2=Minimum cooccurency count threshold
+CoocPreferencePage_3=Minimum cooccurency score threshold
+CoocPreferencePage_4=Maximum left
+CoocPreferencePage_5=Cooccurrences
+CoocPreferencePage_6=Minimum left
+CoocPreferencePage_8=Use partial lexical table
+CooccurrencesEditor_0=Sort by\: {0}
+CooccurrencesEditor_1=Error while computing the coocurrence\:
+CooccurrencesEditor_10=Cofrequency
+CooccurrencesEditor_11=Score value is not a double float
+CooccurrencesEditor_12=Computing the cooccurrents of {0}
+CooccurrencesEditor_13=Setting up cooccurrences process
+CooccurrencesEditor_14=Computing cooccurrents
+CooccurrencesEditor_15=Displaying results
+CooccurrencesEditor_16=Can't compute cooccurrences with no context
+CooccurrencesEditor_17=Score
+CooccurrencesEditor_18=The score threshold must be a real number \! {0}
+CooccurrencesEditor_2=Search
+CooccurrencesEditor_20=Computing the cooccurrents of <{0}> in the {1} corpus
+CooccurrencesEditor_23=Done\: no result.
+CooccurrencesEditor_24=Done\: one result.
+CooccurrencesEditor_25=Error while reading corpus size
+CooccurrencesEditor_27=build queries
+CooccurrencesEditor_28=get matches
+CooccurrencesEditor_29=build line signatures
+CooccurrencesEditor_3=Cooccurrents properties\:
+CooccurrencesEditor_30=counting
+CooccurrencesEditor_31=build lexical table
+CooccurrencesEditor_32=get specif scores
+CooccurrencesEditor_33=Start computing cooccurrences
+CooccurrencesEditor_34=Done\: {0} keywords and {1} cooccurrents
+CooccurrencesEditor_4=Thresholds\: Fmin \u2265
+CooccurrencesEditor_5=\ Cmin \u2265
+CooccurrencesEditor_6=\ Score \u2265
+CooccurrencesEditor_8=Cooccurrent
+CooccurrencesEditor_9=Mean distance
+CorporaView_0=Corpus
+CorporaView_1=Error\: {0}
+CorporaView_2=Can''t retrieve {0} corpus size
+CorporaView_3=Error while computing the concordance\:
+CorporaView_4=CoocMatrix symbol is\:
+CorporaView_5=Error while computing specificities\:
+CorporaView_6=Failed to open referencer editor\:
+CorporaView_7=Error while computing the lexical table\:
+CorporaView_9=Error\: {0} is not writeable
+CorpusPage_0=Editions
+CorpusPage_1=Add an edition
+CorpusPage_10=Word properties
+CorpusPage_11=Add a property definition
+CorpusPage_12=Add a structural unit definition
+CorpusPage_13=Remove a property definition
+CorpusPage_14=Pre build subcorpora and partitions
+CorpusPage_15=Add a default sub-corpus
+CorpusPage_16a=Separator characters
+CorpusPage_16=Punctuations
+CorpusPage_17=Remove a subcorpus
+CorpusPage_18=Add a default partition
+CorpusPage_19=Elision characters
+CorpusPage_2=Remove an edition
+CorpusPage_20=Remove a partition
+CorpusPage_21=Add a query
+CorpusPage_22=End of sentence characters
+CorpusPage_23=Remove selected query
+CorpusPage_24=Structures properties
+CorpusPage_25=Add a property
+CorpusPage_26=Annotate the corpus
+CorpusPage_27=Remove a structural unit definition
+CorpusPage_28=Use only those tokenizer tests
+CorpusPage_29=Add a parameter
+CorpusPage_3=Display font
+CorpusPage_30=Parameters
+CorpusPage_31=Remove a parameter
+CorpusPage_32=Add a tokenizer test
+CorpusPage_33=Add a tokenizer parameter
+CorpusPage_34=Remove a test
+CorpusPage_35=1.\t
+CorpusPage_36=Words per page
+CorpusPage_37=Select the source directory.
+CorpusPage_38=2.\t
+CorpusPage_39=Set import parameters in the sections below.
+CorpusPage_4=Add a xslt parameter
+CorpusPage_40=*: mandatory field
+CorpusPage_41=Page break tag
+CorpusPage_42=3.\t
+CorpusPage_43=Start corpus import.
+CorpusPage_44=Build edition
+CorpusPage_45=UIs
+CorpusPage_46=The source directory does not contain import.xml. Creating a new one.
+CorpusPage_47=Error while creating 'import.xml' file
+CorpusPage_48=Load import parameters from file\:
+CorpusPage_49=Default
+CorpusPage_5=Spaces
+CorpusPage_50=module UI parameters\:
+CorpusPage_51=Only these tests
+CorpusPage_52=Saving import parameters...
+CorpusPage_53=Corpus name is mandatory
+CorpusPage_54=Corpus name must contains at least one letter
+CorpusPage_55=onlyThoseTests
+CorpusPage_57=Font name
+CorpusPage_6=Delete parameter
+CorpusPage_60=OK
+CorpusPage_61=Edit XSL stylesheet...
+CorpusPage_63=Commands
+CorpusPage_64=Concordance context structure limits
+CorpusPage_65=Cannot save import configuration. No source folder selected.
+CorpusPage_66=Cannot start import configuration. No source folder selected.
+CorpusPage_67=comma separated
+CorpusPage_7=General informations
+CorpusPage_8=Corpus name* (only caps and no digit at beginning)
+CorpusPage_80=Struct limits: 
+CorpusPage_9=Description - HTML (complete name, author, date, license, comment...)
+CorpusPage_90=Error: the selected file is not a directory: 
+CorpusPage_91=Error: can not read the selected file: 
+CorpusPage_92=Error: corpus name is invalid (remove special characters and punctuation ; must not with a number): 
+CorpusPage_93=Import stopped: corpus name does not matches the '[A-Z][-A-Z0-9]{1,20}' pattern: 
+CorrespondanceAnalysisEditorInput_0=Eigenvalues
+CorrespondanceAnalysisEditorInput_1=Fact. plan
+CorrespondanceAnalysisEditorInput_10=CA
+CorrespondanceAnalysisEditorInput_2=Eigenvalues histogram
+CorrespondanceAnalysisEditorInput_26=Mass
+CorrespondanceAnalysisEditorInput_27=Dist
+CorrespondanceAnalysisEditorInput_29=Cont
+CorrespondanceAnalysisEditorInput_3=Correspondance analysis result cannot be null
+CorrespondanceAnalysisEditorInput_30=Cos\u00B2
+CorrespondanceAnalysisEditorInput_4=#
+CorrespondanceAnalysisEditorInput_5=Eigenvalue
+CorrespondanceAnalysisEditorInput_8=Rows infos
+CorrespondanceAnalysisEditorInput_9=Cols infos
+CorrespondanceAnalysisEditorInput_11=\u2211
+CreateFile_1=New file\: {0}
+CreateFolder_1=New folder\: {0}
+CreateFrequencyList_8=Loading frequencies results...
+CreateMacro_0=Macro name
+CreateMacro_1=Please write the macro name
+CreatePartitionDialog_0=Create Partition
+CreatePartitionDialog_1=Simple
+CreatePartitionDialog_10=Error: the partition created has no part
+CreatePartitionDialog_16=Queries cannot be left empty.
+CreatePartitionDialog_2=&Structure\:
+CreatePartitionDialog_3=Assisted
+CreatePartitionDialog_4=&Property\:
+CreatePartitionDialog_5=Advanced
+CreatePartitionDialog_6=&Name\:
+CreatePartitionDialog_7=Part
+CreatePartitionDialog_8=No part was defined
+CreatePartitionDialog_9=No partition name was specified. The name is {0}
+CreatePartition_0=Creating a new partition with {0}
+CreatePartition_2=** Error\: the partition was not created
+CreatePartition_5=Done\: {0} items
+CreatePartition_55=Done\: {0} items for {1} occurrences
+CreatePartition_6=Done\: {0} parts
+CreatePartition_9=Refreshing corpora...
+CreateSubCorpus_0=** Error\: subcorpus was not created
+CreateSubCorpus_1=No selection for: 
+CreateSubCorpus_2=Failed to get last CQP error\:
+CreateSubCorpus_3=Selection is not a corpus: 
+CreateSubCorpus_begin=Creating a sub-corpus in the Search Engine
+CreateSubCorpus_create=Creating a sub-corpus on {0}
+CreateSubcorpusDialog_0=Create subcorpus
+CreateSubcorpusDialog_10=&Query\:
+CreateSubcorpusDialog_11=Invalid name
+CreateSubcorpusDialog_13=Invalid query
+CreateSubcorpusDialog_14=Query cannot be left empty.
+CreateSubcorpusDialog_6=&Value\:
+CreateSubcorpusDialog_8=No subcorpus name was specified. We've generated one.
+CreateSubcorpus_7=Compute SubCorpus on {0}. Structs\: {1} & props {2}\: {3}
+CreateSubcorpus_8=Done\: {0} created
+CreateSubcorpus_9=Compute SubCorpus on {0}. Query\: {1}
+DONE=Done\: {0}
+DefineReferencePattern_0=References display options
+DefineReferencePattern_1=References &display options
+DefineReferencePattern_2=References display options
+DefineReferencePattern_3=References &sort options
+DefineReferencePattern_4=References sort options
+DefineReferencePattern_5=References sort options
+DeleteFile_0=Are you sure you want to delete to sort
+DeleteFile_2=** Failed to delete file
+DeleteInCorporaView_1=** Failed to delete subcorpus {0}
+DeleteInCorporaView_2=** Failed to delete partition {0}
+DeleteLines_0=The table must contain at least one line
+DeleteLines_1=Are you sure ?
+DeleteObject_0=Deleting {0}, continue ?
+DeleteObject_1=Failed to remove 
+DeleteObject_10=Deleted\: {0}
+DeleteObject_3=Error\: delete() returned 'false'
+DeleteObject_4=Error while deleting {0}\: {1}
+DeleteObject_5=Deleting {0}
+DiagnosticPreferencePage_1=Description
+DiagnosticPreferencePage_2=Maximum values to display
+DiagnosticPreferencePage_3=Order partition parts by size
+Diagnostique_0=Structural Units of {0}
+Diagnostique_1=Informations of {0} already exists. Do you want to compute a new one ?
+Diagnostique_10=get structural units data
+Diagnostique_11=Open editor...
+Diagnostique_2=** Failed to read *informations* file of
+Diagnostique_7=Create Informations
+Diagnostique_8=Getting general informations
+Diagnostique_9=Getting lexical properties data
+DictionnaryEditor_1=Lexicon\:\n\tPartition {0}\n\tquery {1}\n\tproperties {2}\n\tFmin {3}\n\tFmax {4}
+DictionnaryEditor_3=Lexicon\:\n\tCorpus {0}\n\tquery {1}\n\tproperties {2}\n\tFmin {3}\n\tFmax {4}
+ERROR_WHILE_LOADING_CONCORDANCE_LINE=An error occurred while retrieving the concordance lines\: {0}
+ElementTreeLabelProvider_0=** Error\: element not registered
+ElementTreeLabelProvider_1=** Error\: object is not an 'org.w3c.Element'
+EmpantWidget_0=Context\:
+EmpantWidget_1=word
+EmpantWidget_2=structure
+EmpantWidget_3=from -
+EmpantWidget_4=to -
+EmpantWidget_5=and from
+EmpantWidget_6=to
+EmpantWidget_7=include the keyword structure in the count
+EmpantWidget_8=use left Window
+EmpantWidget_9=use right Window
+Error_computing_specificities=Error while computing specificities\: {0}
+Error_creating_partition=Error while creating a partition\: {0}
+ExecuteGroovyScriptFromFile_2=The groovy script must be in the folder\: {0}
+ExecuteGroovyScript_0=\ ms
+ExecuteGroovyScript_1=Error during parameters initialisation
+ExecuteGroovyScript_2=The user canceled the script execution
+ExecuteGroovyScript_9=Error during script execution: 
+ExecuteRScript_1=Running {0}
+ExecuteRScript_2=Done\:
+ExecuteRScript_3=\ ms
+ExecuteRText_0=Running text selection...
+ExecuteRText_1=** Error while running R script {0}\: {1}
+ExecuteRText_2=\ ms
+ExecuteScriptImport_0=Import started
+ExecuteScriptImport_1=** {0} script file doesn''t exist
+ExecuteScriptImport_2=** Error\: 'corpora' directory doesn't exist\:
+ExecuteScriptImport_3=Error\: the folder {0} still exists. Cannot continue import. You can delete it manually and restart the import.
+ExecuteScriptImport_5=** Tokenizer parameters error\: import aborted.
+ExecuteScriptImport_6=The import process failed.
+ExecuteScriptImport_7=Import done\:
+ExecuteScriptImport_8=** Error while loading corpus
+ExecuteScriptR_0=** {0} R script doesn''t exist
+ExecuteScriptR_1=** Error while Running R script {0}\: {1}
+ExecuteScript_0=Execution of {0}
+ExecuteScript_1=Save file before execution ?
+ExecuteScript_2=Save and run
+ExecuteScript_3=** No interpreter found for script file extension
+ExecuteScript_4=Abort
+ExecuteScript_5=Don't save and run
+ExecuteScript_6=Always save before launching
+ExecuteScript_7=Execution canceled.
+Exit_Menu_Label=Exit
+Explorer_0=Folder {0} should not be deleted
+Explorer_1=Go to parent folder
+Explorer_2=Go to TXM home
+Explorer_3=TXM
+Explorer_4=\u21E7
+Explorer_5=\u21BB
+Explorer_6=Refresh
+Explorer_7=\u2302
+Explorer_8=Go to TXM Home
+ExportCorpus_0=** Failed to export corpus {0}
+ExportCorpus_3=Exporting {0}. This may take a while.
+ExportCorpus_4=Done, the created binary file is {0}
+ExportPreferencePage_1=Export settings
+ExportPreferencePage_18=Columns separated by
+ExportPreferencePage_19=Text separator
+ExportPreferencePage_21=Default charts export file format
+ExportPreferencePage_3=Export file encoding
+ExportPreferencePage_4=Show export result in the text editor
+ExportAnnotation_0 = Exporting annotations.
+ExportResult_0=Exporting results.
+ExportResult_1=Exporting...
+ExportResult_2={1} export saved in file: {0}
+ExportResult_3=** Export\: Can''t create file {0}\: {1}
+ExportResult_4=** Failed to export in file {0} with format {1}
+ExportResult_5=** Impossible to read {0}
+ExportResult_6=** Failed to export result {0}\: {1}
+ExportSVG_0=Exporting...
+ExportSVG_1={1} file saved in {0}
+ExportSVG_2=Exporting with device\: {0}
+ExportSVG_3=Failed to export file {0} with device {1}
+FAILED_TO_PARSE_OPTIONS=Failed to parse TXM options {0}\: {1}
+FAILED_TO_SAVE_PREFERENCES=Failed to save preferences\:
+FactorialMapEditor_0=Axes\:
+FactorialMapEditor_10=** Internal error\: CA plan selection error
+FactorialMapEditor_11=Resize
+FactorialMapEditor_13=Reseting factorial map
+FactorialMapEditor_4=Show\:
+FactorialMapEditor_5=columns
+FactorialMapEditor_6=lines
+FactorialMapEditor_8=Reloading factorial map
+FileExplorerPreferencePage_0=Regexp pattern to hide files
+FileExplorerPreferencePage_1=Show hidden files
+FileExplorerPreferencePage_2=Show folders
+FileTreeContentProvider_1=** File Explorer\: Incorrect pattern
+FileTreeContentProvider_2=\ ERROR
+FileTreeContentProvider_3=Error element\: '
+FileTreeContentProvider_4='
+FrequencyListEditorInput_0=Lexicon
+FrequencyListEditorInput_1=Pareto
+FrequencyListEditorInput_2=Lexicon cannot be null
+FrequencyListEditorInput_3=Form
+FrequencyListEditorInput_4=Frequency
+FrequencyListEditorInput_5=String
+FrequencyListEditorInput_6=Integer
+FrequencyListEditorInput_9=Type
+GenericMultiPageEditor_1=The input {0} cannot be displayed.
+GenericMultiPageEditor_3=The number of editors ({0}) and number of inputs ({1}) must be equal.
+GetConcordancesDialog_0=ERROR_GetConcordancesDialog\: {0}
+GetConcordancesDialog_1=Compute specificities
+GetConcordancesDialog_13=you must select a property.
+GetConcordancesDialog_14=Invalid property
+GetConcordancesDialog_15=you must select an property.
+GetConcordancesDialog_4=&Property\:
+GetConcordancesDialog_5=&Left context size\:
+GetConcordancesDialog_6=&Right context size\:
+GetConcordancesDialog_7=&Reference\:
+GetConcordances_4=Error while computing concordances\: {0}
+GraphicalLogger_0=Error {0}
+GroovyConsole_4=\nConsole reports an Internal error.
+GroovyConsole_5=The error is\:
+ImportDialog_0=Import setup - {0}
+ImportDialog_1=Source directory\:
+ImportDialog_13=This directory seems to contain a binary corpus
+ImportDialog_14=This computer encoding\:
+ImportDialog_16=Guess\:
+ImportDialog_19=This computer language\:
+ImportDialog_22=Select\:
+ImportDialog_23=Options
+ImportDialog_4=Sources characters encoding\:
+ImportDialog_5=Main language\:
+ImportDialog_6=Tokenizer parameter file\:
+ImportFormEditor_0=Warning\: the import script is missing\: {0}
+ImportFormEditor_1={0} Import
+ImportPreferencePage_0=Character encoding
+ImportPreferencePage_2=metadata.csv file format
+ImportPreferencePage_3=Clipboard
+ImportPreferencePage_4=Default language
+ImportPreferencePage_5=Note: Use '??' value to guess.
+ImportSelectedText_0=Import clipboard text
+ImportSelectedText_1=clipboard
+ImportSelectedText_10=Identified Language
+ImportSelectedText_12=Using language
+ImportSelectedText_2=** Clipboard is empty
+ImportSelectedText_3=Confirm
+ImportSelectedText_4=The corpus  and the corpus {0} will be deleted
+ImportSelectedText_6=** Internal error\: ImportSelectedText failed to get default project
+InternalCorpusView_0=Error while computing corpus summary
+InternalCorpusView_1=Reload
+InternalCorpusView_2=Error\: getText\: {0}
+InternalViewEditor_1=Computing Internal view
+InternalViewEditor_10=InternalView\: failed to initialize form
+InternalViewEditor_11=OK
+InternalViewEditor_16=error
+InternalViewEditor_2=Getting next result
+InternalViewEditor_25=QUERY\:
+InternalViewEditor_3=Refreshing interface
+InternalViewEditor_4=Structure\:
+InternalViewEditor_5=Structural properties\:
+Invalid_analysis_property=Invalid property
+JobHandler_0=Canceling...
+JobHandler_1=Canceling
+JobHandler_2=\ canceling requested
+JobHandler_3=Failed to cancel
+JobsTimer_12=h,
+JobsTimer_13=\ min and
+JobsTimer_15=Done in {0} ({1}).
+JobsTimer_16=. (
+JobsTimer_17=\ msec)
+JobsTimer_19=Done in {0}.
+JobsTimer_2=\ msec
+JobsTimer_20=Job\:
+JobsTimer_21=Exec\:
+JobsTimer_5=\ sec
+JobsTimer_9=\ min and
+LanguageSwitchHandler_0=Interface language (LOCALE) was not set
+LanguageSwitchHandler_1=The file {0} does not exist
+LanguageSwitchHandler_3=Choose the language
+LanguageSwitchHandler_5=SwitchLanguage\: Malformed url\: {0}
+LanguageSwitchHandler_7=TXM.ini\:
+LastCQPError=Last CQP error\:
+LexicalTableEditor_1=** Error\: different columns number\: before
+LexicalTableEditor_10=Merge or Delete columns
+LexicalTableEditor_11=Merge cols\: {0}
+LexicalTableEditor_12=Delete cols\: {0}
+LexicalTableEditor_13=Merge or Delete rows
+LexicalTableEditor_14=** Failed to import lexical table
+LexicalTableEditor_15=** Error while importing data\:
+LexicalTableEditor_16=Filtering lines
+LexicalTableEditor_18=Merging lines
+LexicalTableEditor_2=, Fmin
+LexicalTableEditor_3=, Fmax
+LexicalTableEditor_4=Apply
+LexicalTableEditor_5=Keep\: {0} lines, Fmin {1}
+LexicalTableEditor_6=Fmin\:
+LexicalTableEditor_7=\ after
+LexicalTableEditor_8=Number of lines
+LexicalTablePreferencePage_0=Lexical table
+LexicalTablePreferencePage_1=Lowest frequency
+LexicalTable_1=Property\:
+LineLabelProvider_1=Should not happen
+LoadBinaryCorpus_0=: OK
+LoadBinaryCorpus_1=Failed to remove old backup of corpus: 
+LoadBinaryCorpus_10=The new binary corpus '
+LoadBinaryCorpus_11=' could not be loaded.
+LoadBinaryCorpus_12=Restoring previous corpus...
+LoadBinaryCorpus_13=Failed to delete corrupted corpus: 
+LoadBinaryCorpus_14=. Could not restore 
+LoadBinaryCorpus_15=Failed to restore backup corpus: 
+LoadBinaryCorpus_2=Failed to backup the corpus to: 
+LoadBinaryCorpus_3=: FAIL (reason=
+LoadBinaryCorpus_4=Failed to get the new binary corpus
+LoadBinaryCorpus_5=No corpus found in the binary corpus.
+LoadBinaryCorpus_6=Testing the new CQP corpus: 
+LoadBinaryCorpus_7=)
+LocalePreferencePage_1=Configuration of the user interface language
+LocalePreferencePage_2=User interface language
+MacroExplorer_2=REFRESH the Tree
+MacrosExplorer_0=New macro
+MacrosExplorer_1=Create a new macro from a template
+MainPage_0=MainPage
+MainPage_1=Main
+MainPage_10=\tgo to the next panel, using the tabs below\n
+MainPage_11=3-\tYou can save the import parameters with the 'floppy' icon\n
+MainPage_12=4-\tTo start the import click on the 'green arrow' icon.
+MainPage_13=parallel
+MainPage_14=Corpora
+MainPage_15=Add an aligned corpus
+MainPage_17=Enter the corpus name
+MainPage_18=Front XSL
+MainPage_19=Lexical Segmentation
+MainPage_2=Import parameters of {0}
+MainPage_20=Main language
+MainPage_22=Remove a corpus
+MainPage_23=Source characters encoding
+MainPage_25=Enter the corpus name to remove
+MainPage_27=Links
+MainPage_28=Error while getting encoding
+MainPage_29=Add a link
+MainPage_3=Corpus  infos
+MainPage_30=create new link from corpora\:
+MainPage_31=Select 2 corpus\:
+MainPage_33=seg
+MainPage_34=Remove a link
+MainPage_36=Enter the line number to remove
+MainPage_38=remove link n\u00C2\u00B0
+MainPage_39=Please enter a valid linenumber
+MainPage_4=Corpus  name
+MainPage_40=First corpus
+MainPage_42=Aligned structure
+MainPage_44=* \n(archive name without extension)
+MainPage_45=Description
+MainPage_46=AddCorpus\: NEW CORPUS
+MainPage_47=
+MainPage_49=base name is mandatory
+MainPage_5=Opening...
+MainPage_50=refresh links table
+MainPage_52=The source directory does not contain import.xml
+MainPage_53=Sorry, 'the import.xml' file could not been created
+MainPage_54=Load params from\:
+MainPage_55=Params\:
+MainPage_6=Saving...
+MainPage_7=Starting...
+MainPage_8=1-\tClick on the 'folder' icon to choose the source directory\n
+MainPage_9=2-\tIf you want to add details such as default subcorpus, exemple queries or types of word properties,\n
+MergeCols_1=New name
+MergeCols_2=Edit the name of the new column created by the merged columns
+MergeCols_5=Names\:
+MergeCols_6=End of column merge.
+MergeDeleteDialog_0=merge
+MergeDeleteDialog_1=Merge/Delete
+MergeDeleteDialog_4=merge result name
+MergeLines_2=Edit the name of the new line created by the merged lines
+MetadataPage_1=Metadata preview
+MetadataPage_2=Metadatas parameters
+MetadataPage_3=Refresh
+MetadataPage_4=Metadata column titles
+MetadataPage_5=Text ID
+MetadataPage_7=No metadata file {0}
+MultipleValueTreeDialog_0=add\:
+NavigationWidget_0=Error while getting current position value\:
+ObjectExplorer_0=Informations\:
+ObjectExplorer_10=Remove property
+ObjectExplorer_12=Enter a property name to remove
+ObjectExplorer_15=add a new property to all children
+ObjectExplorer_2=Value
+ObjectExplorer_21=remove a property from the children
+ObjectExplorer_26=Name
+ObjectExplorer_27=Key
+ObjectExplorer_3=New property
+ObjectExplorer_4=Property name
+ObjectExplorer_5=Enter a property name to add
+ObjectExplorer_7=new name
+ObjectExplorer_9=
+ObjectSelectionDialog_0=Value selector
+ObjectSelectionDialog_3=Found {0} value(s)
+ObjectSelectionDialog_5=Wrong regular expression\: {0}
+ObjectSelector_0=Obj\:
+ObjectSelector_1=Select
+OpenBiblio_1=No text in corpus \: {0}
+OpenBiblio_2=Select text id
+OpenBiblio_7=Could not find text {0} in corpus  {1}
+OpenBiblio_9=Text {0} has no bibliographic record
+OpenBrowser_0=** Error while opening bibliographic record
+OpenBrowser_1=. URL
+OpenEdition_0=Select a part
+OpenEdition_1=Failed to load edition of {0}
+OpenEdition_2=No main corpus for corpus: 
+OpenEdition_3=Opening edition of {0}
+OpenEdition_5=** Could not find first text with {0} ID in the corpus
+OpenEdition_7=** Failed to find default edition of text
+OpenEdition_8=** Failed to find first page of edition
+OpenEmptyEditor_2=Could not find directory\: {0}
+OpenGraph_8=Can''t open graphic {0}
+OpenParaBrowser_0=Opening the parabrowser
+OpenSVGGraph_0=SVG Graphic
+OpenTXMUserPreferences_0=Default settings
+OpenURI_0=** Desktop is not supported (fatal)
+OpenURI_1=** Error while opening file {0}
+ParaBrowserEditor_11=ParaBrowser\: get next({0}) struct {1} paraid {2} value {3}
+ParaBrowserEditor_18=-MOVE to
+ParaBrowserEditor_19=-Don't MOVE \!\!\!\!\! NEXT is
+ParaBrowserEditor_21=_
+ParaBrowserEditor_22=Open Parabrowser
+ParaBrowserEditor_3=Ref\:
+ParaBrowserEditor_4=R\u00E9f\u00E9rences
+ParaBrowserEditor_5=Structure
+ParaBrowserEditor_9=Ref\: {0}\: {1}
+ParametersDialog_0={0} parameters input
+ParametersDialog_1=Run
+ParametersDialog_10=Unknowed widget name\: '
+ParametersDialog_11=(* mandatory fields)
+ParametersDialog_12=** Error\: missing value\:
+ParametersDialog_13=** Error\: format error\:
+ParametersDialog_14=Error in @Option name declaration\:
+ParametersDialog_15=Error\: the bean is not a groovy.lang.Script object
+ParametersDialog_17=Error\: the ''monitor'' (JobHandler class) binding is missing. Got\: {0}.
+PartitionComposer_0=Structure\:
+PartitionComposer_1=Error: this partition has no part.
+PartitionComposer_11=Remove
+PartitionComposer_2=Select values to assign\:
+PartitionComposer_3=New part
+PartitionComposer_5=Part
+PartitionComposer_6=Rmv all the parts
+PartitionComposer_8=Title\:
+PartitionComposer_9=Assign
+PartsSize_0=\n Sorted by size
+PartsSize_10=Dimensions of partition {0} of corpus {1}
+PartsSize_18=Dimensions\: {0}
+PartsSize_2=Number of words per part
+PasteFile_1=** Failed to copy
+PasteFile_3=** Failed to delete
+PasteFile_4=\:
+Preferences_Menu_Label=Preferences
+ProgressionForm_0=Type\:
+ProgressionForm_1=cumulatif
+ProgressionForm_10=Repeated
+ProgressionForm_11=B&&W
+ProgressionForm_12=QUERIES\:
+ProgressionForm_13=Add
+ProgressionForm_14=Delete
+ProgressionForm_2=density
+ProgressionForm_3=Scale
+ProgressionForm_5=Display options
+ProgressionForm_6=Structural unit\:
+ProgressionForm_7=Property\:
+ProgressionForm_8=Reg. Exp.\:
+ProgressionForm_9=Differents line styles
+PropertiesSelector_0=Can''t load properties from corpus {0}\: {1}
+PropertiesSelector_1=Properties\:
+PropertiesSelector_2=Edit
+PropertySelector_0=Select a property
+PurgeCorpora_0=Warning\! this command will delete the selected corpora, Continue ?
+PurgeCorpora_1=Corpora to delete
+PurgeCorpora_10=Creating new workspace
+PurgeCorpora_12=Restarting platform
+PurgeCorpora_13=** Error\: could not find workspace\:
+PurgeCorpora_2=** Warning\: Failed to delete corpora\:
+PurgeCorpora_3=Warning\! this command will delete all your corpora, Continue ?
+PurgeCorpora_4=** Error\: 'TXMHOME' environment variable is not set (its standard value is '$HOME/TXM'). Aborting
+PurgeCorpora_5=Delete all corpora
+PurgeCorpora_7=** Failed to delete corpora
+PurgeCorpora_9=** Failed to delete registry
+QueriesView_1=Export all
+QueriesView_10=Error with element {0}
+QueriesView_5=Queries\:\n
+QueryAssistDialog_0=Query Assistant
+QueryAssistDialog_1=Add a word
+QueryAssistDialog_10=equals to
+QueryAssistDialog_11=starts with
+QueryAssistDialog_12=ends with
+QueryAssistDialog_13=contains
+QueryAssistDialog_2=I'm looking for:
+QueryAssistDialog_3=I''m looking for {0} words
+QueryAssistDialog_32=followed by
+QueryAssistDialog_33=separated by at least 0 word
+QueryAssistDialog_34=separated by at least 1 word
+QueryAssistDialog_8=a word with its property
+QueryIndexEditor_0=Query Index of
+QueryIndexEditor_1=replacing line\:
+QueryIndexEditor_10=queries
+QueryIndexEditor_11=
+QueryIndexEditor_2=Failed to add line with query\:
+QueryIndexEditor_3=Line added.
+QueryIndexEditor_4=Load from a file
+QueryIndexEditor_5=*.properties
+QueryIndexEditor_6=Cannot read from file\:
+QueryIndexEditor_7=Link to concordance
+QueryIndexEditor_8=Link to progression
+QueryIndexEditor_9=delete lines
+RConsole_0=Connecting RConsole to RWorkspace stdout and stderr.
+RConsole_1=Error while initializing RConsole: 
+RPreferencePage_0=Run RServe in debug mode
+RPreferencePage_1=Port (default is 6311)
+RPreferencePage_2=Path to R binary
+RPreferencePage_3=Remote connection
+RPreferencePage_4=Server address
+RPreferencePage_5=User
+RPreferencePage_6=Password
+RPreferencePage_7=Use file based R data transfert
+RPreferencePage_8=R args
+RPreferencePage_9=Rserve args
+RVariablesView_1=Refresh variables
+RVariablesView_2=Show eval logs
+RVariablesView_9="TXM name {0} >> R name {1}
+ReferencerEditor_0=Compute references of <{0}> in {1} with property {2} and pattern {3}
+ReferencerEditor_10=Get indexes
+ReferencerEditor_11=References
+ReferencerEditor_12=Group positions by indexes
+ReferencerEditor_13=Refresh ui
+ReferencerEditor_17=Showing first result page
+ReferencerEditor_19=Showing last result page
+ReferencerEditor_21=Showing next result page
+ReferencerEditor_23=Showing previous result page
+ReferencerEditor_25=Opening concordances
+ReferencerEditor_5=Computing references of {0}
+ReferencerEditor_6=Reference pattern
+ReferencerEditor_7=No results
+ReferencerEditor_8=Get matches
+ReferencerEditor_9=Units
+ReferencerPreferencePage_2=Referencer
+ReferencerPreferencePage_3=Order references by frequency
+RenameFile_0=Rename file
+RenameFile_2=renaming by\:
+RenameFile_3=** Failed to rename
+ProgressionDialog_0=Progression Parameters
+ProgressionDialog_1=Graph type\:
+ProgressionDialog_10=Progression dialog\: wrong regular expression\:
+ProgressionDialog_11=Bandewidth multiplier\:
+ProgressionDialog_13=Display options
+ProgressionDialog_14=Single line style
+ProgressionDialog_15=Repeat same values
+ProgressionDialog_16=Monochrome
+ProgressionDialog_17=Strip multiplier error\:
+ProgressionDialog_2=cumulative
+ProgressionDialog_3=density
+ProgressionDialog_4=Structural Unit\:
+ProgressionDialog_5=delete
+ProgressionDialog_7=Regex\:
+ProgressionDialog_8=Queries\:
+ProgressionDialog_9=add
+ProgressionEditorInput_0=PROGRESSION NAME
+RestartTXM_0=Reloading views...
+RestartTXM_1=Restart TXM
+RunGroovyScript_0=Script execution
+RunGroovyScript_1=&Run script
+RunGroovyScript_2=Run script
+RunGroovyScript_3=*.groovy
+RunGroovyScript_4=Error while opening groovy script\: {0}
+RunGroovyScript_8=Error while running script\: {0}
+RunGroovyScript_9=Execute script
+RunGroovyScript_10=Sources folder:
+SVGGraphicEditor_1=Cannot draw a graphic with the information provided.
+SaveAs_2=** Failed to save as
+ScriptPreferencePage_0=Next session number
+ScriptPreferencePage_1=Save script before execution
+ScriptPreferencePage_3=&Root folder
+SendToR_0=Sending to R Workspace\:
+SendToR_3=Refreshing views
+SetContextSize_1=&Contexts display options
+SetContextSize_2=Contexts display options
+SetContextSize_3=Left context size
+SetContextSize_4=Right context size
+SetEncoding_0=Change characters encoding
+SetEncoding_1=Change characters encoding.\n\n\tCurrent encoding\:
+SetEncoding_2=\n\tDefault encoding\:
+SetLineNumber_0=Pagination options
+SetLineNumber_1=Line per page\:
+SetSortProperty_1=&Sort options
+SetSortProperty_2=Sort options
+SetSortProperty_3=Sort options
+ShowSelected_4=Set the 'LANG' property
+ShowSvgHelp_0=Graphics keyboard shortcuts
+ShowSvgHelp_1=\tPan\: Right Mouse + Drag\n
+ShowSvgHelp_2=\tZoom in&out\: Mouse wheel OR Shift + Right Mouse + Drag\n
+ShowSvgHelp_3=\tZoom to selection\: Ctrl+Left Mouse+drag\n
+ShowSvgHelp_4=\t\n
+ShowSvgHelp_5=\tReset the view\: F5
+SimpleSubcorpusPanel_0=Structural unit combo selected
+SingularValuesEditor_0=wrong input
+SortPropertySelection_0=Sort options
+Structure_field_not_empty=structure field is mandatory.
+Submit_0=Save script
+SummaryView_0=No default edition page found for element: 
+TXMCqpServerWatcher_0=CQP server is down
+TXMCqpServerWatcher_1=Please wait for searchengine to restart...
+TXMRServeWatcher_0=StatEngine server is down
+TXMRServeWatcher_1=Please wait for StatEngine to restart...
+TXMRServeWatcher_2=Ok
+TXMRServeWatcher_3=Reloading corpora view...
+TXMRServeWatcher_4=Please wait...
+TablableVector_0=The two arrays must have the same size.
+TableEditor_0=Cannot draw a table with the information provided\: {0}
+TableKeyListener_0=Found lines: 
+TableKeyListener_1=Enter the regular expression of your search
+TableKeyListener_6=Copied line(s)\: \n
+TableSorter_0=Column index is too big.
+TextometriePreferencePage_0=Check for updates at startup
+TextometriePreferencePage_1=General preferences backup
+TextometriePreferencePage_14=Preferences saved in
+TextometriePreferencePage_15=Export to file
+TextometriePreferencePage_18=Preferences imported from
+TextometriePreferencePage_19=TXM needs to close the preferences window to update them
+TextometriePreferencePage_2=Automatic updates
+TextometriePreferencePage_20=Import from a file
+TextualPlansSection_milestone_label=Milestone elements
+TextualPlansSection_milestone_tooltip=List of milestone elements, separated by ',' (comma).
+TextualPlansSection_outsidetext_label=Outside-text
+TextualPlansSection_outsidetext_tooltip=List of tags encoding the outside-text \n(no structure or word content indexed, no structure or word content edited in TXM)
+TextualPlansSection_outsidetexttoedit_label=Outside-text to-edit
+TextualPlansSection_outsidetexttoedit_tooltip=List of tags encoding the outside-text to edit \n(no structure or word content indexed, structure and word content edited in TXM)
+TextualPlansSection_save_error=Textual plan parameters not saved.
+TextualPlansSection_title=Textual planes
+TextualPlansSection_update_error=Textual plan section parameters not updated.
+TreeTaggerPreferencePage_0=Don't normalize apostrophes to '
+TreeTaggerPreferencePage_1=Path to install directory
+TreeTaggerPreferencePage_2=Path to models directory
+TreeTaggerPreferencePage_3=Options [separated by '  ' (2 spaces)]
+TxmBrowser_0=Beginning
+TxmBrowser_10=Could not launch the internal web browser. You must set that parameter in the preferences, menu\: General>WebNavigator
+TxmBrowser_11=No previous text
+TxmBrowser_12=No text next
+TxmBrowser_5=Previous page
+TxmBrowser_6=Next page
+TxmBrowser_7=End
+TxmBrowser_8=Next text
+TxmBrowser_9=Previous text
+TxmCommand_1=Loading extension
+TxtEditor_0=TextEditor\:
+TxtEditor_1=Encoding found
+UIParameterException_0=Error
+UserPreferencePage_0=User page
+UserPreferencePage_1=Recompute automatically
+UserPreferencePage_3=Do not confirm to delete an object
+ViewPropertySelectionDialog_0=Display options
+ViewPropertySelection_0=Display options
+IndexEditor_0=Index\: query is empty
+IndexEditor_1=** Failed to compute index
+IndexEditor_10=CQP error\:
+IndexEditor_17=Index\:\n\tPartition {0}\n\tquery {1}\n\tproperties {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_18=Index\:\n\tCorpus {0}\n\tquery {1}\n\tproperties {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_2=Index of <{0}> with property\: {1} in the corpus\: {2}
+IndexEditor_20=Index of <{0}> with property\: {1} in the partition\: {2}
+IndexEditor_22=Couldn't initialize Index table
+IndexEditor_25=, fmin
+IndexEditor_26=, fmax
+IndexEditor_27=t
+IndexEditor_28=, v
+IndexEditor_29=Opening the Index results
+IndexEditor_3=Query\:
+IndexEditor_31=Done\: no result
+IndexEditor_33=Computing index
+IndexEditor_36=Sorting column
+IndexEditor_37=Sort done.
+IndexEditor_4=&Search
+IndexEditor_5=Fmin\:
+IndexEditor_6=Fmax\:
+IndexEditor_7=Vmax\:
+IndexEditor_8=Page size\:
+IndexEditor_9=Thresholds\:
+IndexToCooccurrence_0=Error while linking Index to Cooccurences
+IndexToLexicalTable_0=Cannot create a Lexical Table from an Index created with a Corpus (more than one column is needed)
+IndexToLexicalTable_1=StatEngine is not ready. Canceling command.
+WordCloudPreferencePage_0=Maximum number of words
+WordCloudPreferencePage_1=Minimal frequency
+WordCloudPreferencePage_2=Percents of rotated words
+WordCloudPreferencePage_3=Random color order
+
+CheckRPackages_0=TXM could not load the 'textometry' R package. The Cooccurence, Specificity and Progression commands won't be available
+CheckRPackages_1=TXM could not load the 'FactoMineR' R package. The Correspondance analysis, Classification commands won't be available
+CheckRPackages_13=An error occured while getting RWorkspace insance: 
+CheckRPackages_14=The '
+CheckRPackages_15=' package is not installed. Trying to install it now...
+CheckRPackages_19=Done: '
+CheckRPackages_2=R package diagnostic
+CheckRPackages_20=' installed successfully.
+CheckRPackages_21=The '
+CheckRPackages_22=' package was not installed. Please install it manually:\n * Run R\n * and execute 'install.packages("
+CheckRPackages_23="')
+CheckRPackages_24=Error while installing package: 
+CheckRPackages_25=The R StatEngine is not running. Trying to reinstall the packages (RServe, FactoMineR, textometry,...
+CheckRPackages_26=TXM could not reinstall R packages. Please do it manually (see manual).
+CheckRPackages_3=Necessary packages are ready.
+CheckRPackages_31=ERROR: Rlist first element is not REXPInteger: 
+CheckRPackages_32=ERROR: REval list size is 0: 
+CheckRPackages_33=ERROR: REval is not a list: 
+CheckRPackages_35=Updating the 
+CheckRPackages_36=\ (
+CheckRPackages_37=) R package up to version 
+CheckRPackages_4=R package diagnostic
+CheckRPackages_42=Update of '
+CheckRPackages_43=' failed (current version is still 
+CheckRPackages_44=). Warning: Windows users need to restart TXM.
+CheckRPackages_5=Some packages are missing. See console for details.
+CheckRPackages_9=Checking R packages...
+CleanPerspective_1=Error while calling 'org.eclipse.ui.window.resetPerspective': 
+CleanPerspective_2=Error while cleaning perspective: no handler service found
+ExecuteLastGroovyScript_0=Executing last macro: 
+ExecuteLastGroovyScript_1=Executing last script: 
+ExecuteLastGroovyScript_3=Error: Current Groovy script directory does not exist: 
+ShowSelected_0=File: 
+
+SaveBeforeExecutionDialog_0=Save before execution ?
+PartsSize_0=StatEngine is not ready. Canceling command.
+DownloadJobHandler_0=Downloading...
+FixUpdateHandler_0=Ready to show Update UI

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

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieLabelProvider.java	(revision 122)
@@ -0,0 +1,117 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Label provider of the corpus view
+ *  
+ * @author mdecorde.
+ */
+public class TextometrieLabelProvider extends LabelProvider {
+
+	/** The image table. */
+	private Map<ImageDescriptor, Image> imageTable = 
+			new HashMap<ImageDescriptor, Image>();
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param element the element
+	 * @return the adapter
+	 */
+	protected final IWorkbenchAdapter getAdapter(Object element) {
+		IWorkbenchAdapter adapter = null;
+		if (element instanceof IAdaptable)
+			adapter = (IWorkbenchAdapter) ((IAdaptable) element)
+					.getAdapter(IWorkbenchAdapter.class);
+		if (adapter == null)
+			adapter = (IWorkbenchAdapter) Platform.getAdapterManager()
+					.loadAdapter(element, IWorkbenchAdapter.class.getName());
+		return adapter;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
+	 */
+	@Override
+	public final Image getImage(Object element) {
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter == null) {
+			return null;
+		}
+		ImageDescriptor descriptor = adapter.getImageDescriptor(element);
+		if (descriptor == null) {
+			return null;
+		}
+		Image image = imageTable.get(descriptor);
+		if (image == null) {
+			image = descriptor.createImage();
+			imageTable.put(descriptor, image);
+		}
+		
+		return image;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
+	 */
+	@Override
+	public final String getText(Object element) {
+		IWorkbenchAdapter adapter = getAdapter(element);
+		if (adapter == null) {
+			return ""; //$NON-NLS-1$
+		}
+		return adapter.getLabel(element);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		if (imageTable != null) {
+			for (Iterator<Image> i = imageTable.values().iterator(); i
+					.hasNext();) {
+				i.next().dispose();
+			}
+			imageTable = null;
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TextometrieLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/decorators/RDecorator.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/decorators/RDecorator.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/decorators/RDecorator.java	(revision 122)
@@ -0,0 +1,87 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.decorators;
+
+import java.lang.reflect.Method;
+
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.utils.OverlayImageIcon;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RDecorator.
+ */
+public class RDecorator extends LabelProvider implements ILabelDecorator
+{
+	
+	/**
+	 * Instantiates a new r decorator.
+	 */
+	public RDecorator()
+	{
+		super();
+	}
+	// Method to decorate Image 
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ILabelDecorator#decorateImage(org.eclipse.swt.graphics.Image, java.lang.Object)
+	 */
+	@Override
+	public Image decorateImage(Image image, Object object)
+	{
+		String symbol= null;
+		try {
+			Method getname = object.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+			symbol = (String)getname.invoke(object);
+		} catch (Exception e) {return null;}
+		
+		if (symbol == null) {
+			return null;
+		}
+		//System.out.println("decorate "+symbol);
+		// Overlay custom image over base image 
+		Image image2;
+		OverlayImageIcon overlayIcon = new OverlayImageIcon(image,  IImageKeys.RDECORATION);
+		image2 = overlayIcon.getImage();
+		return image2;
+
+		// The image should be disposed when the plug-in is 
+		// disabled or on shutdown 
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ILabelDecorator#decorateText(java.lang.String, java.lang.Object)
+	 */
+	@Override
+	public String decorateText(String text, Object element) {
+		// TODO Auto-generated method stub
+		return null;
+	}	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/decorators/RDecorator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/IImageKeys.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/IImageKeys.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/IImageKeys.java	(revision 122)
@@ -0,0 +1,250 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.HashMap;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Store image keys and also Image objects 
+ * 
+ * @author mdecorde.
+ */
+public abstract class IImageKeys {
+
+	/** The images. */
+	private static HashMap<String, Image> images = new HashMap<String, Image>();
+	
+	/** The Constant ACTION_REFERENCER. */
+	public static final String ACTION_REFERENCER = "icons/functions/Referencer.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_CONCORDANCES. */
+	public static final String ACTION_CONCORDANCES = "icons/functions/Concordances.png"; //$NON-NLS-1$
+	public static final String CONCORDANCE_DELETE = "icons/functions/Concordances_delete_line.png"; //$NON-NLS-1$
+	/** The Constant ACTION_COOCCURRENCE. */
+	public static final String ACTION_COOCCURRENCE = "icons/functions/Cooccurrences.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_CORRESPONDANCE_ANALYSIS. */
+	public static final String ACTION_CORRESPONDANCE_ANALYSIS = "icons/functions/CorrespondanceAnalysis.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_PARTITION. */
+	public static final String ACTION_PARTITION = "icons/functions/Partition.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_SPECIFICITIES. */
+	public static final String ACTION_SPECIFICITIES = "icons/functions/Specificities.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_SUBCORPUS. */
+	public static final String ACTION_SUBCORPUS = "icons/functions/SubCorpus.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_RUN_SCRIPT. */
+	public static final String ACTION_RUN_SCRIPT = "icons/functions/RunScript.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_FREQUENCY_LIST. */
+	public static final String ACTION_FREQUENCY_LIST = "icons/functions/IndexP.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_INDEX. */
+	public static final String ACTION_INDEX = "icons/functions/Index.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_PROGRESSION. */
+	public static final String ACTION_PROGRESSION = "icons/functions/Progression.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_ASSISTQUERY. */
+	public static final String ACTION_ASSISTQUERY = "icons/functions/Queryassist.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_DELETE. */
+	public static final String ACTION_DELETE = "icons/functions/Delete.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_SEARCH. */
+	public static final String ACTION_SEARCH = "icons/functions/Search.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_CAH. */
+	public static final String ACTION_CAH = "icons/functions/CAH.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_INFO. */
+	public static final String ACTION_INFO = "icons/functions/diagnostique.png"; //$NON-NLS-1$
+		
+	/** The Constant TEXT. */
+	public static final String TEXT = "icons/objects/book.png"; //$NON-NLS-1$
+	
+	/** The Constant BASE. */
+	public static final String BASE = "icons/objects/books.png"; //$NON-NLS-1$
+	
+	/** The Constant QUERY. */
+	public static final String QUERY = "icons/objects/query.png"; //$NON-NLS-1$
+	
+	/** The Constant CORPUS. */
+	public static final String CORPUS = "icons/objects/corpus.png"; //$NON-NLS-1$
+	
+	/** The Constant EDITION. */
+	public static final String EDITION = "icons/objects/edition.png"; //$NON-NLS-1$
+	
+	/** The Constant FILE. */
+	public static final String FILE = "icons/objects/file.png"; //$NON-NLS-1$
+	
+	/** The Constant FOLDER. */
+	public static final String FOLDER = "icons/objects/folder.png"; //$NON-NLS-1$
+	
+	/** The Constant FOLDER. */
+	public static final String SAVE = "icons/functions/save.png"; //$NON-NLS-1$
+	
+	/** The Constant FOLDER. */
+	public static final String START = "icons/functions/run.png"; //$NON-NLS-1$
+	
+	/** The Constant PARTITION. */
+	public static final String PARTITION = "icons/objects/partition.png"; //$NON-NLS-1$
+	
+	/** The Constant LEXICALTABLE. */
+	public static final String LEXICALTABLE = "icons/objects/lexicaltable.png"; //$NON-NLS-1$
+	
+	/** The Constant PROJECT. */
+	public static final String PROJECT = "icons/objects/project.png"; //$NON-NLS-1$
+	
+	/** The Constant SCRIPT. */
+	public static final String SCRIPT = "icons/objects/script.png"; //$NON-NLS-1$
+	
+	/** The Constant SUBCORPUS. */
+	public static final String SUBCORPUS = "icons/objects/subcorpus.png"; //$NON-NLS-1$
+	
+	/** The Constant ACTION_TEXT. */
+	public static final String ACTION_TEXT = "icons/objects/text.png"; //$NON-NLS-1$
+	
+	/** The Constant RDECORATION. */
+	public static final String RDECORATION = "icons/decorators/R.png"; //$NON-NLS-1$
+
+	public static final String GRAPH_SPECIFICITIES = "icons/functions/SpecificitiesGraph.png"; //$NON-NLS-1$
+	
+	/** The Constant CHECKED. */
+	public static final String CHECKED = "icons/tick.png"; //$NON-NLS-1$
+	
+	/** The Constant UNCHECKED. */
+	public static final String UNCHECKED = "icons/cross.png"; //$NON-NLS-1$
+
+
+	public static final String ACTION_INTERNALVIEW = "icons/functions/InternalView.png"; //$NON-NLS-1$
+
+
+	public static final String ACTION_INTERTEXTDIST = "icons/functions/dist.png"; //$NON-NLS-1$
+
+
+	public static final String QUERYINDEX = "icons/functions/QueryIndex.png"; //$NON-NLS-1$
+
+
+	public static final String COOCMATRIX = "icons/functions/graph.png"; //$NON-NLS-1$
+
+
+	public static final String ACTION_WORDCLOUD = "icons/functions/WordCloud.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLSTART = "icons/control_start_blue.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLREVERSE = "icons/control_reverse_blue.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLPLAY = "icons/control_play_blue.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLEND = "icons/control_end_blue.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLFASTFORWARD = "icons/control_fastforward_blue.png"; //$NON-NLS-1$
+	
+	public static final String CTRLFASTFORWARDEND = "icons/control_fastforwardend_blue.png"; //$NON-NLS-1$
+
+
+	public static final String CTRLREWINDSTART = "icons/control_rewindstart_blue.png"; //$NON-NLS-1$
+	public static final String CTRLREWIND = "icons/control_rewind_blue.png"; //$NON-NLS-1$
+
+	/**
+	 * Chart editor export view command icon.
+	 */
+	public static final String CHARTS_EXPORT_VIEW = "icons/functions/charts_export_view.png"; //$NON-NLS-1$
+	
+	/**
+	 * Chart editor reset view command icon.
+	 */
+	public static final String CHARTS_RESET_VIEW = "icons/functions/charts_reset_view.png"; //$NON-NLS-1$
+
+	/**
+	 * CA Chart editor show/hide columns command icon.
+	 */
+	public static final String CHARTS_CA_SHOW_COLUMNS = "icons/functions/charts_CA_show_colums.png"; //$NON-NLS-1$
+	
+	/**
+	 * CA Chart editor show/hide rows command icon.
+	 */
+	public static final String CHARTS_CA_SHOW_ROWS = "icons/functions/charts_CA_show_rows.png"; //$NON-NLS-1$
+
+	/**
+	 * CAH Chart editor compute columns command icon.
+	 */
+	public static final String CHARTS_CAH_COMPUTE_COLUMNS = "icons/functions/charts_CAH_compute_columns.png"; //$NON-NLS-1$
+	
+	/**
+	 * CAH Chart editor compute rows command icon.
+	 */
+	public static final String CHARTS_CAH_COMPUTE_ROWS = "icons/functions/charts_CAH_compute_rows.png"; //$NON-NLS-1$
+	
+	/**
+	 * Global export chart command icon.
+	 */
+	public static final String CHARTS_EXPORT_CHART = "icons/functions/export_chart.png"; //$NON-NLS-1$
+
+	/**
+	 * Global export result data command icon.
+	 */
+	public static final String CHARTS_EXPORT_DATA = "icons/functions/export_data.png"; //$NON-NLS-1$
+
+	public static final String PENCIL_ADD = "icons/functions/pencil_add.png"; //$NON-NLS-1$
+	public static final String PENCIL = "icons/functions/pencil.png"; //$NON-NLS-1$
+	public static final String PENCIL_SAVE = "icons/functions/pencil_save.png"; //$NON-NLS-1$
+
+	public static final String ACTION_ADD = "icons/add.png";//$NON-NLS-1$
+	public static final String WORLD = "icons/world.png";
+
+	/**
+	 * Gets the image.
+	 *
+	 * @param imagekey the imagekey
+	 * @return the image
+	 */
+	public static Image getImage(String imagekey) {
+		if (!images.containsKey(imagekey))
+			images.put(imagekey, new Image(null, AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, imagekey)
+					.getImageData()));
+		return images.get(imagekey);
+	}
+	
+	public static ImageDescriptor getImageDescriptor(String imagekey) {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID, imagekey);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/IImageKeys.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportFormEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportFormEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportFormEditor.java	(revision 122)
@@ -0,0 +1,294 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.imports;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.ExecuteImportScript;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.input.ImportFormEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * display&edit the import parameters 
+ * @author mdecorde.
+ */
+public class ImportFormEditor extends FormEditor implements CustomizableEditor{
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.imports.ImportFormEditor"; //$NON-NLS-1$
+
+	/** The groovyscript. */
+	private File groovyscript;
+
+	/** The toolkit. */
+	private FormToolkit toolkit;
+
+	/** The form. */
+	private ScrolledForm form;
+
+	/** The main. */
+	private CorpusPage main;
+
+	/** The meta. */
+	MetadataPage meta;
+	
+	/**
+	 * Instantiates a new import form editor.
+	 */
+	public ImportFormEditor() {
+		super();
+	}
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+
+	}
+	
+	/**
+	 * Remove a page
+	 * @param page
+	 */
+	public void removePage(FormPage page)
+	{
+		int idx = pages.indexOf(page);
+		this.removePage(idx);
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+	throws PartInitException {
+		setSite(site);
+		setInput(input);
+		
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		String filepath = "scripts/import/" + ((ImportFormEditorInput) input).getGroovyFile().getName(); //$NON-NLS-1$ 
+		this.setGroovyscript(new File(txmhome, filepath));
+		
+		ExecuteImportScript.getImportScriptFromToolboxPlugin(getGroovyscript()); // always update if script from Toolbox is more recent
+		
+		if (!getGroovyscript().exists()) // just a warning message
+			System.out.println(NLS.bind(Messages.ImportFormEditor_0, getGroovyscript()));
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getPartName() {
+		String name = Messages.bind(Messages.ImportFormEditor_1,ImportModuleCustomization.getName(groovyscript.getName()));
+		return name;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return getGroovyscript();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
+	 */
+	@Override
+	protected void addPages() {
+		main = new CorpusPage(this);
+		meta = new MetadataPage(this, main);
+		
+		try {
+			this.addPage(main);
+			this.addPage(meta);
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	public CorpusPage getMainPage() {
+		return main;
+	}
+	
+	public MetadataPage getMetaPage() {
+		return meta;
+	}
+	
+	/**
+	 * Gets the groovy script.
+	 *
+	 * @return the groovy script
+	 */
+	public File getGroovyScript() {
+		return getGroovyscript();
+	}
+
+	/**
+	 * @return the groovyscript
+	 */
+	public File getGroovyscript() {
+		return groovyscript;
+	}
+
+	/**
+	 * @param groovyscript the groovyscript to set
+	 */
+	public void setGroovyscript(File groovyscript) {
+		this.groovyscript = groovyscript;
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportFormEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataCellEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataCellEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataCellEditor.java	(revision 122)
@@ -0,0 +1,115 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.imports;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.txm.metadatas.Metadata;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MetadataCellEditor.
+ */
+public class MetadataCellEditor extends EditingSupport {
+	
+	/** The editor. */
+	private CellEditor editor;
+	
+	/** The column index. */
+	private int columnIndex;
+
+	/**
+	 * Instantiates a new metadata cell editor.
+	 *
+	 * @param viewer the viewer
+	 * @param columnIndex the column index
+	 */
+	public MetadataCellEditor(ColumnViewer viewer, int columnIndex) {
+		super(viewer);
+		this.columnIndex = columnIndex;
+		editor = new TextCellEditor(((TableViewer) viewer).getTable());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
+	 */
+	@Override
+	protected boolean canEdit(Object element) {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object)
+	 */
+	@Override
+	protected CellEditor getCellEditor(Object element) {
+		return editor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
+	 */
+	@Override
+	protected Object getValue(Object element) {
+		Metadata object = (Metadata) element;
+		switch(columnIndex)
+		{
+		case 0:
+			return object.id;
+		case 1:
+			return object.longname;
+		case 2:
+			return object.type;
+		}
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	protected void setValue(Object element, Object value) {
+		Metadata object = (Metadata) element;
+		switch(columnIndex)
+		{
+		case 0:
+			object.id = value.toString();
+			break;
+		case 1:
+			object.longname = value.toString();
+			break;
+		case 2:
+			object.type = value.toString();
+			break;
+		}
+		getViewer().update(element, null);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataCellEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/AnnotationSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/AnnotationSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/AnnotationSection.java	(revision 122)
@@ -0,0 +1,85 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+
+public class AnnotationSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+	public static final String DEFAULTNAMESUFFIX = "KR";
+	
+	Text nameText;
+	
+	public AnnotationSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText("Annotation");
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		Label l = toolkit.createLabel(sectionClient, "Knowledge repository name", SWT.WRAP);
+		l.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE));
+
+		nameText = new Text(sectionClient, SWT.BORDER);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+		List<String> values = params.getKnowledgeRepositoryNames();
+		
+		String value = params.getCorpusName()+DEFAULTNAMESUFFIX;
+		if (values.size() > 0) {
+			value = values.get(0);
+		}
+		nameText.setText(value);
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (!this.section.isDisposed()) {
+			String value = nameText.getText();
+						
+			return true;
+		}
+		return false;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/AnnotationSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TokenizerSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TokenizerSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TokenizerSection.java	(revision 122)
@@ -0,0 +1,368 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.util.HashMap;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.imports.ImportModuleCustomization;
+import org.txm.tokenizer.TokenizerClasses;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class TokenizerSection extends ImportEditorSection {
+
+	static final int SECTION_SIZE = 1;
+	Text wordElementText;
+	Button doTokenizeStepButton;
+	Text textElisions;
+	Text textPuncts;
+	Text textPunctsStrong;
+	Text textWhiteSpaces;
+	Label titleLabel;
+	TableViewer tokenizerParamsViewer;
+	TableViewer tokenizerParamsViewer2;
+	private HashMap<String, Boolean> moduleParams;
+
+	public TokenizerSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style, HashMap<String, Boolean> moduleParams) {
+		super(toolkit2, form2, parent, style);
+		this.moduleParams = moduleParams;
+		this.section.setText(Messages.MainPage_19);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 3;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+		
+		Label tmpLabel3 = toolkit.createLabel(sectionClient, "Word tag");
+		TableWrapData gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		tmpLabel3.setLayoutData(gdata);
+		tmpLabel3.setToolTipText("XML tag name that encodes words");
+		tmpLabel3.setVisible(moduleParams.get(ImportModuleCustomization.ADVANCEDTOKENIZER));
+		
+		wordElementText = toolkit.createText(sectionClient, "w", SWT.BORDER); //$NON-NLS-1$
+		gdata = getTextGridData();
+		wordElementText.setLayoutData(gdata);
+		wordElementText.setVisible(moduleParams.get(ImportModuleCustomization.ADVANCEDTOKENIZER));
+		doTokenizeStepButton = toolkit.createButton(sectionClient, "Tokenization", SWT.CHECK);
+		doTokenizeStepButton.setSelection(true);
+		doTokenizeStepButton.setVisible(moduleParams.get(ImportModuleCustomization.ADVANCEDTOKENIZER));
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 3;
+		doTokenizeStepButton.setLayoutData(gdata);
+		doTokenizeStepButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateFieldsEnableState();
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		
+		Label l0 = toolkit.createLabel(sectionClient, Messages.CorpusPage_16a, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 3;
+		gdata.indent = 10;
+		l0.setLayoutData(gdata);
+		
+		Label l1 = toolkit.createLabel(sectionClient, Messages.CorpusPage_5, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		gdata.indent = 20;
+		l1.setLayoutData(gdata);
+
+		textWhiteSpaces = toolkit.createText(sectionClient, TokenizerClasses.whitespaces, SWT.BORDER);
+		gdata = getLongTextGridData();
+		textWhiteSpaces.setLayoutData(gdata);
+		
+		Label l2 = toolkit.createLabel(sectionClient, Messages.CorpusPage_16, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		gdata.indent = 20;
+		l2.setLayoutData(gdata);
+
+		textPuncts = toolkit.createText(sectionClient, TokenizerClasses.regPunct, SWT.BORDER);
+		gdata = getLongTextGridData();
+		textPuncts.setLayoutData(gdata);
+
+		Label l4 = toolkit.createLabel(sectionClient, Messages.CorpusPage_19, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		gdata.indent = 10;
+		l4.setLayoutData(gdata);
+
+		textElisions = toolkit.createText(sectionClient, TokenizerClasses.regElision, SWT.BORDER);
+		gdata = getLongTextGridData();
+		textElisions.setLayoutData(gdata);
+
+		Label l3 = toolkit.createLabel(sectionClient, Messages.CorpusPage_22, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		gdata.indent = 10;
+		l3.setLayoutData(gdata);
+
+		textPunctsStrong = toolkit.createText(sectionClient, TokenizerClasses.punct_strong, SWT.BORDER);
+		gdata = getLongTextGridData();
+		textPunctsStrong.setLayoutData(gdata);
+
+		Button defaultBtn = toolkit.createButton(sectionClient, Messages.CorpusPage_49, SWT.PUSH);
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gdata.colspan = 2;
+		gdata.indent = 10;
+		defaultBtn.setLayoutData(gdata);
+		defaultBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				TokenizerClasses.reset();
+				textWhiteSpaces.setText(TokenizerClasses.whitespaces);
+				textPuncts.setText(TokenizerClasses.regPunct);
+				textPunctsStrong.setText(TokenizerClasses.punct_strong);
+				textElisions.setText(TokenizerClasses.regElision);
+			}
+		});
+
+		/*setAddSetTestsButton = toolkit.createButton(sectionClient, Messages.CorpusPage_28, SWT.CHECK);
+		setAddSetTestsButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,4,1));
+		//		setAddSetTestsButton.setSelection(params.getTokenizerElement(params.getCorpusElement()))
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_29, SWT.PUSH);
+		addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,1,1));
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("name", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("value", "");			 //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_29, values);
+				if (dlg.open() == Window.OK) {
+					params.addTokenizerParameter(params.getCorpusElement(), values.get("name"), values.get("value")); //$NON-NLS-1$ //$NON-NLS-2$
+					updateTokenizerSection();
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_31, SWT.PUSH);
+		removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,1,1));
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = tokenizerParamsViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element query = (Element) obj;
+					params.getTokenizerElement(params.getCorpusElement()).removeChild(query);
+					updateTokenizerSection();
+				}
+			}
+		});
+
+		Button addButton2 = toolkit.createButton(sectionClient, Messages.CorpusPage_32, SWT.PUSH);
+		addButton2.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,1,1));
+		addButton2.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("value", "\\A(.+)(.+)(.+)\\Z"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("type", "w"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("before", "1"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("hit", "2"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("after", "3"); //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_33, values);
+				if (dlg.open() == Window.OK) {
+					params.addTokenizerTest(params.getCorpusElement(), values.get("value"), values.get("type"), values.get("before"), values.get("hit"), values.get("after")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+					updateTokenizerSection();
+				}
+			}
+		});
+
+		Button removeButton2 = toolkit.createButton(sectionClient, Messages.CorpusPage_34, SWT.PUSH);
+		removeButton2.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,1,1));
+		removeButton2.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = tokenizerParamsViewer2.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element test = (Element) obj;
+					params.getTokenizerElement(params.getCorpusElement()).removeChild(test);
+					updateTokenizerSection();
+				}
+			}
+		});
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		tokenizerParamsViewer = new TableViewer(table);
+		tokenizerParamsViewer.getTable().addKeyListener(new TableKeyListener(tokenizerParamsViewer));
+		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		gd.heightHint = 150;
+		tokenizerParamsViewer.getTable().setLayoutData(gd);
+		tokenizerParamsViewer.setContentProvider(new NodeListContentProvider());
+		tokenizerParamsViewer.getTable().setHeaderVisible(true);
+		tokenizerParamsViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"name", "value"}; //$NON-NLS-1$ //$NON-NLS-2$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(tokenizerParamsViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+
+		Table table2 = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		tokenizerParamsViewer2 = new TableViewer(table2);
+		tokenizerParamsViewer2.getTable().addKeyListener(new TableKeyListener(tokenizerParamsViewer2));
+		GridData gd2 = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		gd.heightHint = 150;
+		tokenizerParamsViewer2.getTable().setLayoutData(gd2);
+		tokenizerParamsViewer2.setContentProvider(new NodeListContentProvider());
+		tokenizerParamsViewer2.getTable().setHeaderVisible(true);
+		tokenizerParamsViewer2.getTable().setLinesVisible(true);
+
+		String[] cols2 = {"value", "type", "before", "hit", "after"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+		for (String col : cols2) {
+			TableViewerColumn columnViewer = new TableViewerColumn(tokenizerParamsViewer2, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+		 */
+
+	}
+
+	protected void updateFieldsEnableState() {
+		boolean enabled = doTokenizeStepButton.getSelection();
+		textWhiteSpaces.setEnabled(enabled);
+		textPuncts.setEnabled(enabled);
+		textElisions.setEnabled(enabled);
+		textPunctsStrong.setEnabled(enabled);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+
+		textWhiteSpaces.setText(TokenizerClasses.whitespaces);
+		textPuncts.setText(TokenizerClasses.regPunct);
+		textPunctsStrong.setText(TokenizerClasses.punct_strong);
+		textElisions.setText(TokenizerClasses.regElision);
+
+		Element tokenizerElem = params.getTokenizerElement(params.getCorpusElement());
+		NodeList paramList = tokenizerElem.getElementsByTagName("param"); //$NON-NLS-1$
+		for (int i = 0 ; i < paramList.getLength() ; i++) {
+			Element paramElem = (Element) paramList.item(i);
+			String name = paramElem.getAttribute("name"); //$NON-NLS-1$
+			String value = paramElem.getTextContent();
+			if ("whitepaces".equals(name)) { //$NON-NLS-1$
+				textWhiteSpaces.setText(value);
+			} else if ("regPunct".equals(name)) { //$NON-NLS-1$
+				textPuncts.setText(value);
+			} else if ("punct_strong".equals(name)) { //$NON-NLS-1$
+				textPunctsStrong.setText(value);
+			} else if ("regElision".equals(name)) { //$NON-NLS-1$
+				textElisions.setText(value);
+			}
+		}
+		
+		Element wtagElement = params.getWordElement();
+		if (wtagElement != null)
+			wordElementText.setText(wtagElement.getTextContent());
+		
+		boolean skip = params.getSkipTokenization();
+		//System.out.println("set do tokenizer button value to "+!skip);
+		doTokenizeStepButton.setSelection(!skip);
+		updateFieldsEnableState();
+		
+//		Object value = tokenizerElem.getAttribute(Messages.CorpusPage_51);
+//		try {
+//			setAddSetTestsButton.setSelection(Boolean.parseBoolean(value.toString()));
+//		} catch (Exception e) { };
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		
+		if (textWhiteSpaces.getText().length() == 0 && textPuncts.getText().length() == 0) {
+			System.out.println("Error while saving tokenizer parameters: whitespace and punctuation regular expressions are both empty.");
+			return false;
+		}
+		params.addTokenizerParameter(params.getCorpusElement(), "whitespaces", textWhiteSpaces.getText()); //$NON-NLS-1$
+		params.addTokenizerParameter(params.getCorpusElement(), "regPunct", textPuncts.getText()); //$NON-NLS-1$
+		params.addTokenizerParameter(params.getCorpusElement(), "punct_strong", textPunctsStrong.getText()); //$NON-NLS-1$
+		params.addTokenizerParameter(params.getCorpusElement(), "regElision", textElisions.getText()); //$NON-NLS-1$
+
+		Element tokenizerElement = params.getTokenizerElement(params.getCorpusElement());
+		tokenizerElement.setAttribute("onlyThoseTests", "false");//+setAddSetTestsButton.getSelection()); //$NON-NLS-2$ //$NON-NLS-1$
+
+		Element wordElement = params.getWordElement();
+		wordElement.setTextContent(wordElementText.getText());
+		
+		params.setSkipTokenization(!doTokenizeStepButton.getSelection());
+		
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TokenizerSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EditionSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EditionSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EditionSection.java	(revision 122)
@@ -0,0 +1,297 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.io.File;
+import java.util.HashMap;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.Toolbox;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.imports.ImportModuleCustomization;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.w3c.dom.Element;
+
+public class EditionSection extends ImportEditorSection {
+
+	String ID = "org.txm.rcpapplication.editors.imports.sections.EditionSection";
+
+	private static final int SECTION_SIZE = 1;
+	Button buildEditionCheckButton;
+	Text wordsPerPageText;
+	Text pageBreakText;
+	Button buildFacsEditionCheckButton;
+	Text imageDirectoryText;
+
+	/**
+	 * 
+	 * @param toolkit2
+	 * @param form2
+	 * @param parent
+	 * @param style
+	 * @param moduleParams
+	 * @param scriptName temporary parameter to detect if import module is xtzLoader.groovy
+	 */
+	public EditionSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style, HashMap<String, Boolean> moduleParams, String scriptName) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText(Messages.CorpusPage_0);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		layout.numColumns = 1;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.numColumns = 4;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+
+		// build text edition or not button
+		buildEditionCheckButton = toolkit.createButton(sectionClient, Messages.CorpusPage_44, SWT.CHECK);
+		buildEditionCheckButton.setSelection(true);
+		TableWrapData gdata2 = getButtonLayoutData();
+		gdata2.colspan = 4; // one line
+		buildEditionCheckButton.setLayoutData(gdata2);
+
+		// words per page -> pageSize
+		Label tmpLabel = null;
+		if (moduleParams.get(ImportModuleCustomization.EDITIONS_WORDSPERPAGE)) {
+			tmpLabel = toolkit.createLabel(sectionClient, Messages.CorpusPage_36);
+			tmpLabel.setLayoutData(getLabelGridData());
+
+			wordsPerPageText = toolkit.createText(sectionClient, "500", SWT.BORDER); //$NON-NLS-1$
+			TableWrapData gdata = getTextGridData();
+			wordsPerPageText.setLayoutData(gdata);
+		}
+
+		if (moduleParams.get(ImportModuleCustomization.EDITIONS_PAGEELEMENT)) {
+			// page break tag
+			tmpLabel = toolkit.createLabel(sectionClient, Messages.CorpusPage_41);
+			tmpLabel.setLayoutData(getLabelGridData());
+			pageBreakText = toolkit.createText(sectionClient, "pb", SWT.BORDER); //$NON-NLS-1$
+			TableWrapData gdata = getTextGridData();
+			pageBreakText.setLayoutData(gdata);
+
+			if ("xtzLoader.groovy".equals(scriptName)) {
+
+				// build text edition or not button
+				buildFacsEditionCheckButton = toolkit.createButton(sectionClient, "Build 'facs' edition", SWT.CHECK);
+				buildFacsEditionCheckButton.setSelection(false);
+				TableWrapData gdata22 = getButtonLayoutData();
+				gdata22.colspan = 4; // one line
+				buildFacsEditionCheckButton.setLayoutData(gdata22);
+				buildFacsEditionCheckButton.addSelectionListener(new SelectionListener() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						imageDirectoryText.setEnabled(buildFacsEditionCheckButton.getSelection());
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) {}
+				});
+				// image directory
+				tmpLabel = toolkit.createLabel(sectionClient, "Images directory: ");
+				tmpLabel.setLayoutData(getLabelGridData());
+				imageDirectoryText = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
+				gdata = getTextGridData();
+				gdata.colspan = 2;
+				imageDirectoryText.setLayoutData(gdata);
+				imageDirectoryText.setEnabled(false);
+
+				Button selectImageDirectoryButton = toolkit.createButton(sectionClient, "...", SWT.PUSH);
+				gdata = getButtonLayoutData();
+				selectImageDirectoryButton.setLayoutData(gdata);
+				selectImageDirectoryButton.addSelectionListener(new SelectionListener() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						DirectoryDialog dialog = new DirectoryDialog(form.getShell(), SWT.OPEN);
+						if (LastOpened.getFile(ID) != null) {
+							dialog.setFilterPath(LastOpened.getFolder(ID));
+						} else {
+							dialog.setFilterPath(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+						}
+						if (dialog.open() != null) {
+							File imgDirectory = new File(dialog.getFilterPath());
+							LastOpened.set(ID, imgDirectory.getParent(), "");
+							imageDirectoryText.setText(imgDirectory.getAbsolutePath());
+						}
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+			}
+		}
+
+		//// First draft of interface to add editions to a corpus
+		//		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_1, SWT.PUSH);
+		//		addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		//		addButton.addSelectionListener(new SelectionListener() {
+		//			@Override
+		//			public void widgetDefaultSelected(SelectionEvent e) {
+		//			}
+		//
+		//			@Override
+		//			public void widgetSelected(SelectionEvent e) {
+		//				if (params == null) return;
+		//				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+		//				values.put("name", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		//				values.put("mode", "groovy"); //$NON-NLS-1$ //$NON-NLS-2$
+		//				values.put("script", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		//
+		//				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_1, values);
+		//				if (dlg.open() == Window.OK) {
+		//					params.addEditionDefinition(params.getCorpusElement(), values.get("name"), values.get("mode"), values.get("script")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		//					updateEditionsSection();
+		//				}
+		//			}
+		//		});
+		//
+		//		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_2, SWT.PUSH);
+		//		removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		//		removeButton.addSelectionListener(new SelectionListener() {
+		//			@Override
+		//			public void widgetDefaultSelected(SelectionEvent e) {
+		//			}
+		//
+		//			@Override
+		//			public void widgetSelected(SelectionEvent e) {
+		//				if (params == null) return;
+		//				ISelection sel = editionsViewer.getSelection();
+		//				IStructuredSelection ssel = (IStructuredSelection) sel;
+		//				Object obj = ssel.getFirstElement();
+		//				if (obj instanceof Element) {
+		//					Element query = (Element) obj;
+		//					params.getEditionsElement(params.getCorpusElement()).removeChild(query);
+		//					updateEditionsSection();
+		//				}
+		//			}
+		//		});
+		//
+		//		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		//		editionsViewer = new TableViewer(table);
+		//		editionsViewer.getTable().addKeyListener(new TableKeyListener(editionsViewer));
+		//		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		//		gd.heightHint = 150;
+		//		editionsViewer.getTable().setLayoutData(gd);
+		//		editionsViewer.setContentProvider(new NodeListContentProvider());
+		//		editionsViewer.getTable().setHeaderVisible(true);
+		//		editionsViewer.getTable().setLinesVisible(true);
+		//
+		//		String[] cols = {"name", "mode", "script"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		//		for (String col : cols) {
+		//			TableViewerColumn columnViewer = new TableViewerColumn(editionsViewer, SWT.NONE);
+		//			TableColumn column = columnViewer.getColumn();
+		//			column.setText(col);
+		//			column.setWidth(100);
+		//			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		//		}		
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+
+		Element editionsElement = params.getEditionsElement(params.getCorpusElement());
+		if (editionsElement == null) return;
+		Element editionElement = params.getEditionDefinitionElement(editionsElement, "default"); //$NON-NLS-1$
+		if (editionElement == null) return;
+
+		boolean be = params.getDoEdition("default"); //$NON-NLS-1$
+		buildEditionCheckButton.setSelection(be);
+
+		int wppt = params.getWordsPerPage("default"); //$NON-NLS-1$
+		wordsPerPageText.setText(""+wppt); //$NON-NLS-1$
+
+		String pbt = params.getPageElement("default"); //$NON-NLS-1$
+		if (pageBreakText != null)
+			pageBreakText.setText(pbt);
+
+		boolean bfe = params.getDoFacsEdition();//$NON-NLS-1$
+		if (buildFacsEditionCheckButton != null) {
+			buildFacsEditionCheckButton.setSelection(bfe);
+			imageDirectoryText.setEnabled(buildFacsEditionCheckButton.getSelection());
+
+			String imageDirectory = params.getFacsEditionImageDirectory(); //$NON-NLS-1$
+			if (imageDirectoryText != null)
+				imageDirectoryText.setText(imageDirectory);
+
+		}
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (this.section != null && !this.section.isDisposed()) {
+			Element editionsElement = params.getEditionsElement(params.getCorpusElement());
+
+			Element defaultEditionElement = params.getEditionDefinitionElement(editionsElement, "default"); //$NON-NLS-1$
+			if (defaultEditionElement == null) {
+				defaultEditionElement = params.addEditionDefinition(params.getCorpusElement(), "default", "groovy", "*.groovy");
+			}
+			if (defaultEditionElement != null) {
+
+				if (pageBreakText != null)
+					defaultEditionElement.setAttribute("page_break_tag", pageBreakText.getText()); //$NON-NLS-1$
+				else
+					defaultEditionElement.setAttribute("page_break_tag", "pb"); //$NON-NLS-1$ //$NON-NLS-2$
+
+				if (wordsPerPageText != null)
+					defaultEditionElement.setAttribute("words_per_page", wordsPerPageText.getText()); //$NON-NLS-1$
+				else
+					defaultEditionElement.setAttribute("words_per_page", "500"); //$NON-NLS-1$ //$NON-NLS-2$
+
+				defaultEditionElement.setAttribute("build_edition", ""+buildEditionCheckButton.getSelection()); //$NON-NLS-1$ //$NON-NLS-2$
+			} 
+
+			if (buildFacsEditionCheckButton != null) {
+				Element defaultFacsEditionElement = params.getEditionDefinitionElement(editionsElement, "facs"); //$NON-NLS-1$
+				if (defaultFacsEditionElement == null) {
+					defaultFacsEditionElement = params.addEditionDefinition(params.getCorpusElement(), "facs", "groovy", "*.groovy");
+				}
+				if (defaultFacsEditionElement != null) {
+
+					if (imageDirectoryText != null)
+						defaultFacsEditionElement.setAttribute("images_directory", imageDirectoryText.getText()); //$NON-NLS-1$
+					else
+						defaultFacsEditionElement.setAttribute("images_directory", ""); //$NON-NLS-1$ //$NON-NLS-2$
+
+					defaultFacsEditionElement.setAttribute("build_edition", ""+buildFacsEditionCheckButton.getSelection()); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EditionSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/OptionsSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/OptionsSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/OptionsSection.java	(revision 122)
@@ -0,0 +1,90 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.importer.xtz.ImportKeys;
+import org.txm.objects.BaseParameters;
+
+public class OptionsSection extends ImportEditorSection {
+
+	private static final int SECTION_SIZE = 1;
+	private Button cleanButton;
+//	private Button multithreadButton;
+
+	public OptionsSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText("Options");
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		cleanButton = toolkit.createButton(sectionClient, "Remove temporary directories", SWT.CHECK);
+		TableWrapData gdata = getTextGridData();
+		gdata.grabHorizontal = true;
+		gdata.colspan = 2;
+		cleanButton.setLayoutData(gdata);
+		
+//		multithreadButton = toolkit.createButton(sectionClient, "Experimental multi-threading import", SWT.CHECK);
+//		gdata = getTextGridData();
+//		gdata.colspan = 2;
+//		gdata.grabHorizontal = true;
+//		multithreadButton.setLayoutData(gdata);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		String value = (String) params.getKeyValueParameters().get(ImportKeys.CLEAN);
+		if (value == null) value = "true";
+		cleanButton.setSelection(Boolean.parseBoolean(value));
+		
+//		value = (String) params.getKeyValueParameters().get(ImportKeys.MULTITHREAD);
+//		if (value == null) value = "false";
+//		multithreadButton.setSelection(Boolean.parseBoolean(value));
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (this.section != null && !section.isDisposed()) {
+			
+			String value = Boolean.toString(cleanButton.getSelection());
+			params.getKeyValueParameters().put(ImportKeys.CLEAN, value);
+			
+//			value = Boolean.toString(multithreadButton.getSelection());
+//			params.getKeyValueParameters().put(ImportKeys.MULTITHREAD, value);
+			return true;
+		}
+
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/OptionsSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/UISection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/UISection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/UISection.java	(revision 122)
@@ -0,0 +1,87 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.w3c.dom.Element;
+
+public class UISection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+	private Text structLimitsText;
+	
+	public UISection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText(Messages.CorpusPage_63);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		Label tmpLabel = toolkit.createLabel(sectionClient, Messages.CorpusPage_64);
+		tmpLabel.setToolTipText(Messages.CorpusPage_65);
+		tmpLabel.setLayoutData(getLabelGridData());
+
+		structLimitsText = toolkit.createText(sectionClient, "text", SWT.BORDER); //$NON-NLS-1$
+		TableWrapData gdata = getTextGridData();
+		structLimitsText.setLayoutData(gdata);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		Element concordanceElement = params.getUIElement(params.getCorpusElement(), "concordance"); //$NON-NLS-1$
+		if (concordanceElement != null) {
+			Element context_limitsElement = params.getCQLLimitElement(concordanceElement);
+			if (context_limitsElement != null)
+				structLimitsText.setText(context_limitsElement.getTextContent());
+		}
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (this.section != null && !section.isDisposed()) {
+			Element concordanceElement = params.getUIElement(params.getCorpusElement(), "concordance");//.setAttribute("xsl", xsltfileValue.getText()); //$NON-NLS-1$
+			if (concordanceElement != null) {
+				Element context_limitsElement = params.getCQLLimitElement(concordanceElement);
+				context_limitsElement.setAttribute("type", "list"); //$NON-NLS-1$ //$NON-NLS-2$
+				context_limitsElement.setTextContent(structLimitsText.getText());
+				//System.out.println(Messages.CorpusPage_80+structLimitsText.getText());
+			}
+			return true;
+		}
+
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/UISection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/InfosSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/InfosSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/InfosSection.java	(revision 122)
@@ -0,0 +1,133 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Device;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.txm.utils.logger.Log;
+import org.w3c.dom.Element;
+
+public class InfosSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 2;
+	Label corpusNameLabel; // color change if the corpus name is malformed
+	Text corpusText;
+	private Text descText;
+	
+	public InfosSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+		
+		//this = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		this.section.setText(Messages.CorpusPage_7);
+		section.setExpanded(true);
+		
+		TableWrapLayout layout = new TableWrapLayout();
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		corpusNameLabel = toolkit.createLabel(sectionClient, Messages.CorpusPage_8, SWT.WRAP);
+		TableWrapData gdata = new TableWrapData();
+		corpusNameLabel.setLayoutData(gdata);
+
+		Label label = toolkit.createLabel(sectionClient, Messages.CorpusPage_9, SWT.WRAP);
+		gdata = new TableWrapData();
+		label.setLayoutData(gdata);
+
+		corpusText = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
+		gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
+		corpusText.setLayoutData(gdata);
+
+		descText = toolkit.createText(sectionClient, "", SWT.BORDER | SWT.MULTI | SWT.V_SCROLL); //$NON-NLS-1$
+		gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.FILL);
+		gdata.heightHint = 50;
+
+		descText.setLayoutData(gdata);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		section.setText(Messages.MainPage_3+" "+params.rootDir); //$NON-NLS-1$
+		
+		corpusText.setText(params.getCorpusName());
+		
+		String descContent = params.getCorpusElement().getAttribute("desc"); //$NON-NLS-1$
+		descContent = descContent.replace("<pre><br/>", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		descContent = descContent.replace("</pre>", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		descContent = descContent.replace("<br/>", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		//System.out.println("LOAD DESC WITH: '"+descContent+"'");
+		descText.setText(descContent); //$NON-NLS-1$
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (corpusText.getText().trim().length() == 0) {
+			System.out.println(Messages.CorpusPage_53);
+			return false;
+		}
+		params.description = "<pre><br/>"+descText.getText().replace("\n", "<br/>")+"</pre>"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		//System.out.println("SAVE DESC WITH: '"+params.description+"'");
+		if (!corpusText.getText().matches("[A-Z][-A-Z0-9]{1,20}")) { //$NON-NLS-1$
+			System.out.println(Messages.CorpusPage_93+corpusText.getText());
+			return false;
+		}
+		
+		Element corpusElem = params.getCorpusElement();
+		
+		// THIS IS UGLY, BUT THIS EDITOR CAN MANAGE ONLY ONE CORPUS
+		if (params.corpora.containsKey(params.name)) { // remove the previous corpus if the new name is different
+			params.corpora.remove(params.name);
+		}
+		
+		params.name = corpusText.getText();
+		params.corpora.put(params.name, corpusElem); // reuse the old "corpus" element 
+		corpusElem.setAttribute("name", params.name);
+		corpusElem.setAttribute("desc", params.description);
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		String corpusname = corpusText.getText();
+		Log.warning("Checking corpus name validity with '[A-Z][-A-Z0-9]+': "+corpusname);
+		if (!corpusname.matches("[A-Z][-A-Z0-9]+")) { //$NON-NLS-1$
+			System.out.println(Messages.CorpusPage_93+corpusname);
+
+			Device device = Display.getCurrent ();
+			Color red = new Color (device, 255, 0, 0);
+			corpusNameLabel.setBackground(red);
+
+			return false;
+		}
+		corpusNameLabel.setBackground(corpusNameLabel.getParent().getBackground());
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/InfosSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FrontXSLSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FrontXSLSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FrontXSLSection.java	(revision 122)
@@ -0,0 +1,227 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.io.File;
+import java.util.LinkedHashMap;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.Toolbox;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.swt.dialog.MultipleValueDialog;
+import org.txm.rcpapplication.swt.provider.ElementColumnLabelProvider;
+import org.txm.rcpapplication.swt.provider.NodeListContentProvider;
+import org.w3c.dom.Element;
+
+public class FrontXSLSection extends ImportEditorSection {
+	
+	private static final String ID = "org.txm.rcpapplication.editors.imports.CorpusPage.xslt"; //$NON-NLS-1$
+	
+	private static final int SECTION_SIZE = 2;
+	File xsltfile;
+	Text xsltfileValue;
+
+	String[] xsltparams;//{"val1",1,"val2",2}
+	TableViewer xsltParamsViewer;
+	
+	BaseParameters params;
+	
+	public FrontXSLSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style, BaseParameters params2) {
+		super(toolkit2, form2, parent, style);
+		this.params = params2;
+
+		this.section.setText(Messages.MainPage_18);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 4;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+
+		xsltfileValue = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
+		TableWrapData gdata = getTextGridData();
+		xsltfileValue.setLayoutData(gdata);
+
+		Button browseXSLTButton = toolkit.createButton(sectionClient, "...", SWT.PUSH); //$NON-NLS-1$
+		browseXSLTButton.setLayoutData(getButtonLayoutData());
+		browseXSLTButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				FileDialog dialog = new FileDialog(form.getShell(), SWT.OPEN);
+				String[] extensions = {"*.xsl"}; //$NON-NLS-1$
+				dialog.setFilterExtensions(extensions);
+				if (LastOpened.getFile(ID) != null) {
+					dialog.setFilterPath(LastOpened.getFolder(ID));
+					dialog.setFileName(LastOpened.getFile(ID));
+				} else {
+					dialog.setFilterPath(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+				}
+				if (dialog.open() != null) {
+					xsltfile = new File(dialog.getFilterPath(), dialog.getFileName());
+					LastOpened.set(ID, xsltfile.getParent(), xsltfile.getName());
+					xsltfileValue.setText(xsltfile.getAbsolutePath());
+				}
+			}
+		});
+
+		Button editXSLTButton = toolkit.createButton(sectionClient, Messages.CorpusPage_61, SWT.PUSH);
+		editXSLTButton.setLayoutData(getButtonLayoutData());
+		editXSLTButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (xsltfile != null && xsltfile.exists() && xsltfile.isFile()) {
+					EditFile.openfile(xsltfile.getAbsolutePath());
+				}
+			}
+		});	
+
+		Label l = toolkit.createLabel(sectionClient, ""); // empty cell //$NON-NLS-1$
+		l.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.MIDDLE));
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_4, SWT.PUSH);
+		addButton.setLayoutData(getButtonLayoutData());
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("name", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("value", "");			 //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_4, values);
+				if (dlg.open() == Window.OK) {
+					params.addXsltParameter(params.getCorpusElement(), values.get("name"), values.get("value")); //$NON-NLS-1$ //$NON-NLS-2$
+					update(params);
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_6, SWT.PUSH);
+		TableWrapData td = getButtonLayoutData();
+		td.colspan = 3;
+		removeButton.setLayoutData(td);
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = xsltParamsViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element query = (Element) obj;
+					params.getXsltElement(params.getCorpusElement()).removeChild(query);
+					update(params);
+				}
+			}
+		});
+
+		//		l = toolkit.createLabel(sectionClient, ""); // empty cell
+		//		l.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.MIDDLE));
+		//		l = toolkit.createLabel(sectionClient, ""); // empty cell
+		//		l.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.MIDDLE));
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		xsltParamsViewer = new TableViewer(table);
+		xsltParamsViewer.getTable().addKeyListener(new TableKeyListener(xsltParamsViewer));
+		TableWrapData gd = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL);
+		gd.colspan = 4;
+		gd.heightHint = 100;
+		xsltParamsViewer.getTable().setLayoutData(gd);
+		xsltParamsViewer.setContentProvider(new NodeListContentProvider());
+		xsltParamsViewer.getTable().setHeaderVisible(true);
+		xsltParamsViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"name", "value"}; //$NON-NLS-1$ //$NON-NLS-2$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(xsltParamsViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+		Element xslElement = params.getXsltElement(params.getCorpusElement());
+		String filepath = xslElement.getAttribute("xsl"); //$NON-NLS-1$
+		if (filepath != null) {
+			xsltfileValue.setText(filepath);
+			xsltfile = new File(filepath);
+		}
+
+		xsltParamsViewer.getTable().getParent().layout();
+		xsltParamsViewer.setInput(xslElement.getElementsByTagName("param")); //$NON-NLS-1$
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (xsltfileValue != null && !xsltfileValue.isDisposed())
+			params.getXsltElement(params.getCorpusElement()).setAttribute("xsl", xsltfileValue.getText()); //$NON-NLS-1$
+
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FrontXSLSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/ImportEditorSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/ImportEditorSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/ImportEditorSection.java	(revision 122)
@@ -0,0 +1,67 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.txm.objects.BaseParameters;
+
+public abstract class ImportEditorSection {
+	
+	protected Section section;
+	protected FormToolkit toolkit;
+	protected ScrolledForm form;
+	
+	public ImportEditorSection(FormToolkit toolkit, ScrolledForm form, Composite parent, int style) {
+		section = toolkit.createSection(parent, style);
+		this.toolkit = toolkit;
+		this.form = form;
+	}
+	
+	public abstract void update(BaseParameters params);
+	
+	public abstract boolean checkFields();
+	
+	public abstract boolean save(BaseParameters params);
+	
+	public abstract int getSectionSize(); // 1 2 3, it depends the number of element inserted in the form
+	
+	public static TableWrapData getLongTextGridData() {
+		TableWrapData gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE);
+		gdata.maxWidth = 200;
+		return gdata;
+	}
+
+	public static TableWrapData getSectionGridData(int size) {
+		TableWrapData td = new TableWrapData(TableWrapData.FILL);
+		td.colspan = size;
+		return td;
+	}
+
+	public static TableWrapData getTextGridData() {
+		TableWrapData gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE);
+		gdata.maxWidth = 150;
+		return gdata;
+	}
+	
+	public static TableWrapData getButtonLayoutData() {
+		TableWrapData td = new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE);
+		return td;
+	}
+	
+	public static TableWrapData getLabelGridData() {
+		TableWrapData gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE);
+		return gdata;
+	}
+	
+	public boolean isDisposed() {
+		if (section != null) return section.isDisposed();
+		return true;
+	}
+	
+	public void setEnabled(boolean b) {
+		if (section != null) section.setEnabled(b);
+	}
+}
+

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/ImportEditorSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/LangSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/LangSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/LangSection.java	(revision 122)
@@ -0,0 +1,155 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.util.Locale;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+
+public class LangSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+
+	Button btnDefaultLang;
+	Button btnGuessLang;
+	Button btnSelectAnnotate;
+	Button btnSelectLang;
+	Combo langcombo;
+	
+	public LangSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText(Messages.MainPage_20);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		final Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.numColumns = 2;
+		slayout.makeColumnsEqualWidth = false;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		btnSelectAnnotate = toolkit.createButton(sectionClient, Messages.CorpusPage_26, SWT.CHECK); 
+		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
+
+		btnGuessLang = toolkit.createButton(sectionClient, Messages.ImportDialog_16, SWT.RADIO);
+		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
+
+		btnSelectLang = toolkit.createButton(sectionClient, Messages.ImportDialog_22, SWT.RADIO);
+
+		langcombo = new Combo(sectionClient, SWT.BORDER);
+		TableWrapData gdata = getTextGridData();
+		langcombo.setLayoutData(gdata);
+
+		//if widget selected change the radio buttons value
+		langcombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				btnSelectLang.setSelection(true);
+				btnGuessLang.setSelection(false);
+				//btnDefaultLang.setSelection(false);
+			}
+		});
+
+		for (String lang : Locale.getISOLanguages()) {
+			langcombo.add(lang);
+		}
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+		
+		String lang = params.getCorpusElement().getAttribute("lang"); //$NON-NLS-1$;
+		String annotate = params.getCorpusElement().getAttribute("annotate"); //$NON-NLS-1$
+		
+		//fill combo and select default language
+		String defaultLang = Locale.getDefault().getLanguage();
+		if ("??".equals(lang)) { //$NON-NLS-1$
+			btnSelectLang.setSelection(false);
+			btnGuessLang.setSelection(true);
+		} else if (lang == null) {
+			btnSelectLang.setSelection(true);
+			btnGuessLang.setSelection(false);
+		} else {
+			btnSelectLang.setSelection(true);
+			btnGuessLang.setSelection(false);
+			defaultLang = lang;
+		}
+
+		String[] data = langcombo.getItems();
+		for (int i = 0 ; i < langcombo.getItemCount() ; i++) {
+			String l = data[i];
+			if (l.equals(defaultLang)) {
+				langcombo.select(i);
+				break;
+			}
+		}
+
+		langcombo.setText(defaultLang);
+		btnSelectAnnotate.setSelection("true".equals(annotate)); //$NON-NLS-1$
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (!this.section.isDisposed()) {
+			//LANGUAGE
+			String lang = null, annotate = null;
+			
+			if (btnGuessLang != null && btnGuessLang.getSelection()) {
+				lang = "??"; //$NON-NLS-1$
+			} else if (langcombo != null)
+				lang = langcombo.getText();
+
+			if (lang == null || lang.length() == 0)
+				lang = Locale.getDefault().getLanguage();
+
+			//ANNOTATE
+			if (btnSelectAnnotate != null)
+				annotate = ""+btnSelectAnnotate.getSelection(); //$NON-NLS-1$
+
+			if (annotate == null || annotate.length() == 0)
+				annotate = "true"; //$NON-NLS-1$
+
+			params.getCorpusElement().setAttribute("annotate", annotate); //$NON-NLS-1$
+			params.getCorpusElement().setAttribute("lang", lang); //$NON-NLS-1$
+			return true;
+		}
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/LangSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TextualPlansSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TextualPlansSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TextualPlansSection.java	(revision 122)
@@ -0,0 +1,141 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+import org.w3c.dom.Element;
+
+public class TextualPlansSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+	private Text outsideTextElementsText;
+	private Text outsideTextElementsToEditText;
+	private Text noteElementsText;
+	private Text milestoneElementsText;
+	
+	public TextualPlansSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText(Messages.TextualPlansSection_title);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+		
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+		
+		Label tmpLabel = toolkit.createLabel(sectionClient, Messages.TextualPlansSection_outsidetext_label);
+		tmpLabel.setToolTipText(Messages.TextualPlansSection_outsidetext_tooltip);
+		tmpLabel.setLayoutData(getLabelGridData());
+		
+		outsideTextElementsText = toolkit.createText(sectionClient, "teiHeader", SWT.BORDER); //$NON-NLS-1$
+		TableWrapData gdata = getTextGridData();
+		outsideTextElementsText.setLayoutData(gdata);
+		
+		Label tmpLabel2 = toolkit.createLabel(sectionClient, Messages.TextualPlansSection_outsidetexttoedit_label);
+		tmpLabel2.setToolTipText(Messages.TextualPlansSection_outsidetexttoedit_tooltip);
+		tmpLabel2.setLayoutData(getLabelGridData());
+
+		outsideTextElementsToEditText = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
+		gdata = getTextGridData();
+		outsideTextElementsToEditText.setLayoutData(gdata);
+
+		Label tmpLabel3 = toolkit.createLabel(sectionClient, "Note elements");
+		tmpLabel3.setToolTipText("Note elements that encodes ponctual notes");
+		tmpLabel3.setLayoutData(getLabelGridData());
+
+		noteElementsText = toolkit.createText(sectionClient, "note", SWT.BORDER); //$NON-NLS-1$
+		gdata = getTextGridData();
+		noteElementsText.setLayoutData(gdata);
+		
+		Label tmpLabel4 = toolkit.createLabel(sectionClient, Messages.TextualPlansSection_milestone_label);
+		tmpLabel4.setToolTipText(Messages.TextualPlansSection_milestone_tooltip);
+		tmpLabel4.setLayoutData(getLabelGridData());
+
+		milestoneElementsText = toolkit.createText(sectionClient, "", SWT.BORDER); //$NON-NLS-1$
+		gdata = getTextGridData();
+		milestoneElementsText.setLayoutData(gdata);
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		Element textualplansElement = params.getTextualPlans(); //$NON-NLS-1$
+		if (textualplansElement != null) {
+			Element outsideTextElement = params.getOutSideTextTagsElement();
+			if (outsideTextElement != null)
+				outsideTextElementsText.setText(outsideTextElement.getTextContent());
+			
+			Element outsideTextToEditElement = params.getOutSideTextTagsAndKeepContentElement();
+			if (outsideTextToEditElement != null)
+				outsideTextElementsToEditText.setText(outsideTextToEditElement.getTextContent());
+
+			Element noteElement = params.getNoteElement();
+			if (noteElement != null)
+				noteElementsText.setText(noteElement.getTextContent());
+
+			Element milestonesElement = params.getMilestonesElement();
+			if (milestonesElement != null)
+				milestoneElementsText.setText(milestonesElement.getTextContent());
+		} else {
+			System.out.println(Messages.TextualPlansSection_update_error);
+		}
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (this.section != null && !section.isDisposed()) {
+			Element textualplansElement = params.getTextualPlans();
+			if (textualplansElement != null) {
+				Element outsideTextElement = params.getOutSideTextTagsElement();
+				outsideTextElement.setAttribute("type", "list"); //$NON-NLS-1$ //$NON-NLS-2$
+				outsideTextElement.setTextContent(outsideTextElementsText.getText());
+				
+				Element outsideTextToEditElement = params.getOutSideTextTagsAndKeepContentElement();
+				outsideTextToEditElement.setAttribute("type", "list"); //$NON-NLS-1$ //$NON-NLS-2$
+				outsideTextToEditElement.setTextContent(outsideTextElementsToEditText.getText());
+			
+				Element noteElement = params.getNoteElement();
+				noteElement.setAttribute("type", "list"); //$NON-NLS-1$ //$NON-NLS-2$
+				noteElement.setTextContent(noteElementsText.getText());
+							
+				Element milestonesElement = params.getMilestonesElement();
+				milestonesElement.setTextContent(milestoneElementsText.getText().trim());
+			} else {
+				System.out.println(Messages.TextualPlansSection_save_error);
+				return false;
+			}
+			return true;
+		}
+
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/TextualPlansSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EncodingSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EncodingSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EncodingSection.java	(revision 122)
@@ -0,0 +1,143 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.nio.charset.Charset;
+import java.util.SortedMap;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+
+public class EncodingSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+	Composite sectionClient;
+	Button btnGuessEncoding;
+	Button btnSelectEncoding;
+	Combo encodingCombo;
+	
+	public EncodingSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+		
+		this.section.setText(Messages.MainPage_23);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		layout.numColumns = 1;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		btnGuessEncoding = toolkit.createButton(sectionClient, "", SWT.RADIO); //$NON-NLS-1$
+		TableWrapData td = getButtonLayoutData();
+		btnGuessEncoding.setLayoutData(td);
+		btnGuessEncoding.setText(Messages.ImportDialog_16);
+		toolkit.createLabel(sectionClient, ""); //$NON-NLS-1$
+
+		btnSelectEncoding = toolkit.createButton(sectionClient, "", SWT.RADIO); //$NON-NLS-1$
+		btnSelectEncoding.setLayoutData(getButtonLayoutData());
+		btnSelectEncoding.setText(Messages.ImportDialog_22);
+
+		encodingCombo = new Combo(sectionClient, SWT.BORDER);
+		TableWrapData gdata = getTextGridData();
+		encodingCombo.setLayoutData(gdata);
+		encodingCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				btnSelectEncoding.setSelection(true);
+				btnGuessEncoding.setSelection(false);
+			}
+		});
+		encodingCombo.removeAll();
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+		//fill combo and select default encoding
+
+		String dencoding = params.getCorpusElement().getAttribute("encoding"); //$NON-NLS-1$
+		String defaultEncoding = System.getProperty("file.encoding"); //$NON-NLS-1$
+		if ("??".equals(dencoding)) { //$NON-NLS-1$
+			btnSelectEncoding.setSelection(false);
+			btnGuessEncoding.setSelection(true);
+		} else if (dencoding == null) {
+			btnSelectEncoding.setSelection(true);
+		} else {
+			btnSelectEncoding.setSelection(true);
+			defaultEncoding = dencoding;
+		}
+
+		SortedMap<String, Charset> charsets = Charset.availableCharsets();
+		String[] items = new String[charsets.size()];
+		int icharset = 0;
+		for (String k : charsets.keySet()) items[icharset++] = k;
+		encodingCombo.setItems(items);
+		
+		String[] data = encodingCombo.getItems();
+		for (int i = 0 ; i < data.length ; i++) {
+			String encoding = data[i];
+			if (encoding.equals(defaultEncoding)) { 
+				encodingCombo.select(i);
+				break;
+			}
+		}
+		encodingCombo.setText(defaultEncoding);
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (this.section == null) return true;
+		
+		String encoding = params.getCorpusElement().getAttribute("encoding"); //$NON-NLS-1$
+		if (!this.section.isDisposed()) {
+			//ENCODING
+			if (btnGuessEncoding != null && btnGuessEncoding.getSelection()) {	
+				encoding = "??"; //$NON-NLS-1$
+			} else if (encodingCombo != null) {
+				encoding = encodingCombo.getText();
+			}
+
+			if (encoding == null || encoding.length() == 0)
+				encoding = System.getProperty("file.encoding"); //$NON-NLS-1$
+
+			params.getCorpusElement().setAttribute("encoding", encoding); //$NON-NLS-1$
+		}
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/EncodingSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FontSection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FontSection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FontSection.java	(revision 122)
@@ -0,0 +1,103 @@
+package org.txm.rcpapplication.editors.imports.sections;
+
+import java.awt.GraphicsEnvironment;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.events.ExpansionAdapter;
+import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Messages;
+
+public class FontSection extends ImportEditorSection {
+	
+	private static final int SECTION_SIZE = 1;
+	public static final String DEFAULTFONT = "<default>";
+	
+	Combo fontCombo;
+	
+	public FontSection(FormToolkit toolkit2, ScrolledForm form2, Composite parent, int style) {
+		super(toolkit2, form2, parent, style);
+
+		this.section.setText(Messages.CorpusPage_3);
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.makeColumnsEqualWidth = true;
+		this.section.setLayout(layout);
+		this.section.setLayoutData(getSectionGridData(SECTION_SIZE));
+		this.section.setEnabled(false);
+
+		this.section.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		Composite sectionClient = toolkit.createComposite(this.section);
+		TableWrapLayout slayout = new TableWrapLayout();
+		slayout.makeColumnsEqualWidth = false;
+		slayout.numColumns = 2;
+		sectionClient.setLayout(slayout);
+		this.section.setClient(sectionClient);
+
+		Label l = toolkit.createLabel(sectionClient, Messages.CorpusPage_57, SWT.WRAP);
+		l.setLayoutData(new TableWrapData(TableWrapData.LEFT, TableWrapData.MIDDLE));
+
+		fontCombo = new Combo(sectionClient, SWT.BORDER);
+		TableWrapData gdata = getTextGridData();
+		fontCombo.setLayoutData(gdata);
+
+		fontCombo.removeAll();
+		GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
+		java.awt.Font[] fonts = e.getAllFonts(); // Get the fonts
+
+		fontCombo.add(DEFAULTFONT);
+		for (java.awt.Font font : fonts) {
+			fontCombo.add(font.getFontName());
+		}
+
+		//updateFontSection();
+		
+		
+	}
+
+	@Override
+	public void update(BaseParameters params) {
+		if (this.section.isDisposed()) return;
+		if (params == null) return;
+		String value = params.getCorpusElement().getAttribute("font"); //$NON-NLS-1$
+		
+		if (value == null || value.length() == 0) value = DEFAULTFONT;
+		
+		if (value != null && value.length() > 0)
+			fontCombo.setText(value);
+		
+	}
+
+	@Override
+	public boolean save(BaseParameters params) {
+		if (!this.section.isDisposed()) {
+			String value = fontCombo.getText();
+			if (DEFAULTFONT.equals(value)) value = "";
+			
+			params.getCorpusElement().setAttribute("font", value); //$NON-NLS-1$
+			return true;
+		}
+		return true;
+	}
+
+	@Override
+	public boolean checkFields() {
+		return true;
+	}
+
+	@Override
+	public int getSectionSize() {
+		return SECTION_SIZE;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/sections/FontSection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/CorpusPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/CorpusPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/CorpusPage.java	(revision 122)
@@ -0,0 +1,1105 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.imports;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.events.HyperlinkAdapter;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.widgets.ExpandableComposite;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+import org.eclipse.ui.forms.widgets.ImageHyperlink;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+import org.txm.Toolbox;
+import org.txm.importer.DomUtils;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.ExecuteImportScript;
+import org.txm.rcpapplication.editors.imports.sections.*;
+import org.txm.utils.AsciiUtils;
+import org.txm.utils.logger.Log;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ * The Class CorpusPage.
+ * set corpus parameters
+ */
+public class CorpusPage extends FormPage {
+
+	private static String lastOpenedSrcDir;
+
+	ImportFormEditor editor;
+	ScrolledForm form;
+	FormToolkit toolkit;
+
+	HashMap<String, Boolean> moduleParams; // the import sections configuration depends on the import module selected
+
+	// All the sections that populate the import parameter file
+	Section pattrSection;
+	Section preBuildSection;
+	Section querySection;
+	Section sattrSection;
+	ImportEditorSection uiSection;
+	ImportEditorSection xsltSection;
+	ImportEditorSection tokenizerSection;
+	ImportEditorSection editionSection;
+	ImportEditorSection encodingSection;
+	ImportEditorSection fontSection;
+	ImportEditorSection infosSection;
+	ImportEditorSection langSection;
+	ImportEditorSection textualPlansSection;
+	ImportEditorSection optionsSection;
+	
+	// old widgets to be moved/deleted
+	TableViewer preBuildViewer;
+	TreeViewer preBuildViewer2;
+	TableViewer queriesViewer;
+	TableViewer sattributesViewer;
+	TableViewer editionsViewer;
+	TableViewer viewer;
+	TableViewer pattributesViewer;
+	
+	/** The srcdir: directory selected that contains the source files. */
+	private File srcDir;
+	private File paramFile;
+	private BaseParameters params;
+	
+	/**
+	 * Instantiates a new main page.
+	 *
+	 * @param editor the editor
+	 * @param corpusname 
+	 */
+	public CorpusPage(ImportFormEditor editor) {
+		super(editor, Messages.CorpusPage_30, Messages.CorpusPage_30); 
+		this.editor = editor;
+	}
+	
+	private int createEditionsSection() {
+		editionSection = new EditionSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE, moduleParams, editor.getGroovyScript().getName());
+		return editionSection.getSectionSize();
+	}
+
+	private int createEmptyCell() {
+		Label l = toolkit.createLabel(form.getBody(), "", SWT.NONE); //$NON-NLS-1$
+		TableWrapData td = new TableWrapData();
+		td.colspan = 1;
+		l.setLayoutData(td);
+		
+		return 1;
+	}
+	
+	private int createEncodingSection() {
+		encodingSection = new EncodingSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return encodingSection.getSectionSize();
+	}
+
+	private int createFontSection() {
+		fontSection = new FontSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return fontSection.getSectionSize();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
+	 */
+	@Override
+	protected void createFormContent(final IManagedForm managedForm) {
+		form = managedForm.getForm();
+		toolkit = managedForm.getToolkit();
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.numColumns = 2;
+		layout.makeColumnsEqualWidth = false;
+
+		form.getBody().setLayout(layout);
+
+		createToolbar();
+		
+		String importName = editor.getGroovyscript().getName();
+		moduleParams = ImportModuleCustomization.getParameters(importName);
+		
+		// CREATE THE SECTIONS
+		int N_SECTIONS = 0;
+		N_SECTIONS += createInfosSection(); // mandatory
+
+		if (moduleParams.get(ImportModuleCustomization.ENCODING)) {
+			N_SECTIONS += createEncodingSection();
+		}
+
+		if (moduleParams.get(ImportModuleCustomization.LANG)) {
+			N_SECTIONS += createLangSection();
+		}
+
+		if (moduleParams.get(ImportModuleCustomization.TOKENIZER)) {
+			N_SECTIONS += createTokenizerSection();
+		}
+		
+		if (moduleParams.get(ImportModuleCustomization.XSLT)) {
+			if (N_SECTIONS%2 != 0) { // needs 2 cells to draw
+				N_SECTIONS += createEmptyCell();
+			}
+			N_SECTIONS += createFrontXSLTSection();
+		}
+
+		if (moduleParams.get(ImportModuleCustomization.EDITIONS_PAGEELEMENT) || moduleParams.get(ImportModuleCustomization.EDITIONS_WORDSPERPAGE) ) {
+			N_SECTIONS += createEditionsSection();
+		}
+		
+		N_SECTIONS += createFontSection();
+
+		if (moduleParams.get(ImportModuleCustomization.UI)) {
+			N_SECTIONS += createUIsSection();
+		}
+		
+		if (moduleParams.get(ImportModuleCustomization.TEXTUALPLANS)) {
+			N_SECTIONS += createTextualPlansSection();
+		}
+		if (moduleParams.get(ImportModuleCustomization.OPTIONS)) {
+			N_SECTIONS += createOptionsSection();
+		}
+
+		// END OF SECTIONS CREATION, ENSURE THAT THE NUMBER OF CELL is %2
+		if (N_SECTIONS%2 != 0) N_SECTIONS += createEmptyCell();
+		
+		// create notes messages
+		Label separatorLabel = toolkit.createLabel(form.getBody(), "",SWT.SEPARATOR | SWT.HORIZONTAL); //$NON-NLS-1$
+		TableWrapData gdata = new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.MIDDLE, 2,1);
+		gdata.colspan = 2;
+		separatorLabel.setLayoutData(gdata);
+
+		Label mandatoryLabel = toolkit.createLabel(form.getBody(), Messages.CorpusPage_40, SWT.WRAP);
+		gdata = new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE, 2,1);
+		gdata.colspan = 2;
+		mandatoryLabel.setLayoutData(gdata);
+
+		form.layout(true);
+		managedForm.reflow(true);
+	}
+
+	private int createTextualPlansSection() {
+		textualPlansSection = new TextualPlansSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return textualPlansSection.getSectionSize();
+	}
+	
+	private int createOptionsSection() {
+		optionsSection = new OptionsSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return optionsSection.getSectionSize();
+	}
+
+	private int createInfosSection() {
+		infosSection = new InfosSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return infosSection.getSectionSize();
+	}
+
+	/**
+	 * Creates the front xslt section.
+	 */
+	private int createFrontXSLTSection() {
+		xsltSection = new FrontXSLSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE, params);
+		return xsltSection.getSectionSize();
+	}
+
+	/**
+	 * Creates the lang section.
+	 */
+	private int createLangSection() {
+		langSection = new LangSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return langSection.getSectionSize();
+	}
+
+	private void createPAttributesSection() {
+	/*	pattrSection = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		pattrSection.setText(Messages.CorpusPage_10);
+		GridLayout layout = new GridLayout(1, true);
+		pattrSection.setLayout(layout);
+		pattrSection.setLayoutData(getSectionGridData(2));
+		pattrSection.setEnabled(false);
+
+		pattrSection.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(pattrSection);
+		sectionClient.setLayout(new GridLayout(2, false));
+		pattrSection.setClient(sectionClient);
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_11, SWT.PUSH);
+		addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("id", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("shortname", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("longname", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("pattern", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("renderer", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("tooltip", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("type", "String"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("import", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("mandatory", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("inputFormat", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("outputFormat", ""); //$NON-NLS-1$ //$NON-NLS-2$
+
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_12, values);
+				if (dlg.open() == Window.OK) {
+					params.addPAttribute(params.getCorpusElement(), values.get("id"), values.get("shortname"), values.get("longname"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("type"), values.get("renderer"), values.get("tooltip"),  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("pattern"), values.get("import"), values.get("mandatory"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("inputFormat"), values.get("outputFormat")); //$NON-NLS-1$ //$NON-NLS-2$
+					updatePAttributeSection();
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_13, SWT.PUSH);
+		removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = pattributesViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element query = (Element) obj;
+					params.getPAttributesElement(params.getCorpusElement()).removeChild(query);
+					updatePAttributeSection();
+				}
+			}
+		});
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		pattributesViewer = new TableViewer(table);
+		pattributesViewer.getTable().addKeyListener(new TableKeyListener(pattributesViewer));
+		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		gd.heightHint = 150;
+		pattributesViewer.getTable().setLayoutData(gd);
+		pattributesViewer.setContentProvider(new NodeListContentProvider());
+		pattributesViewer.getTable().setHeaderVisible(true);
+		pattributesViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"id", "shortname", "longname", "import", "mandatory", "pattern", "renderer", "tooltip", "type"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(pattributesViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+	*/
+	}
+	private void createPreBuildSection() {
+	/*	preBuildSection = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		preBuildSection.setText(Messages.CorpusPage_14);
+		GridLayout layout = new GridLayout(1, true);
+		preBuildSection.setLayout(layout);
+		preBuildSection.setLayoutData(getSectionGridData(2));
+		preBuildSection.setEnabled(false);
+
+		preBuildSection.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(preBuildSection);
+		sectionClient.setLayout(new GridLayout(4, false));
+		preBuildSection.setClient(sectionClient);
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_15, SWT.PUSH);
+		addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("subcorpus", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("query", "[]"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("desc", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_15, values);
+				if (dlg.open() == Window.OK) {
+					params.addSubcorpus(params.getCorpusElement(), values.get("subcorpus"), values.get("query"), values.get("desc")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					updatePreBuildSection();
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_17, SWT.PUSH);
+		removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = preBuildViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element subcorpus = (Element) obj;
+					System.out.println("SELECTED: "+subcorpus); //$NON-NLS-1$
+					params.getPreBuildElement(params.getCorpusElement()).removeChild(subcorpus);
+					updatePreBuildSection();
+				}
+			}
+		});
+
+		Button add2Button = toolkit.createButton(sectionClient, Messages.CorpusPage_18, SWT.PUSH);
+		add2Button.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		add2Button.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("partition", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				ArrayList<LinkedHashMap<String, String>> subvaluesArray = new ArrayList<LinkedHashMap<String, String>>();
+				LinkedHashMap<String, String> subvalues = new LinkedHashMap<String, String>();
+				subvaluesArray.add(subvalues);
+				subvalues.put("part", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				subvalues.put("query", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueTreeDialog dlg = new MultipleValueTreeDialog(form.getShell(), Messages.CorpusPage_18, values, subvaluesArray, "part"); //$NON-NLS-1$
+				if (dlg.open() == Window.OK) {
+					String[] names = new String[subvaluesArray.size()];
+					String[] queries = new String[subvaluesArray.size()];
+					for (int i = 0 ; i < subvaluesArray.size() ; i++) {
+						LinkedHashMap<String, String> it = subvaluesArray.get(i);
+						names[i] = it.get("part"); //$NON-NLS-1$
+						queries[i] = it.get("query"); //$NON-NLS-1$
+					}
+					params.addPartition(params.getCorpusElement(), values.get("partition"), queries, names); //$NON-NLS-1$
+					updatePreBuildSection();
+				}
+			}
+		});
+
+		Button remove2Button = toolkit.createButton(sectionClient, Messages.CorpusPage_20, SWT.PUSH);
+		remove2Button.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		remove2Button.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = preBuildViewer2.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				System.out.println("SELECTED: "+obj); //$NON-NLS-1$
+				if (obj instanceof Element) {
+					Element partitionElem = (Element) obj;
+					if (partitionElem.getParentNode().equals(params.getPreBuildElement(params.getCorpusElement())))
+					{	params.getPreBuildElement(params.getCorpusElement()).removeChild(partitionElem);
+					updatePreBuildSection();
+					}
+				}
+			}
+		});
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		preBuildViewer = new TableViewer(table);
+		preBuildViewer.getTable().addKeyListener(new TableKeyListener(preBuildViewer));
+		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,1,1);
+		gd.heightHint = 150;
+		preBuildViewer.getTable().setLayoutData(gd);
+		preBuildViewer.setContentProvider(new NodeListContentProvider());
+		preBuildViewer.getTable().setHeaderVisible(true);
+		preBuildViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"name", "query", "desc"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(preBuildViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+
+		Tree table2 = toolkit.createTree(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		preBuildViewer2 = new TreeViewer(table2);
+		GridData gd2 = new GridData(GridData.FILL, GridData.FILL, false, false, 3, 1);
+		gd2.heightHint = 150;
+		preBuildViewer2.getTree().setLayoutData(gd2);
+		preBuildViewer2.getTree().setHeaderVisible(true);
+		preBuildViewer2.getTree().setLinesVisible(true);
+
+		String[] cols1 = {"name"}; //$NON-NLS-1$
+		String[] cols2 = {"name", "query"}; //$NON-NLS-1$ //$NON-NLS-2$
+		preBuildViewer2.setContentProvider(new ElementTreeContentProvider("partition", "part", cols1, cols2)); //$NON-NLS-1$ //$NON-NLS-2$
+		//preBuildViewer2.setLabelProvider(new ElementTreeLabelProvider("partition", "part", cols1, cols2));
+
+		int c = 0;
+		for (String col : cols2) {
+			TreeViewerColumn columnViewer = new TreeViewerColumn(preBuildViewer2, SWT.NONE);
+			TreeColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementTreeLabelProvider(c++, "partition", "part", cols1, cols2)); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		*/
+	}
+	private void createQueriesSection() {
+	/*	querySection = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		querySection.setText("Queries"); //$NON-NLS-1$
+		GridLayout layout = new GridLayout(1, true);
+		querySection.setLayout(layout);
+		querySection.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false, 2, 1));
+		querySection.setEnabled(false);
+
+		querySection.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		//filesection.setDescription("Select how to find source files");
+		Composite sectionClient = toolkit.createComposite(querySection);
+		sectionClient.setLayout(new GridLayout(2, false));
+		querySection.setClient(sectionClient);
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_21, SWT.PUSH);
+		addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {				
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("name", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("query", "[]"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("desc", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_21, values);
+				if (dlg.open() == Window.OK) {
+					params.addQuery(params.getCorpusElement(), values.get("name"), values.get("query"), values.get("desc")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					updateQuerySection();
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_23, SWT.PUSH);
+		removeButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				ISelection sel = queriesViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element query = (Element) obj;
+					params.getQueriesElement(params.getCorpusElement()).removeChild(query);
+					updateQuerySection();
+				}
+			}
+		});
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		queriesViewer = new TableViewer(table);
+		queriesViewer.getTable().addKeyListener(new TableKeyListener(queriesViewer));
+		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		gd.heightHint = 150;
+		queriesViewer.getTable().setLayoutData(gd);
+		queriesViewer.setContentProvider(new NodeListContentProvider());
+		queriesViewer.getTable().setHeaderVisible(true);
+		queriesViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"name", "value", "desc"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(queriesViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			column.setWidth(100);
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+		}
+		*/
+	}
+	private void createSAttributesSection() {
+	/*	sattrSection = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		sattrSection.setText(Messages.CorpusPage_24);
+		GridLayout layout = new GridLayout(1, true);
+		sattrSection.setLayout(layout);
+		sattrSection.setLayoutData(getSectionGridData(2));
+		sattrSection.setEnabled(false);
+
+		sattrSection.addExpansionListener(new ExpansionAdapter() {
+			@Override
+			public void expansionStateChanged(ExpansionEvent e) {form.layout(true);}
+		});
+
+		Composite sectionClient = toolkit.createComposite(sattrSection);
+		sectionClient.setLayout(new GridLayout(2, false));
+		sattrSection.setClient(sectionClient);
+
+		Button addButton = toolkit.createButton(sectionClient, Messages.CorpusPage_25, SWT.PUSH);
+		addButton.setLayoutData(new GridData(GridData.BEGINNING, GridData.FILL, false, false));
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (params == null) return;
+				LinkedHashMap<String, String> values = new LinkedHashMap<String, String>();
+				values.put("id", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("shortname", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("longname", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("pattern", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("renderer", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("tooltip", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("type", "String"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("import", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("mandatory", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("inputFormat", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				values.put("outputFormat", ""); //$NON-NLS-1$ //$NON-NLS-2$
+
+				MultipleValueDialog dlg = new MultipleValueDialog(form.getShell(), Messages.CorpusPage_25, values);
+				if (dlg.open() == Window.OK) {
+					params.addSAttribute(params.getCorpusElement(), values.get("id"), values.get("shortname"), values.get("longname"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("type"), values.get("renderer"), values.get("tooltip"),  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("pattern"), values.get("import"), values.get("mandatory"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							values.get("inputFormat"), values.get("outputFormat")); //$NON-NLS-1$ //$NON-NLS-2$
+					updateSAttributeSection();
+				}
+			}
+		});
+
+		Button removeButton = toolkit.createButton(sectionClient, Messages.CorpusPage_27, SWT.PUSH);
+		removeButton.setLayoutData(new GridData(GridData.BEGINNING, GridData.FILL, false, false));
+		removeButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if ( params == null) return;
+				ISelection sel = sattributesViewer.getSelection();
+				IStructuredSelection ssel = (IStructuredSelection) sel;
+				Object obj = ssel.getFirstElement();
+				if (obj instanceof Element) {
+					Element query = (Element) obj;
+					params.getSAttributesElement(params.getCorpusElement()).removeChild(query);
+					updateSAttributeSection();
+				}
+			}
+		});
+
+		Table table = toolkit.createTable(sectionClient, SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.VIRTUAL);
+		sattributesViewer = new TableViewer(table);
+		sattributesViewer.getTable().addKeyListener(new TableKeyListener(sattributesViewer));
+		GridData gdata = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+		gdata.heightHint = 150;
+		sattributesViewer.getTable().setLayoutData(gdata);
+		sattributesViewer.setContentProvider(new NodeListContentProvider());
+		sattributesViewer.getTable().setHeaderVisible(true);
+		sattributesViewer.getTable().setLinesVisible(true);
+
+		String[] cols = {"id", "shortname", "longname", "import", "mandatory", "pattern", "renderer", "tooltip", "type"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+		for (String col : cols) {
+			TableViewerColumn columnViewer = new TableViewerColumn(sattributesViewer, SWT.NONE);
+			TableColumn column = columnViewer.getColumn();
+			column.setText(col);
+			//column.setWidth(10*col.length());
+			columnViewer.setLabelProvider(new ElementColumnLabelProvider(col));
+			column.pack();
+		}
+		*/
+	}
+	
+	/**
+	 * Creates the tokenizer section.
+	 */
+	private int createTokenizerSection() {
+		tokenizerSection = new TokenizerSection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE, moduleParams);
+		return tokenizerSection.getSectionSize();
+	}
+	
+	private void createToolbar() {
+		Composite hyperlinks = toolkit.createComposite(form.getBody());
+		TableWrapData gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL, 2, 1);
+		gdata.colspan = 2;
+		hyperlinks.setLayoutData(gdata);
+
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.numColumns = 3;
+		layout.makeColumnsEqualWidth = false;
+		hyperlinks.setLayout(layout);
+
+		Label titleLabel = toolkit.createLabel(hyperlinks,"", SWT.WRAP); //$NON-NLS-1$
+		titleLabel.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.TOP));
+		titleLabel.setText(NLS.bind(Messages.MainPage_2, 
+				ImportModuleCustomization.getName(editor.getGroovyScript().getName())));
+		FontData[] fD = titleLabel.getFont().getFontData();
+		fD[0].setHeight(16);
+		titleLabel.setFont( new Font(titleLabel.getDisplay(),fD[0]));
+
+		HyperlinkAdapter selectDirHListener = new HyperlinkAdapter() {
+			@Override
+			public void linkActivated(HyperlinkEvent e) {
+				//System.out.println("Opening...");
+				selectSourceDir();
+			}
+		};
+
+		HyperlinkAdapter startImportListener = new HyperlinkAdapter() {
+			@Override
+			public void linkActivated(HyperlinkEvent e) {
+				//System.out.println("Starting...");
+				if (params != null) {
+					if (saveConfig()) {
+						startImport();
+					}
+				} else 
+					System.out.println(Messages.CorpusPage_66);
+			}
+		};
+
+		ImageHyperlink openImportLink = toolkit.createImageHyperlink(hyperlinks, SWT.NULL);
+		openImportLink.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE));
+		openImportLink.setImage(IImageKeys.getImage(IImageKeys.FOLDER));
+		openImportLink.addHyperlinkListener(selectDirHListener);
+
+		ImageHyperlink startImportLink = toolkit.createImageHyperlink(hyperlinks, SWT.NULL);
+		startImportLink.setLayoutData(new TableWrapData(TableWrapData.FILL, TableWrapData.MIDDLE));
+		startImportLink.setImage(IImageKeys.getImage(IImageKeys.START));
+		startImportLink.addHyperlinkListener(startImportListener);	
+
+
+		Composite line1 = toolkit.createComposite(form.getBody());
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL, 2, 1);
+		gdata.colspan = 2;
+		line1.setLayoutData(gdata);
+		RowLayout hLayout = new RowLayout();
+		hLayout.center = true;
+		line1.setLayout(hLayout);
+		toolkit.createLabel(line1, Messages.CorpusPage_35, SWT.WRAP);
+
+		Hyperlink hyperlink1 = toolkit.createHyperlink(line1, Messages.CorpusPage_37, SWT.WRAP);
+		hyperlink1.addHyperlinkListener(selectDirHListener);
+
+		ImageHyperlink openImportLink2 = toolkit.createImageHyperlink(line1, SWT.WRAP);
+		openImportLink2.setImage(IImageKeys.getImage(IImageKeys.FOLDER));
+		openImportLink2.addHyperlinkListener(selectDirHListener);
+
+		Composite line2 = toolkit.createComposite(form.getBody());
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL, 2, 1);
+		gdata.colspan = 2;
+		line2.setLayoutData(gdata);
+		hLayout = new RowLayout();
+		hLayout.center = true;
+		line2.setLayout(hLayout);
+		toolkit.createLabel(line2, Messages.CorpusPage_38, SWT.WRAP);
+		toolkit.createLabel(line2, Messages.CorpusPage_39, SWT.WRAP);
+
+		Composite line4 = toolkit.createComposite(form.getBody());
+		gdata = new TableWrapData(TableWrapData.LEFT, TableWrapData.FILL, 2, 1);
+		gdata.colspan = 2;
+		line4.setLayoutData(gdata);
+		hLayout = new RowLayout();
+		hLayout.center = true;
+		line4.setLayout(hLayout);
+		toolkit.createLabel(line4, Messages.CorpusPage_42);
+		Hyperlink hyperlink3 = toolkit.createHyperlink(line4, Messages.CorpusPage_43, SWT.WRAP);
+		hyperlink3.addHyperlinkListener(startImportListener);
+		ImageHyperlink startImportLink2 = toolkit.createImageHyperlink(line4, SWT.NULL);
+		startImportLink2.setImage(IImageKeys.getImage(IImageKeys.START));
+		startImportLink2.addHyperlinkListener(startImportListener);
+	}
+
+	private int createUIsSection() {
+		uiSection = new UISection(toolkit, form, form.getBody(), ExpandableComposite.TITLE_BAR|ExpandableComposite.TWISTIE);
+		return uiSection.getSectionSize();
+	}
+
+	/**
+	 * Called by "selectSourceDir". 
+	 * Theparameter file is read to fill the section fields.
+	 * 
+	 * @throws ParserConfigurationException
+	 * @throws SAXException
+	 * @throws IOException
+	 */
+	public void loadParams() throws ParserConfigurationException, SAXException, IOException {
+		paramFile = new File(srcDir, "import.xml"); //$NON-NLS-1$
+		if (!paramFile.exists()) {
+			
+			String basename = srcDir.getName();
+			basename = AsciiUtils.buildId(basename).toUpperCase(); // force binary corpus name to uppercase
+			if (basename.length() == 0) {
+				System.out.println(Messages.CorpusPage_92+basename);
+				return;
+			}
+			
+			Log.warning(Messages.CorpusPage_46);
+			BaseParameters.createEmptyParams(paramFile, basename);
+		}
+		if (!paramFile.exists()) {
+			System.out.println(Messages.CorpusPage_47);
+			return;
+		}
+		params = new BaseParameters(paramFile);
+		params.scriptFile = editor.getGroovyscript().getName();
+		params.load();
+		
+		// force root directory to the selected source directory, see the #1263 ticket
+		params.rootDir = srcDir.getAbsolutePath(); 
+		
+		System.out.println(Messages.CorpusPage_48 + paramFile);
+		Log.info("Params: "+params); //$NON-NLS-1$
+
+		File metadataFile = new File(params.rootDir, "metadata.csv"); //$NON-NLS-1$
+		if (metadataFile.exists())
+			this.editor.getMetaPage().setMetadataFile(metadataFile);
+
+		Log.info(Messages.CorpusPage_50+moduleParams);
+		this.setPartName(params.getCorpusName());
+
+		if (infosSection != null && !infosSection.isDisposed()) {
+			infosSection.setEnabled(true);
+			infosSection.update(params);
+		}
+		if (langSection != null && !langSection.isDisposed()) {
+			langSection.setEnabled(true);
+			langSection.update(params);
+		}
+		if (xsltSection != null && !xsltSection.isDisposed()) {
+			xsltSection.setEnabled(true);
+			xsltSection.update(params);
+		}
+		if (tokenizerSection != null && !tokenizerSection.isDisposed()) {
+			tokenizerSection.setEnabled(true);
+			tokenizerSection.update(params);
+		}
+		if (uiSection != null && !uiSection.isDisposed()) {
+			uiSection.setEnabled(true);
+			uiSection.update(params);
+		}
+		if (encodingSection != null && !encodingSection.isDisposed()) {
+			encodingSection.setEnabled(true);
+			encodingSection.update(params);
+		}
+		if (editionSection != null && !editionSection.isDisposed()) {
+			editionSection.setEnabled(true);
+			editionSection.update(params);
+		}
+		if (fontSection != null && !fontSection.isDisposed()) {
+			fontSection.setEnabled(true);
+			fontSection.update(params);
+		}
+		if (textualPlansSection != null && !textualPlansSection.isDisposed()) {
+			textualPlansSection.setEnabled(true);
+			textualPlansSection.update(params);
+		}
+		
+		if (optionsSection != null && !optionsSection.isDisposed()) {
+			optionsSection.setEnabled(true);
+			optionsSection.update(params);
+		}
+		
+		/*
+		if (sattrSection != null && !sattrSection.isDisposed()) {
+			sattrSection.setEnabled(true);
+		}
+		
+		if (querySection != null && !querySection.isDisposed()) {
+			querySection.setEnabled(true);
+			updateQuerySection();
+		}
+		if (preBuildSection != null && !preBuildSection.isDisposed()) {
+			preBuildSection.setEnabled(true);
+			updatePreBuildSection();
+		}
+		if (pattrSection != null && !pattrSection.isDisposed()) {
+			pattrSection.setEnabled(true);
+			updatePAttributeSection();
+		}
+		*/
+	}
+
+	/**
+	 * Called by "startImport". Save the field values in the Parameter file
+	 * @return
+	 */
+	public boolean saveConfig() {
+		System.out.println(Messages.CorpusPage_52);
+		
+		params.rootDir = srcDir.getAbsolutePath();
+		params.scriptFile = editor.getGroovyScript().getName();
+
+		params.getCorpusElement().setAttribute("name", params.name); //$NON-NLS-1$
+		params.getCorpusElement().setAttribute("desc", params.description); //$NON-NLS-1$
+		params.getCorpusElement().setAttribute("cqpid", params.name.toUpperCase()+new Date().getTime()); //$NON-NLS-1$
+
+		// TEST ALL SECTIONS
+		boolean doSave = true;
+		if (infosSection != null && !infosSection.isDisposed()) {
+			doSave = doSave & infosSection.checkFields();
+		}
+		if (langSection != null && !langSection.isDisposed()) {
+			doSave = doSave & langSection.checkFields();
+		}
+		if (xsltSection != null && !xsltSection.isDisposed()) {
+			doSave = doSave & xsltSection.checkFields();
+		}
+		if (tokenizerSection != null && !tokenizerSection.isDisposed()) {
+			doSave = doSave & tokenizerSection.checkFields();
+		}
+		if (uiSection != null && !uiSection.isDisposed()) {
+			doSave = doSave & uiSection.checkFields();
+		}
+		if (encodingSection != null && !encodingSection.isDisposed()) {
+			doSave = doSave & encodingSection.checkFields();
+		}
+		if (editionSection != null && !editionSection.isDisposed()) {
+			doSave = doSave & editionSection.checkFields();
+		}
+		if (fontSection != null && !fontSection.isDisposed()) {
+			doSave = doSave & fontSection.checkFields();
+		}
+		if (textualPlansSection != null && !textualPlansSection.isDisposed()) {
+			doSave = doSave & textualPlansSection.checkFields();
+		}
+		if (optionsSection != null && !optionsSection.isDisposed()) {
+			doSave = doSave & optionsSection.checkFields();
+		}
+		if (!doSave) {
+			System.out.println("Some fields are not correctly filled.");
+			return false;
+		}
+		
+		// SAVE ALL SECTIONS
+		boolean successfulSave = true;
+		if (infosSection != null && !infosSection.isDisposed()) {
+			successfulSave = successfulSave & infosSection.save(params);
+		}
+		if (langSection != null && !langSection.isDisposed()) {
+			successfulSave = successfulSave & langSection.save(params);
+		}
+		if (xsltSection != null && !xsltSection.isDisposed()) {
+			successfulSave = successfulSave & xsltSection.save(params);
+		}
+		if (tokenizerSection != null && !tokenizerSection.isDisposed()) {
+			successfulSave = successfulSave & tokenizerSection.save(params);
+		}
+		if (uiSection != null && !uiSection.isDisposed()) {
+			successfulSave = successfulSave & uiSection.save(params);
+		}
+		if (encodingSection != null && !encodingSection.isDisposed()) {
+			successfulSave = successfulSave & encodingSection.save(params);
+		}
+		if (editionSection != null && !editionSection.isDisposed()) {
+			successfulSave = successfulSave & editionSection.save(params);
+		}
+		if (fontSection != null && !fontSection.isDisposed()) {
+			successfulSave = successfulSave & fontSection.save(params);
+		}
+		if (textualPlansSection != null && !textualPlansSection.isDisposed()) {
+			successfulSave = successfulSave & textualPlansSection.save(params);
+		}
+		if (optionsSection != null && !optionsSection.isDisposed()) {
+			successfulSave = successfulSave & optionsSection.save(params);
+		}
+		
+		if (successfulSave) {
+			try {
+				params.save(paramFile);
+//				DomUtils.save(params.root.getOwnerDocument(), paramFile);
+			} catch (Exception e1) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+
+			return true;
+		}
+		System.out.println("Error while saving parameters.");
+		return false;
+		
+	}
+
+	/**
+	 * Called by the "folder" button 
+	 */
+	public void selectSourceDir() {
+		DirectoryDialog dialog = new DirectoryDialog(form.getShell(), SWT.OPEN);
+
+		if (lastOpenedSrcDir != null) {
+			dialog.setFilterPath(lastOpenedSrcDir);
+		} else if (lastOpenedSrcDir != null) {
+			dialog.setFilterPath(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+		} else
+			dialog.setFilterPath(new File(TxmPreferences.get(Toolbox.INSTALL_DIR), "corpora").getAbsolutePath()); //$NON-NLS-1$
+
+		if (dialog.open() != null) {
+			String path = dialog.getFilterPath();
+			lastOpenedSrcDir = path;
+			srcDir = new File(path);
+
+			if (!srcDir.isDirectory()) {
+				System.out.println(Messages.CorpusPage_90+srcDir);
+				return;
+			}
+
+			if (!(srcDir.canRead() && srcDir.canExecute())) {
+				System.out.println(Messages.CorpusPage_91+srcDir);
+				return;
+			}
+			
+			try {
+				loadParams();
+				
+				this.editor.getMetaPage().reload();
+			} catch (Exception e1) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+		}
+	}
+
+	public void startImport() {
+		//TODO: test all sections here
+		ExecuteImportScript.executeScript(editor.getGroovyScript().getAbsolutePath(), params.paramFile);
+
+	}
+
+	private void updateEditionsSection() {
+		
+	}
+
+	private void updateEncodingSection() {
+		
+	}
+
+	private void updateFontSection() {
+		
+	}
+
+	private void updateFrontXsltSection()  {
+		
+	}
+
+	private void updateLangSection() {
+		
+	}
+
+	protected void updatePAttributeSection() {
+		if (pattrSection.isDisposed()) return;
+		if (params == null) return;
+		pattributesViewer.getTable().getParent().layout();
+		Element queriesElem = params.getPAttributesElement(params.getCorpusElement());
+		pattributesViewer.setInput(queriesElem.getElementsByTagName("pattribute")); //$NON-NLS-1$
+	}
+
+	private void updatePreBuildSection() {
+		if (preBuildSection.isDisposed()) return;
+		if (params == null) return;
+		preBuildViewer.getTable().getParent().layout();
+		Element queriesElem = params.getPreBuildElement(params.getCorpusElement());
+		preBuildViewer.setInput(queriesElem.getElementsByTagName("subcorpus")); //$NON-NLS-1$
+
+		preBuildViewer2.getTree().getParent().layout();
+		queriesElem = params.getPreBuildElement(params.getCorpusElement());
+		NodeList partitions = queriesElem.getElementsByTagName("partition"); //$NON-NLS-1$
+		preBuildViewer2.setInput(partitions);
+	}
+
+	private void updateQuerySection() {
+		if (querySection.isDisposed()) return;
+		if (params == null) return;
+		queriesViewer.getTable().getParent().layout();
+		Element queriesElem = params.getQueriesElement(params.getCorpusElement());
+		queriesViewer.setInput(queriesElem.getElementsByTagName("query")); //$NON-NLS-1$
+	}
+
+	private void updateSAttributeSection() {
+		if (sattrSection.isDisposed()) return;
+		if (params == null) return;
+		sattributesViewer.getTable().getParent().layout();
+		Element queriesElem = params.getSAttributesElement(params.getCorpusElement());
+		sattributesViewer.setInput(queriesElem.getElementsByTagName("sattribute")); //$NON-NLS-1$
+	}
+
+	private void updateTokenizerSection() {
+
+	}
+
+	private void updateUisSection() {
+
+	}
+
+	public String getRootDir() {
+		return srcDir.getAbsolutePath();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/CorpusPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportModuleCustomization.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportModuleCustomization.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportModuleCustomization.java	(revision 122)
@@ -0,0 +1,338 @@
+package org.txm.rcpapplication.editors.imports;
+
+import java.util.HashMap;
+
+/**
+ * static class that defines what parameters are used by import modules
+ * @author mdecorde
+ *
+ */
+public class ImportModuleCustomization {
+	
+	public static final String PARALLEL = "parallel"; //$NON-NLS-1$
+	public static final String ENCODING = "encoding"; //$NON-NLS-1$
+	public static final String LANG = "lang"; //$NON-NLS-1$
+	public static final String XSLT = "xslt"; //$NON-NLS-1$
+	public static final String TOKENIZER = "tokenizer"; //$NON-NLS-1$
+	public static final String ADVANCEDTOKENIZER = "tokenizer-advanced"; //$NON-NLS-1$
+	public static final String EDITIONS_WORDSPERPAGE = "editions-wordsperpage"; //$NON-NLS-1$
+	public static final String EDITIONS_PAGEELEMENT = "editions-pageelement"; //$NON-NLS-1$
+	public static final String PATTRIBUTES = "pAttributes"; //$NON-NLS-1$
+	public static final String SATTRIBUTES = "sAttributes"; //$NON-NLS-1$
+	public static final String PREBUILD = "preBuild"; //$NON-NLS-1$
+	public static final String QUERIES = "queries"; //$NON-NLS-1$
+	public static final String UI = "uis"; //$NON-NLS-1$
+	public static final String OPTIONS = "options"; //$NON-NLS-1$
+	public static final String TEXTUALPLANS = "textualplans";
+	public static final String IMPORT_NAME = "import_name";
+	
+	static HashMap<String, HashMap<String, Boolean>> allParams = new HashMap<String, HashMap<String, Boolean>>();
+	static HashMap<String, String> names = new HashMap<String, String>();
+	
+	static { //init import module
+		HashMap<String,Boolean> params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, true);
+		params.put(LANG, false);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, false);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, false);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("discoursLoader.groovy", params); //$NON-NLS-1$
+		names.put("discoursLoader.groovy", "CNR + CSV"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, true);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, false);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("wtcLoader.groovy", params); //$NON-NLS-1$
+		names.put("wtcLoader.groovy", "WTC"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, true);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, false);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, false);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, false);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("hyperbaseLoader.groovy", params); //$NON-NLS-1$
+		names.put("hyperbaseLoader.groovy", "Hyperbase"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, true);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, false);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, false);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("alcesteLoader.groovy", params); //$NON-NLS-1$
+		names.put("alcesteLoader.groovy", "Alceste"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, true);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, false);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, false);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("quickLoader.groovy", params); //$NON-NLS-1$
+		names.put("quickLoader.groovy", "TXT + CSV"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("transcriberLoader.groovy", params); //$NON-NLS-1$
+		names.put("transcriberLoader.groovy", "XML-TRS + CSV"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("tmxLoader.groovy", params); //$NON-NLS-1$
+		names.put("tmxLoader.groovy", "XML-TMX"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, true);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("xmlLoader.groovy", params); //$NON-NLS-1$
+		names.put("xmlLoader.groovy", "XML/w + CSV"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("xmltxmLoader.groovy", params); //$NON-NLS-1$
+		names.put("xmltxmLoader.groovy", "XML-TEI TXM"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("factivaLoader.groovy", params); //$NON-NLS-1$
+		names.put("factivaLoader.groovy", "XML-PPS"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("factivamailLoader.groovy", params); //$NON-NLS-1$
+		names.put("factivamailLoader.groovy", "Factiva TXT"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("bfmLoader.groovy", params); //$NON-NLS-1$
+		names.put("bfmLoader.groovy", "XML-TEI BFM"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, true);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, false);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, false);
+		params.put(PATTRIBUTES, true);
+		params.put(SATTRIBUTES, true);
+		params.put(PREBUILD, true);
+		params.put(QUERIES, true);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, false);
+		params.put(OPTIONS, false);
+		allParams.put("frantextLoader.groovy", params); //$NON-NLS-1$
+		names.put("frantextLoader.groovy", "XML-TEI Frantext"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		params = new HashMap<String, Boolean>();
+		params.put(PARALLEL, false);
+		params.put(ENCODING, false);
+		params.put(LANG, true);
+		params.put(XSLT, false);
+		params.put(TOKENIZER, true);
+		params.put(ADVANCEDTOKENIZER, true);
+		params.put(EDITIONS_WORDSPERPAGE, true);
+		params.put(EDITIONS_PAGEELEMENT, true);
+		params.put(PATTRIBUTES, false);
+		params.put(SATTRIBUTES, false);
+		params.put(PREBUILD, false);
+		params.put(QUERIES, false);
+		params.put(UI, true);
+		params.put(TEXTUALPLANS, true);
+		params.put(OPTIONS, true);
+		allParams.put("xtzLoader.groovy", params); //$NON-NLS-1$
+		names.put("xtzLoader.groovy", "XML-XTZ + CSV"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+	
+	/**
+	 * 
+	 * @param importscript
+	 * @return the import parameter section configuration depending on the <code>importscript</code>. If their is no setting for <code>importscript</code> return a default configuration
+	 */
+	public static HashMap<String,Boolean> getParameters(String importscript)
+	{
+		if (allParams.containsKey(importscript)) {
+			return allParams.get(importscript);
+		} else {
+			HashMap<String, Boolean> params = new HashMap<String, Boolean>();
+			params.put(PARALLEL, true);
+			params.put(ENCODING, true);
+			params.put(LANG, true);
+			params.put(XSLT, true);
+			params.put(TOKENIZER, true);
+			params.put(ADVANCEDTOKENIZER, false);
+			params.put(EDITIONS_WORDSPERPAGE, true);
+			params.put(EDITIONS_PAGEELEMENT, true);
+			params.put(PATTRIBUTES, true);
+			params.put(SATTRIBUTES, true);
+			params.put(PREBUILD, true);
+			params.put(QUERIES, true);
+			params.put(UI, true);
+			params.put(TEXTUALPLANS, false);
+			params.put(OPTIONS, false);
+			return params;
+		}
+	}
+	
+	public static String getName(String importscript)
+	{
+		if (allParams.containsKey(importscript)) {
+			return names.get(importscript);
+		} else {
+			return importscript;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/ImportModuleCustomization.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataPage.java	(revision 122)
@@ -0,0 +1,595 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.imports;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.txm.Toolbox;
+import org.txm.metadatas.Metadata;
+import org.txm.metadatas.Metadatas;
+import org.txm.metadatas.TextInjection;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MetadataPage.
+ */
+public class MetadataPage extends FormPage {
+
+	private static final String ID = "org.txm.rcpapplication.editors.imports.MetadataPage"; //$NON-NLS-1$
+	/** The metadatas. */
+	protected ArrayList<Metadata> metadatas = new ArrayList<Metadata>();
+
+	/** The srcdir. */
+	File srcdir;
+
+	/** The paramtokenizer. */
+	File paramtokenizer;
+
+	/** The xsltfile. */
+	File xsltfile;
+
+	/** The xsltparams. */
+	String[] xsltparams;//{"val1",1,"val2",2}
+
+	/** The form. */
+	ScrolledForm form;
+
+	/** The toolkit. */
+	FormToolkit toolkit;
+
+	/** The basename text. */
+	Text basenameText;
+
+	/** The btn guess lang. */
+	Button btnGuessLang;
+
+	/** The btn guess2 lang. */
+	Button btnGuess2Lang;
+
+	/** The btn select lang. */
+	Button btnSelectLang;
+
+	/** The langcombo. */
+	Combo langcombo;
+
+	/** The btn default encoding. */
+	Button btnDefaultEncoding;
+
+	/** The btn guess encoding. */
+	Button btnGuessEncoding;
+
+	/** The btn guess2 encoding. */
+	Button btnGuess2Encoding;
+
+	/** The btn select encoding. */
+	Button btnSelectEncoding;
+
+	/** The encoding combo. */
+	Combo encodingCombo;
+
+	/** The metadata table. */
+	Table metadataTable;
+
+	/** The viewer. */
+	//TableViewer viewer;
+
+	/** The rmvmetadata. */
+	//private Button rmvmetadata;
+
+	/** The clearmetadata. */
+	//private Button clearmetadata;
+
+	/** The scanmetadatafile. */
+	Button scanmetadatafile;
+
+	/** The addmetadata. */
+	//Button addmetadata;
+
+	/** The partition column. */
+	TableViewerColumn partitionColumn;
+
+	/** The selection column. */
+	TableViewerColumn selectionColumn;
+
+	/** The display column. */
+	TableViewerColumn displayColumn;
+
+	/** The longname column. */
+	TableViewerColumn longnameColumn;
+
+	/** The name column. */
+	TableViewerColumn nameColumn;
+
+	/** The type column. */
+	private TableViewerColumn typeColumn;
+
+	private TableViewer viewer2;
+
+	private TableViewerColumn displayColumn2;
+	File metadataFile;
+	private ArrayList<TableViewerColumn> columns = new ArrayList<TableViewerColumn>();
+	private CorpusPage main;
+
+	/**
+	 * Instantiates a new metadata page.
+	 *
+	 * @param editor the editor
+	 * @param main 
+	 */
+	public MetadataPage(FormEditor editor, CorpusPage main) {
+		super(editor, Messages.MainPage_0, Messages.MetadataPage_1);
+		this.main = main;
+	}
+	int index = 0;
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.editor.FormPage#createFormContent(org.eclipse.ui.forms.IManagedForm)
+	 */
+	@Override
+	protected void createFormContent(final IManagedForm managedForm) {
+		form = managedForm.getForm();
+		toolkit = managedForm.getToolkit();
+		form.setText(Messages.MetadataPage_2);
+		GridLayout layout = new GridLayout(2, false);
+		form.getBody().setLayout(layout);
+
+		scanmetadatafile = toolkit.createButton(form.getBody(), Messages.MetadataPage_3, SWT.PUSH);
+		scanmetadatafile.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1,1));
+		scanmetadatafile.addSelectionListener(new SelectionListener() {
+			
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				
+//				File metafile = new File(srcdir, "metadata.csv");
+//				if (metafile.exists())
+					reloadViewers();
+//				else {
+//					System.out.println("no metadata file found: "+metafile.getAbsolutePath());
+//				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+//		clearmetadata = toolkit.createButton(form.getBody(), Messages.MetadataPage_8, SWT.PUSH);
+//		clearmetadata.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1,1));
+//		clearmetadata.addSelectionListener(new SelectionListener() {
+//			@Override
+//			public void widgetSelected(SelectionEvent e) {
+//				metadatas.clear();
+//  			viewer.refresh();
+//				viewer2.refresh();
+//			}
+//
+//			@Override
+//			public void widgetDefaultSelected(SelectionEvent e) { }
+//		});
+//		addmetadata = toolkit.createButton(form.getBody(), Messages.MetadataPage_9, SWT.PUSH);
+//		addmetadata.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1,1));
+//		addmetadata.addSelectionListener(new SelectionListener() {
+//			@Override
+//			public void widgetSelected(SelectionEvent e) {
+//				metadatas.add(new Metadata(Messages.MetadataPage_10, Messages.MetadataPage_11, Messages.MetadataPage_12, "String", null, false, false, false, false, 100)); //$NON-NLS-4$
+//				viewer.setInput(metadatas);
+//				viewer.refresh();
+//				viewer2.setInput(metadatas);
+//				viewer2.refresh();
+//			}
+//
+//			@Override
+//			public void widgetDefaultSelected(SelectionEvent e) { }
+//		});
+//		rmvmetadata = toolkit.createButton(form.getBody(), Messages.MetadataPage_14, SWT.PUSH);
+//		rmvmetadata.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1,1));
+//		rmvmetadata.addSelectionListener(new SelectionListener() {
+//			@Override
+//			public void widgetSelected(SelectionEvent e) {
+//				IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+//				for(Object obj : selection.toArray()) {
+//					metadatas.remove(obj);
+//				}
+////				viewer.setInput(metadatas);
+////				viewer.refresh();
+//				viewer2.setInput(metadatas);
+//				viewer2.refresh();
+//			}
+//
+//			@Override
+//			public void widgetDefaultSelected(SelectionEvent e) { }
+//		});
+
+//		metadataTable = toolkit.createTable(form.getBody(), SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL);
+//		GridData gd = new GridData(GridData.FILL, GridData.FILL, false, false,2,1);
+//		gd.heightHint = 100;
+//		metadataTable.setLayoutData(gd);
+//		metadataTable.setHeaderVisible(true);
+//		metadataTable.setLinesVisible(true);
+//
+//		metadataTable.addKeyListener(new KeyListener() {
+//			@Override
+//			public void keyReleased(KeyEvent e) {
+//				if (e.keyCode == SWT.DEL)
+//				{
+//					IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+//					for(Object obj : selection.toArray()) {
+//						metadatas.remove(obj);
+//					}
+//					viewer.setInput(metadatas);
+//					viewer.refresh();
+//					viewer2.setInput(metadatas);
+//					viewer2.refresh();
+//				}
+//			}
+//
+//			@Override
+//			public void keyPressed(KeyEvent e) {}
+//		});
+
+//		viewer = new TableViewer(metadataTable);
+//		viewer.setContentProvider(new IStructuredContentProvider(){
+//
+//			@Override
+//			public Object[] getElements(Object inputElement) {
+//				return metadatas.toArray(new Metadata[metadatas.size()]);
+//			}
+//
+//			@Override
+//			public void dispose() {	}
+//
+//			@Override
+//			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+//
+//		});
+//		viewer.setInput(metadatas);
+//
+//		nameColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		nameColumn.getColumn().setWidth(100);
+//		nameColumn.getColumn().setText(Messages.ObjectExplorer_26);
+//		nameColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//				Metadata data = (Metadata) element;
+//				return data.id;
+//			};
+//
+//			public Image getImage(Object element) {return null;};
+//		});
+//		nameColumn.setEditingSupport(new MetadataCellEditor(viewer, 0));
+
+//		longnameColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		longnameColumn.getColumn().setWidth(150);
+//		longnameColumn.getColumn().setText(Messages.MetadataPage_16);
+//		longnameColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//				Metadata data = (Metadata) element;
+//				return data.longname;
+//			};
+//
+//			public Image getImage(Object element) {return null;};
+//		});
+//		longnameColumn.setEditingSupport(new MetadataCellEditor(viewer, 1));
+//
+//		typeColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		typeColumn.getColumn().setWidth(100);
+//		typeColumn.getColumn().setText(Messages.FrequencyListEditorInput_9);
+//		typeColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//				Metadata data = (Metadata) element;
+//				return data.type;
+//			};
+//
+//			public Image getImage(Object element) {return null;};
+//		});
+//		typeColumn.setEditingSupport(new MetadataCellEditor(viewer, 2));
+//
+//		selectionColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		selectionColumn.getColumn().setWidth(100);
+//		selectionColumn.getColumn().setText(Messages.MetadataPage_18);
+//		selectionColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//				return null;
+//			};
+//			public Image getImage(Object element) {
+//				Metadata data = (Metadata) element;
+//				if (data.selection)
+//					return IImageKeys.getImage(IImageKeys.CHECKED);
+//				else
+//					return IImageKeys.getImage(IImageKeys.UNCHECKED);
+//			};
+//		});
+//
+//		partitionColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		partitionColumn.getColumn().setWidth(100);
+//		partitionColumn.getColumn().setText(Messages.MetadataPage_19);
+//		partitionColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//
+//				return null;
+//			};
+//
+//			public Image getImage(Object element) 
+//			{
+//				Metadata data = (Metadata) element;
+//				if (data.partition)
+//					return IImageKeys.getImage(IImageKeys.CHECKED);
+//				else
+//					return IImageKeys.getImage(IImageKeys.UNCHECKED);
+//			};
+//		});
+//
+//		displayColumn = new TableViewerColumn(viewer, SWT.NONE);
+//		displayColumn.getColumn().setWidth(100);
+//		displayColumn.getColumn().setText(Messages.MetadataPage_20);
+//		displayColumn.setLabelProvider(new ColumnLabelProvider() {
+//			@Override
+//			public String getText(Object element) {
+//
+//				return null;
+//			};
+//
+//			public Image getImage(Object element) 
+//			{
+//				Metadata data = (Metadata) element;
+//				if (data.display)
+//					return IImageKeys.getImage(IImageKeys.CHECKED);
+//				else
+//					return IImageKeys.getImage(IImageKeys.UNCHECKED);
+//			};
+//		});
+//
+//		viewer.getTable().addMouseListener(new MouseListener() {
+//			@Override
+//			public void mouseUp(MouseEvent e) { }
+//			@Override
+//			public void mouseDown(MouseEvent e) { }
+//
+//			@Override
+//			public void mouseDoubleClick(MouseEvent e) {int colid = getPointedColumn(e);
+//			IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+//			for (Object obj : selection.toArray()) {
+//				Metadata data = (Metadata) obj;
+//				switch (colid) {
+//				case 3:
+//					data.selection = !data.selection;
+//					break;
+//				case 4:
+//					data.partition = !data.partition;
+//					break;
+//				case 5:
+//					data.display = !data.display;
+//					break;
+//				}
+//			}
+//			viewer.setInput(metadatas);
+//			viewer.refresh(); 
+//			}
+//		});
+
+		metadataTable = toolkit.createTable(form.getBody(), SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL);
+		GridData gd = new GridData(GridData.FILL, GridData.FILL, true, true,2,1);
+		metadataTable.setLayoutData(gd);
+		metadataTable.setHeaderVisible(true);
+		metadataTable.setLinesVisible(true);
+		viewer2 = new TableViewer(metadataTable);
+		viewer2.getTable().addKeyListener(new TableKeyListener(viewer2));
+		viewer2.setContentProvider(new IStructuredContentProvider(){
+			@Override
+			public Object[] getElements(Object inputElement) {
+				if (inputElement instanceof Metadatas) {
+					Metadatas m = (Metadatas) inputElement;
+					ArrayList<String> header = m.getHeadersList();
+					System.out.println(Messages.MetadataPage_4+header);
+
+					Object[] elems = new Object[m.keySet().size()];
+					int i = 0;
+					for(String key : m.keySet()) {
+						elems[i++] = m.get(key);
+					}
+					return elems;
+
+				} else {
+					return new Object[0];
+				}
+			}
+
+			@Override
+			public void dispose() {	}
+
+			@Override
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+		});
+
+		displayColumn2 = new TableViewerColumn(viewer2, SWT.NONE);
+		displayColumn2.getColumn().setWidth(120);
+		displayColumn2.getColumn().setText(Messages.MetadataPage_5);
+		displayColumn2.setLabelProvider(new ColumnLabelProvider() {
+			@Override
+			public String getText(Object element) {
+				if (element instanceof TextInjection) {
+					TextInjection ti = (TextInjection) element;
+					return ti.id;
+				} else
+					return ""; //$NON-NLS-1$
+			};
+
+			@Override
+			public Image getImage(Object element) 
+			{
+				return null;
+			};
+		});
+		
+		//if (metadataFile != null) {
+			reloadViewers();
+		//}
+	}
+
+	protected void reloadViewers() {
+		if (viewer2 == null) return;
+		//viewer2.setInput(null);
+		//viewer2.refresh();
+		if (main.getRootDir() == null) return;
+		metadataFile = new File(main.getRootDir(), "metadata.csv"); //$NON-NLS-1$
+		Metadatas temp = null;
+		if (metadataFile.exists()) {//if their is a metadata file OK
+			if (metadataFile.getName().endsWith(".csv")) { //$NON-NLS-1$
+				String encoding = Toolbox.getParam(Toolbox.METADATA_ENCODING);
+				String colsep = Toolbox.getParam(Toolbox.METADATA_COLSEPARATOR);
+				String txtsep = Toolbox.getParam(Toolbox.METADATA_TXTSEPARATOR);
+				temp = new Metadatas(metadataFile, encoding, colsep, txtsep, 1);
+			} else {
+				temp = new Metadatas(metadataFile);
+			}
+		} else {
+			System.out.println(NLS.bind(Messages.MetadataPage_7, metadataFile));
+			return;
+		}
+				
+		File xmlfile = temp.getXMLFile();
+		if (xmlfile.exists()) {
+			xmlfile.delete();
+		}
+		metadatas.clear();
+		for(Metadata m : temp.getMetadatas()) {
+			if (!metadatas.contains(m))
+				metadatas.add(m);
+		}
+		
+		for (TableViewerColumn col : columns) {
+			col.getColumn().dispose();
+		}
+		columns = new ArrayList<TableViewerColumn>();
+		
+		index = 0;
+		for (String key : temp.getHeadersList()) {
+			TableViewerColumn col = new TableViewerColumn(viewer2, SWT.NONE);
+			columns.add(col);
+			col.getColumn().setWidth(100);
+			col.getColumn().setText(key);
+			col.setLabelProvider(new ColumnLabelProvider() {
+				int myindex = index++;
+				@Override
+				public String getText(Object element) {
+					if (element instanceof TextInjection) {
+						TextInjection ti = (TextInjection) element;
+						return ti.get(myindex).getSecond();
+					} else
+						return ""; //$NON-NLS-1$
+				};
+
+				@Override
+				public Image getImage(Object element) 
+				{
+					return null;
+				};
+			});
+		}
+
+//		viewer.setInput(metadatas);
+//		viewer.refresh();
+		viewer2.setInput(temp);
+		//viewer2.refresh();
+	}
+
+	/**
+	 * Creates the list section.
+	 */
+	protected void createListSection()
+	{
+
+	}
+
+	/**
+	 * return the column under the mouse pointer.
+	 *
+	 * @param e the e
+	 * @return the pointed column
+	 */
+	public int getPointedColumn(MouseEvent e) {
+		int x = e.x; // + lineTableViewer.getTable().get;
+		int sumWidthColumn = this.nameColumn.getColumn().getWidth();
+		if (x < sumWidthColumn)
+			return 0;
+
+		sumWidthColumn += this.longnameColumn.getColumn().getWidth();
+		if (x < sumWidthColumn)
+			return 1;
+
+		sumWidthColumn += this.typeColumn.getColumn().getWidth();
+		if (x < sumWidthColumn)
+			return 2;
+
+		sumWidthColumn += this.selectionColumn.getColumn().getWidth();
+		if (x < sumWidthColumn)
+			return 3;
+
+		sumWidthColumn += this.partitionColumn.getColumn().getWidth();
+		if (x < sumWidthColumn)
+			return 4;
+
+		return 0;
+	}
+
+	public void setMetadataFile(File metadataFile2) {
+		this.metadataFile = metadataFile2;
+	}
+
+	public void reload() {
+		reloadViewers();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/imports/MetadataPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineContentProvider.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.cooccurrences;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.functions.cooccurrences.*;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LineContentProvider.
+ *
+ * @ author mdecorde
+ */
+public class LineContentProvider implements IStructuredContentProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
+	 * .lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked") //$NON-NLS-1$
+		List<Cooccurrence.CLine> lines = (List<Cooccurrence.CLine>) inputElement;
+		// System.out.println("input lines size "+ lines.size());
+		return lines.toArray();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
+	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineLabelProvider.java	(revision 122)
@@ -0,0 +1,130 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.cooccurrences;
+
+import java.text.DecimalFormat;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.CoocPreferencePage;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LineLabelProvider.
+ *
+ * @ author mdecorde
+ */
+public class LineLabelProvider implements ITableLabelProvider {
+
+	/** The format. */
+	String format = TxmPreferences.get(CoocPreferencePage.SCOREFORMAT);
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		// System.out.println("getColumnText "+columnIndex+" >>> "+((Cooccurence.CLine)
+		// element).resume());
+		Cooccurrence.CLine line = (Cooccurrence.CLine) element;
+		switch (columnIndex) {
+		case 0:
+			return ""; //$NON-NLS-1$
+		case 1:
+			return line.occ;
+		case 2:
+			return "" + line.freq; //$NON-NLS-1$
+		case 3:
+			return "" + line.nbocc; //$NON-NLS-1$
+		case 4:
+			//String signe = "+"; //$NON-NLS-1$
+			/*
+			 * DecimalFormat f = new DecimalFormat("0.0000E00"); //$NON-NLS-1$
+			 * try { //if (line.mode > line.nbocc) // signe="-"; //$NON-NLS-1$
+			 * 
+			 * f = new DecimalFormat(format); return f.format(line.score);
+			 * }catch(Exception e){ } String d = f.format(line.score);
+			 * 
+			 * return d.substring(d.length()-2, d.length());
+			 */
+			return String.valueOf((int) line.score);
+			//return ""+(line.score*100.0)+"%"; //$NON-NLS-1$
+		case 5:
+			DecimalFormat f = new DecimalFormat("#.0"); //$NON-NLS-1$
+			return f.format(line.distmoyenne);
+			//return ""+line.distmoyenne; //$NON-NLS-1$
+		case 6:
+			return ""; //$NON-NLS-1$
+		}
+		return "null" + columnIndex; //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+	 */
+	@Override
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/LineLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/CooccurrencesEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/CooccurrencesEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/CooccurrencesEditor.java	(revision 122)
@@ -0,0 +1,1021 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.cooccurrences;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.Toolbox;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.cooccurrences.comparators.CLineComparator;
+import org.txm.functions.cooccurrences.comparators.DistComparator;
+import org.txm.functions.cooccurrences.comparators.FreqComparator;
+import org.txm.functions.cooccurrences.comparators.NbOccComparator;
+import org.txm.functions.cooccurrences.comparators.OccComparator;
+import org.txm.functions.cooccurrences.comparators.ReverseComparator;
+import org.txm.functions.cooccurrences.comparators.ScoreComparator;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.link.CooccurrencesToConcordances;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.CooccurrenceEditorInput;
+import org.txm.rcpapplication.preferences.CoocPreferencePage;
+import org.txm.rcpapplication.preferences.UserPreferencePage;
+import org.txm.rcpapplication.swt.widget.AssistedQueryWidget;
+import org.txm.rcpapplication.swt.widget.EmpantWidget;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * display the cooc parameters and result @ author mdecorde.
+ */
+public class CooccurrencesEditor extends EditorPart implements CustomizableEditor{
+	
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor"; //$NON-NLS-1$
+
+	/** The cooc. */
+	Cooccurrence cooc;
+	
+	/** The self. */
+	CooccurrencesEditor self;
+	// params
+	/** The query widget. */
+	AssistedQueryWidget queryWidget;
+	
+	/** The props area. */
+	PropertiesSelector propsArea;
+	
+	/** The empant panel. */
+	EmpantWidget empantPanel;
+	
+	/** The T score. */
+	Text TScore;
+	
+	/** The T count. */
+	Spinner TCount;
+	
+	/** The T freq. */
+	Spinner TFreq;
+
+	/** The line table viewer. */
+	TableViewer viewer;
+	
+	/** The n column. */
+	TableColumn nColumn;
+	
+	/** The occ column. */
+	TableColumn occColumn;
+	
+	/** The freq column. */
+	TableColumn freqColumn;
+	
+	/** The nbocc column. */
+	TableColumn nboccColumn;
+	
+	/** The score column. */
+	TableColumn scoreColumn;
+	
+	/** The dist column. */
+	TableColumn distColumn;
+
+	/** The current comparator. */
+	CLineComparator currentComparator;
+
+	/** The corpus. */
+	private Corpus corpus;
+	
+	/** The query. */
+	private Query query;
+	
+	/** The properties. */
+	private List<Property> properties;
+	
+	/** The structure. */
+	private StructuralUnit structure;
+	
+	/** The leftmin. */
+	private int leftmin;
+	
+	/** The leftmax. */
+	private int leftmax;
+	
+	/** The rightmin. */
+	private int rightmin;
+	
+	/** The rightmax. */
+	private int rightmax;
+	
+	/** The minfreq. */
+	private int minfreq;
+	
+	/** The mincount. */
+	private int mincount;
+	
+	/** The minscore. */
+	private double minscore;
+
+	/** The scroll composite. */
+	private ScrolledComposite scrollComposite;
+
+	/** The include xpivot. */
+	private boolean includeXpivot;
+	
+	private boolean buildLexicalTableWithCooccurrents;
+
+	/** The source. */
+	private Object source;
+
+	/**
+	 * Instantiates a new cooccurrences editor.
+	 */
+	public CooccurrencesEditor() {
+		super();
+		self = this;
+	}
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+	throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		this.cooc = ((CooccurrenceEditorInput) input).getCooc();
+		if (cooc != null)
+		{
+			this.corpus = cooc.getCorpus();
+			setPartName(cooc.getCorpus().getName()+": "+cooc.getName()); //$NON-NLS-1$
+		}
+		else
+			this.corpus = ((CooccurrenceEditorInput) input).getCorpus();
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Sort.
+	 */
+	public void sort() {
+		if (cooc != null && currentComparator != null) {
+
+			try {
+				Log.info(NLS.bind(Messages.CooccurrencesEditor_0, currentComparator.getName()));
+
+				PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
+						new IRunnableWithProgress() {
+							@Override
+							public void run(IProgressMonitor monitor)
+							throws InvocationTargetException,
+							InterruptedException {
+								try {
+									cooc.sort(currentComparator);
+								} catch (CqiClientException e) {
+									System.err.println(NLS.bind(
+										Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+								}
+							}
+						});
+			} catch (Exception e) {
+				System.err.println(NLS.bind(
+						Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+			viewer.refresh();
+		}
+	}
+
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		FormLayout parentLayout = new FormLayout();
+		parent.setLayout(parentLayout);
+
+		scrollComposite = new ScrolledComposite(parent, SWT.H_SCROLL
+				| SWT.BORDER);
+		FormData paramLayoutData = new FormData();
+		paramLayoutData.top = new FormAttachment(0);
+		paramLayoutData.left = new FormAttachment(0);
+		paramLayoutData.right = new FormAttachment(100);
+		scrollComposite.setLayoutData(paramLayoutData);
+
+		final Composite paramArea = new Composite(scrollComposite, SWT.NONE);
+		FormLayout paramLayout = new FormLayout();
+		paramArea.setLayout(paramLayout);
+
+		scrollComposite.setContent(paramArea);
+		scrollComposite.setExpandVertical(true);
+		scrollComposite.setExpandHorizontal(true);
+		scrollComposite.addControlListener(new ControlAdapter() {
+			@Override
+			public void controlResized(ControlEvent e) {
+				Rectangle r = scrollComposite.getClientArea();
+				scrollComposite.setMinSize(paramArea.computeSize(SWT.DEFAULT,
+						SWT.DEFAULT));
+			}
+		});
+
+		// Label infos = new Label(paramArea, SWT.NONE);
+		// infos.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+		// true));
+
+		Composite queryArea = new Composite(paramArea, SWT.NONE);
+
+		FormData queryLayoutData = new FormData();
+		queryLayoutData.top = new FormAttachment(0);
+		queryLayoutData.left = new FormAttachment(0);
+		queryLayoutData.right = new FormAttachment(100);
+		queryArea.setLayoutData(queryLayoutData);
+
+		queryArea.setLayout(new GridLayout(3, false));
+
+		Label queryLabel = new Label(queryArea, SWT.NONE);
+		queryLabel.setText(Messages.IndexEditor_3);
+		queryLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false,
+				true));
+
+		// [ (v)]
+		queryWidget = new AssistedQueryWidget(queryArea, SWT.DROP_DOWN,
+				this.corpus);
+		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
+		layoutData.horizontalAlignment = GridData.FILL;
+		layoutData.grabExcessHorizontalSpace = true;
+		queryWidget.setLayoutData(layoutData);
+		queryWidget.addKeyListener(new KeyListener() {
+			@Override
+			public void keyPressed(KeyEvent e) {
+				// System.out.println("key pressed : "+e.keyCode);
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					compute();
+				}
+			}
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+			}
+
+		});
+
+		final Button go = new Button(queryArea, SWT.BOLD);
+		go.setText(Messages.CooccurrencesEditor_2);
+
+		Font f = go.getFont();
+		FontData defaultFont = f.getFontData()[0];
+		defaultFont.setStyle(SWT.BOLD);
+		Font newf = new Font(go.getDisplay(), defaultFont);
+		go.setFont(newf);
+
+		layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
+		layoutData.horizontalAlignment = GridData.FILL;
+		layoutData.grabExcessHorizontalSpace = false;
+		go.setLayoutData(layoutData);
+
+		go.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// Filters
+		Composite filtercontrols = new Composite(paramArea, SWT.NONE);
+		FormData filtersLayoutData = new FormData();
+		filtersLayoutData.top = new FormAttachment(queryArea, 0);
+		// filtersLayoutData.bottom = new FormAttachment (100);
+		filtersLayoutData.left = new FormAttachment(0);
+		filtersLayoutData.right = new FormAttachment(100);
+		filtercontrols.setLayoutData(filtersLayoutData);
+		RowLayout layout = new RowLayout();
+		layout.wrap = true;
+		layout.center = true;
+		filtercontrols.setLayout(layout);
+
+		// | Properties: word_pos [Edit] |
+		propsArea = new PropertiesSelector(filtercontrols, SWT.NONE);
+		propsArea.setLayout(new GridLayout(4, false));
+		propsArea.setCorpus(this.getCorpus());
+		propsArea.setText(Messages.CooccurrencesEditor_3);
+		propsArea.addValueChangeListener(new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				if (TxmPreferences.getBoolean(UserPreferencePage.AUTO_UPDATE_EDITOR))
+					compute();
+			}
+		});
+		/*
+		 * FormData propsLayoutData = new FormData(); propsLayoutData.top = new
+		 * FormAttachment (queryArea, 0); propsLayoutData.left = new
+		 * FormAttachment (0); propsLayoutData.right = new FormAttachment (100);
+		 * propsArea.setLayoutData(propsLayoutData);
+		 */
+
+		/*
+		 * GridLayout gridLayout = new GridLayout(); gridLayout.numColumns = 9;
+		 * gridLayout.makeColumnsEqualWidth = false;
+		 * filtercontrols.setLayout(gridLayout);
+		 */
+
+		Label seuilLabel = new Label(filtercontrols, SWT.NONE);
+		seuilLabel.setText(Messages.CooccurrencesEditor_4);
+
+		TFreq = new Spinner(filtercontrols, SWT.BORDER);
+		TFreq.setMinimum(1);
+		TFreq.setMaximum(99999);
+		TFreq.setIncrement(1);
+		TFreq.setPageIncrement(100);
+		int defaultFmin = TxmPreferences.getInt(CoocPreferencePage.MINFREQ, 2);
+		TFreq.setSelection(defaultFmin);
+
+		seuilLabel = new Label(filtercontrols, SWT.NONE);
+		seuilLabel.setText(Messages.CooccurrencesEditor_5);
+		TCount = new Spinner(filtercontrols, SWT.BORDER);
+		TCount.setMinimum(1);
+		TCount.setMaximum(99999);
+		TCount.setIncrement(1);
+		TCount.setPageIncrement(100);
+		int defaultCountmin = TxmPreferences.getInt(CoocPreferencePage.MINCOUNT, 2);
+		TCount.setSelection(defaultCountmin);
+
+		seuilLabel = new Label(filtercontrols, SWT.NONE);
+		seuilLabel.setText(Messages.CooccurrencesEditor_6);
+		TScore = new Text(filtercontrols, SWT.BORDER);
+		TScore.setText("0.0"); //$NON-NLS-1$
+		String defaultScoremin = TxmPreferences.get(CoocPreferencePage.MINSCORE, "2.0"); //$NON-NLS-1$
+		TScore.setText(defaultScoremin);
+
+		// empant
+		empantPanel = new EmpantWidget(paramArea, SWT.NONE, this.getCorpus());
+		
+		FormData empantLayoutData = new FormData();
+		empantLayoutData.top = new FormAttachment(filtercontrols, 0);
+		empantLayoutData.bottom = new FormAttachment(100);
+		empantLayoutData.left = new FormAttachment(0);
+		empantLayoutData.right = new FormAttachment(100);
+		empantPanel.setLayoutData(empantLayoutData);
+		empantPanel.setMinLeft(TxmPreferences.getInt(CoocPreferencePage.MINLEFT));
+		empantPanel.setMaxLeft(TxmPreferences.getInt(CoocPreferencePage.MAXLEFT));
+		empantPanel.setMinRight(TxmPreferences.getInt(CoocPreferencePage.MINRIGHT));
+		empantPanel.setMaxRight(TxmPreferences.getInt(CoocPreferencePage.MAXRIGHT));
+		
+		// result
+		Composite resultArea = new Composite(parent, SWT.NONE);
+		FormData resultLayoutData = new FormData();
+		resultLayoutData.top = new FormAttachment(scrollComposite, 0);
+		resultLayoutData.left = new FormAttachment(0);
+		resultLayoutData.right = new FormAttachment(100);
+		resultLayoutData.bottom = new FormAttachment(100);
+		resultArea.setLayoutData(resultLayoutData);
+
+		FormLayout resultLayout = new FormLayout();
+		resultArea.setLayout(resultLayout);
+
+		viewer = new TableViewer(resultArea, SWT.MULTI
+				| SWT.FULL_SELECTION | SWT.BORDER);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+		
+		if (corpus != null && corpus.getFont() != null && corpus.getFont().length() > 0) {
+			Font old = viewer.getTable().getFont();
+			FontData fD = old.getFontData()[0];
+			//Font f = new Font(old.getDevice(), corpus.getFont(), fD.getHeight(), fD.getStyle());
+			Font font = new Font(Display.getCurrent(), corpus.getFont(), fD.getHeight(), fD.getStyle()); 
+			viewer.getTable().setFont(font);
+		}
+
+		viewer.getTable().addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				Point mouseposition = new Point(e.x
+						+ viewer.getTable().getHorizontalBar()
+						.getSelection(), e.y);
+				int col = getPointedColumn(mouseposition);
+				//System.out.println("col "+col);
+				switch(col)
+				{
+				default:
+					IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+					CooccurrencesToConcordances.link(CooccurrencesEditor.this, selection);
+				}
+			}
+		});
+
+		FormData tableLayoutData = new FormData();
+		tableLayoutData.top = new FormAttachment(0);
+		tableLayoutData.bottom = new FormAttachment(100);
+		tableLayoutData.left = new FormAttachment(0);
+		tableLayoutData.right = new FormAttachment(100);
+		viewer.getTable().setLayoutData(tableLayoutData);
+
+		viewer.setLabelProvider(new LineLabelProvider());
+		viewer.setContentProvider(new LineContentProvider());
+		if (cooc != null)
+			viewer.setInput(cooc.getLines());
+
+		nColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		nColumn.setText(" "); //$NON-NLS-1$
+		nColumn.pack();
+
+		occColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		occColumn.setText(Messages.CooccurrencesEditor_8);
+		occColumn.setToolTipText(Messages.CooccurrencesEditor_8);
+		occColumn.setWidth(200);
+		occColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setColComparator(new OccComparator(), occColumn);
+				sort();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		freqColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		freqColumn.setText(Messages.FrequencyListEditorInput_4);
+		freqColumn.setToolTipText(Messages.FrequencyListEditorInput_4);
+		freqColumn.setWidth(100);
+		freqColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setColComparator(new FreqComparator(), freqColumn);
+				sort();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		nboccColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		nboccColumn.setText(Messages.CooccurrencesEditor_10);
+		nboccColumn.setToolTipText(Messages.CooccurrencesEditor_10);
+		nboccColumn.setWidth(130);
+		nboccColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setColComparator(new NbOccComparator(), nboccColumn);
+				sort();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		scoreColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		scoreColumn.setText(Messages.CooccurrencesEditor_17);
+		scoreColumn.setToolTipText(Messages.CooccurrencesEditor_17);
+		scoreColumn.setWidth(100);
+		scoreColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setColComparator(new ScoreComparator(), scoreColumn);
+				sort();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		distColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		distColumn.setText(Messages.CooccurrencesEditor_9);
+		distColumn.setToolTipText(Messages.CooccurrencesEditor_9);
+		distColumn.setWidth(130);
+		distColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				setColComparator(new DistComparator(), distColumn);
+				sort();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		TableColumn n2Column = new TableColumn(viewer.getTable(),
+				SWT.RIGHT);
+		n2Column.setText(""); //$NON-NLS-1$
+		n2Column.pack();
+
+		viewer.refresh();
+		currentComparator = new ScoreComparator();
+		setColComparator(new ScoreComparator(), scoreColumn);
+		sort();
+		setColComparator(new ScoreComparator(), scoreColumn);
+		sort();
+		createContextMenu(viewer);
+		setParametersFromCooc();
+
+		for (TableColumn col : viewer.getTable().getColumns())
+			col.pack();
+	}
+
+	/**
+	 * Gets the pointed column.
+	 *
+	 * @param mouseposition the mouseposition
+	 * @return the pointed column
+	 */
+	public int getPointedColumn(Point mouseposition) {
+		int x = mouseposition.x; // + lineTableViewer.getTable().get;
+		int sumWidthColumn = this.nColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 0;
+
+		sumWidthColumn += this.occColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 1;
+
+		sumWidthColumn += this.freqColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 2;
+
+		sumWidthColumn += this.nboccColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 3;
+
+		sumWidthColumn += this.scoreColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 4;
+
+		sumWidthColumn += this.distColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 5;
+
+		return 5;
+	}
+
+	/**
+	 * Compute.
+	 */
+	public void compute() {
+		StatusLine.setMessage(Messages.CooccurrencesEditor_33);
+		if (this.queryWidget.getQueryString().trim().length() == 0
+				|| this.queryWidget.getQueryString().trim().equals("\"\"")) //$NON-NLS-1$
+			return;
+		this.query = new Query(this.queryWidget.getQueryString());
+		queryWidget.memorize();
+		
+		if (this.empantPanel.getMinLeft() == -1 && this.empantPanel.getMinRight() == -1)
+		{
+			if (this.empantPanel.getStruct() == null) {
+				System.out.println(Messages.CooccurrencesEditor_16);
+				return;
+			} else if (!this.empantPanel.getXPivot()) {
+				System.out.println(Messages.CooccurrencesEditor_16);
+				return;
+			}
+		}
+		this.properties = this.propsArea.getProperties();
+		this.structure = this.empantPanel.getStruct();
+		this.leftmin = this.empantPanel.getMinLeft() + 1;
+		this.leftmax = this.empantPanel.getMaxLeft() + 1;
+		this.rightmin = this.empantPanel.getMinRight() + 1;
+		this.rightmax = this.empantPanel.getMaxRight() + 1;
+		this.minfreq = this.TFreq.getSelection();
+		this.mincount = this.TCount.getSelection();
+		this.includeXpivot = this.empantPanel.getXPivot();
+		/*if (!this.empantPanel.getXPivot() && this.structure != null) {
+			if (this.leftmin == 1) {
+				this.leftmin = 2;
+				if (this.leftmax == 1)
+					this.leftmax = 2;
+			}
+			if (this.rightmin == 1) {
+				this.rightmin = 2;
+				if (this.rightmax == 1)
+					this.rightmax = 2;
+			}
+		}*/
+
+		try {
+			Double d = Double.parseDouble(TScore.getText());
+			this.minscore = d;
+		} catch (Exception e) {
+			System.out.println(NLS.bind(Messages.CooccurrencesEditor_18, TScore.getText()));
+			this.minscore = 0.0;
+		}
+		
+		buildLexicalTableWithCooccurrents = TxmPreferences.getBoolean(CoocPreferencePage.PARTIALLEXICALTABLE);
+
+		JobHandler jobhandler = new JobHandler(NLS.bind(Messages.CooccurrencesEditor_12, corpus)) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				JobsTimer.start();
+				monitor.beginTask(Messages.CooccurrencesEditor_13, 100);
+				try {
+					System.out.println(NLS.bind(Messages.CooccurrencesEditor_20, query.getQueryString(), corpus.getName()));
+					cooc = new Cooccurrence(corpus, query, properties,
+							structure, leftmax, leftmin, rightmin, rightmax,
+							minfreq, mincount, minscore, includeXpivot, buildLexicalTableWithCooccurrents);
+					//System.out.println("cooc: "+corpus+" "+query+" "+properties+" "+structure+" "+leftmax+" "+leftmin+" "+rightmin+" "+rightmax+" "+minfreq+" "+mincount+" "+minscore+" "+includeXpivot);
+					monitor.worked(5);
+					
+					monitor.subTask(Messages.CooccurrencesEditor_27);
+					if (!cooc.stepQueryLimits()) {
+						return Status.CANCEL_STATUS;
+					}	
+					
+					monitor.subTask(Messages.CooccurrencesEditor_28);
+					if (!cooc.stepGetMatches()) {
+						return Status.CANCEL_STATUS;
+					}
+					monitor.worked(10);
+					
+					monitor.subTask(Messages.CooccurrencesEditor_29);
+					if (!cooc.stepBuildSignatures())
+						return Status.CANCEL_STATUS;
+					monitor.worked(10);
+					
+					monitor.subTask(Messages.CooccurrencesEditor_30);
+					if (!cooc.stepCount())
+						return Status.CANCEL_STATUS;
+					monitor.worked(10);
+					
+					monitor.subTask(Messages.CooccurrencesEditor_31);
+					this.acquireSemaphore();
+					if (!cooc.stepBuildLexicalTable())
+						return Status.CANCEL_STATUS;
+					monitor.worked(10);
+					this.releaseSemaphore();
+					
+					monitor.subTask(Messages.CooccurrencesEditor_32);
+					this.acquireSemaphore();
+					if (!cooc.stepGetScores())
+						return Status.CANCEL_STATUS;
+					monitor.worked(10);
+					this.releaseSemaphore();
+					
+					if (cooc != null) cooc.clearMemory();
+					
+					
+					
+					final String message;
+					if (cooc.getLines().size() == 0) {
+						message = (Messages.CooccurrencesEditor_23);
+					} else if (cooc.getLines().size() == 1) {
+						message = (Messages.CooccurrencesEditor_24);
+					} else {
+						message = (Messages.bind(Messages.CooccurrencesEditor_34, cooc.getNumberOfKeyword(), cooc.getNumberOfDifferentCooccurrents()));
+					}
+					
+					System.out.println(message);
+					this.syncExec(new Runnable() {
+						@Override
+						public void run() {
+							String txt = "tp "+cooc.getNumberOfKeyword()+", vc "+cooc.getNumberOfDifferentCooccurrents()+", tc "+cooc.getNumberOfCooccurrents(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							try { txt += ", T "+cooc.getCorpus().getSize();} //$NON-NLS-1$
+							catch(Exception e) {System.out.println(Messages.CooccurrencesEditor_25);}
+							String tooltip = "- " + txt.replaceAll(", ", "\n- "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							
+							empantPanel.setInfo(txt, tooltip);
+							StatusLine.setMessage(message);
+						}
+					});
+
+					corpus.storeResult(cooc);
+				} catch(ThreadDeath e) {
+					if (cooc != null) cooc.clearMemory();
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					if (cooc != null) cooc.clearMemory();
+					Logger.severe(Messages.CooccurrencesEditor_1 
+					+ " " + Logger.toString(e)); //$NON-NLS-1$
+					
+					try {
+						Logger.info(Messages.LastCQPError+Toolbox.getCqiClient().getLastCQPError());
+					} catch (Exception e2) {
+						Logger.severe(Messages.ConcordancesEditor_7+e2);
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+					
+					return Status.CANCEL_STATUS;
+				}
+				if (cooc != null) cooc.clearMemory();
+				monitor.worked(5);
+				// System.out.println(cooc.toInfos());
+
+				monitor.subTask(Messages.CooccurrencesEditor_14);
+
+				if (monitor.isCanceled())
+					return Status.CANCEL_STATUS;
+
+				monitor.subTask(Messages.CooccurrencesEditor_15);
+				syncExec(new Runnable() {
+					@Override
+					public void run() {
+						viewer.setInput(cooc.getLines());
+						sort();
+						viewer.refresh();
+						for (TableColumn col : viewer.getTable().getColumns())
+							col.pack();
+						setTitleToolTip(cooc.toInfos());
+						CorporaView.refresh();
+						CorporaView.expand(corpus);
+						QueriesView.refresh();
+						RVariablesView.refresh();
+						
+						viewer.getTable().setFocus();
+						setPartName(cooc.getCorpus().getName()+": "+cooc.getName()); //$NON-NLS-1$
+					}
+				});
+
+				monitor.worked(35);
+				monitor.done();
+				JobsTimer.stopAndPrint();
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+	}
+
+	/**
+	 * Sets the parameters from cooc.
+	 */
+	private void setParametersFromCooc() {
+		if (this.cooc != null) {
+			this.queryWidget.setText(cooc.getQuery().getQueryString());
+			List<Property> available;
+			try {
+				available = new ArrayList<Property>(this.cooc.getCorpus().getProperties());
+				available.removeAll(cooc.getProperties());
+				this.propsArea.setProperties(available, cooc.getProperties());
+			} catch (CqiClientException e) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+			this.empantPanel.setStructure(cooc.getStructure());
+			this.empantPanel.setMinLeft(cooc.getMinLeft()-1);
+			this.empantPanel.setMaxLeft(cooc.getMaxLeft()-1);
+			this.empantPanel.setMinRight(cooc.getMinRight()-1);
+			this.empantPanel.setMaxRight(cooc.getMaxRight()-1);
+
+		}
+	}
+
+	/**
+	 * Sets the col comparator.
+	 *
+	 * @param comp the comp
+	 * @param col the col
+	 */
+	private void setColComparator(CLineComparator comp, TableColumn col) {
+		currentComparator = comp;
+		if (viewer.getTable().getSortColumn() != col) {
+			viewer.getTable().setSortColumn(col);
+			viewer.getTable().setSortDirection(SWT.UP);
+		} else if (viewer.getTable().getSortDirection() == SWT.UP) {
+			viewer.getTable().setSortDirection(SWT.DOWN);
+			currentComparator = new ReverseComparator(currentComparator);
+		} else {
+			viewer.getTable().setSortDirection(SWT.UP);
+		}
+		if (cooc != null)
+			currentComparator.initialize(cooc.getCorpus());
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/**
+	 * Gets the cooc.
+	 *
+	 * @return the cooc
+	 */
+	public Cooccurrence getCooc() {
+		return this.cooc;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return cooc;
+	}
+
+	public void setFocus(String query2) {
+		this.queryWidget.setText(query2);
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return this.corpus.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cooccurrences/CooccurrencesEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>TXM's editors</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>All the inputs used to show the editors</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ObjectExplorerEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ObjectExplorerEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ObjectExplorerEditorInput.java	(revision 122)
@@ -0,0 +1,113 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.objects.TxmObject;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ObjectExplorerEditorInput.
+ */
+public class ObjectExplorerEditorInput implements IEditorInput {
+
+	/** The txmobject. */
+	private TxmObject txmobject;
+
+	/**
+	 * Instantiates a new object explorer editor input.
+	 *
+	 * @param txmobject the txmobject
+	 */
+	public ObjectExplorerEditorInput(TxmObject txmobject) {
+		this.txmobject = txmobject;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_CONCORDANCES);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return this.txmobject.getName(); 
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the txm object.
+	 *
+	 * @return the txm object
+	 */
+	public TxmObject getTxmObject() {
+		return txmobject;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ObjectExplorerEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ParaBrowserEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ParaBrowserEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ParaBrowserEditorInput.java	(revision 122)
@@ -0,0 +1,144 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ParaBrowserEditorInput.
+ */
+public class ParaBrowserEditorInput implements IEditorInput {
+
+	/** The corpus. */
+	private List<MainCorpus> corpus;
+
+	/**
+	 * Instantiates a new para browser editor input.
+	 *
+	 * @param corpus the corpus
+	 */
+	public ParaBrowserEditorInput(List<MainCorpus> corpus) {
+		this.corpus = corpus;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_CONCORDANCES);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		if (corpus.size() > 0) {
+			return corpus.get(0).getName();
+		} else
+			return ""; //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the names.
+	 *
+	 * @return the names
+	 */
+	public List<String> getNames() {
+		List<String> names = new ArrayList<String>();
+		for (MainCorpus corp : corpus) {
+			names.add(corp.getName());
+		}
+		return names; // corpus.getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public MainCorpus getCorpus() {
+		if (corpus.size() > 0) {
+			return corpus.get(0);
+		} else
+			return null;
+	}
+
+	/**
+	 * Gets the corpus list.
+	 *
+	 * @return the corpus list
+	 */
+	public List<MainCorpus> getCorpusList() {
+		return corpus;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ParaBrowserEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/___CAHEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/___CAHEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/___CAHEditorInput.java	(revision 122)
@@ -0,0 +1,154 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.ca.CA;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.stat.data.LexicalTable;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CAHEditorInput.
+ *
+ * @author sjacquot
+ * @author sloiseau
+ */
+@Deprecated
+// FIXME: this class is no longer in use
+public class ___CAHEditorInput implements IEditorInput {
+	
+	/** The ca. */
+	private CA ca;
+	private LexicalTable table;
+		
+	/**
+	 * Instantiates a new classification editor input.
+	 *
+	 * @param ca the ca
+	 * @param partition the partition
+	 * @param property the property
+	 */
+	public ___CAHEditorInput(final CA ca, LexicalTable table) {
+		super();
+		this.ca = ca;
+		this.table = table;
+		if (ca != null && table == null) 	this.table = ca.getLexicalTable();
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID,
+				IImageKeys.ACTION_CAH);
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return "CAH"; //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the CA.
+	 *
+	 * @return the Correspondence Analysis underlying object
+	 */
+	public CA getCA() {
+		return ca;
+	}
+	
+	/**
+	 * Gets the Lexical Table.
+	 *
+	 * @return the Lexical Table underlying object
+	 */
+	public LexicalTable getLexicalTable() {
+		return table;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/___CAHEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/LexicalTableEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/LexicalTableEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/LexicalTableEditorInput.java	(revision 122)
@@ -0,0 +1,265 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.Tablable;
+import org.txm.rcpapplication.editors.TableEditor;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LexicalTableEditorInput.
+ *
+ * @author sloiseau
+ */
+public class LexicalTableEditorInput implements IEditorInput {
+
+	/** The lexical table. */
+	private LexicalTable lexicalTable;
+	
+	/** The property. */
+	private Property property;
+
+	/** The editors. */
+	private List<EditorPart> editors;
+	
+	/** The inputs. */
+	private List<IEditorInput> inputs;
+
+	/**
+	 * Instantiates a new lexical table editor input.
+	 *
+	 * @param table the table
+	 * @param partition the partition
+	 * @param property the property
+	 */
+	public LexicalTableEditorInput(final LexicalTable table,
+			Partition partition, Property property) {
+		this.lexicalTable = table;
+		this.property = property;
+
+		editors = new ArrayList<EditorPart>();
+		editors.add(new TableEditor());
+
+		inputs = new ArrayList<IEditorInput>();
+
+		class LexicalTableLabelProvider extends LabelProvider implements
+				ITableLabelProvider {
+
+			@Override
+			public Image getColumnImage(Object element, int columnIndex) {
+				return null;
+			}
+
+			@Override
+			public String getColumnText(Object element, int columnIndex) {
+				int[] val = (int[]) element;
+				return String.valueOf(val[columnIndex]);
+			}
+
+		}
+
+		Tablable asTable = new AbstractTablable() {
+
+			@Override
+			public String[] getColumnTitles() {
+				return new String[] { Messages.FrequencyListEditorInput_3,
+						Messages.FrequencyListEditorInput_4 };
+			}
+
+			@Override
+			public String[] getColumnTypes() {
+				return new String[] { Messages.FrequencyListEditorInput_5,
+						Messages.FrequencyListEditorInput_6 };
+			}
+
+			@Override
+			public IStructuredContentProvider getContentProvider() {
+				return new IStructuredContentProvider() {
+					@Override
+					public Object[] getElements(Object inputElement) {
+						LexicalTable res = (LexicalTable) inputElement;
+						List<int[]> row = new ArrayList<int[]>();
+						for (int i = 0; i < res.getNRows(); i++) {
+							int[] v = null;
+							try {
+								v = res.getRow(i).asIntArray();
+							} catch (StatException e) {
+								System.err.println(NLS.bind(
+										Messages.GraphicalLogger_0, e));
+							}
+							row.add(v);
+						}
+						return row.toArray();
+					}
+
+					@Override
+					public void dispose() {
+						// TODO Auto-generated method stub
+					}
+
+					@Override
+					public void inputChanged(Viewer viewer, Object oldInput,
+							Object newInput) {
+						// TODO Auto-generated method stub
+					}
+
+				};
+			}
+
+			@Override
+			public Object getInput() {
+				return table;
+			}
+
+			@Override
+			public LabelProvider getLabelProvider() {
+				return new LexicalTableLabelProvider();
+			}
+
+		};
+		inputs.add(asTable);
+
+	}
+
+	/**
+	 * Instantiates a new lexical table editor input.
+	 *
+	 * @param lt the lt
+	 */
+	public LexicalTableEditorInput(LexicalTable lt) {
+		this(lt, lt.getPartition(), lt.getProperty());
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.LEXICALTABLE);
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return this.lexicalTable.getProperty().toString();
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the lexical table.
+	 *
+	 * @return the lexicon
+	 */
+	public LexicalTable getLexicalTable() {
+		return lexicalTable;
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/LexicalTableEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/SVGGraphicEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/SVGGraphicEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/SVGGraphicEditorInput.java	(revision 122)
@@ -0,0 +1,146 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.txm.rcpapplication.editors.SVGGraphicable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SpecificitiesResultEditorInput.
+ * 
+ * @author Sylvain Loiseau
+ */
+public class SVGGraphicEditorInput implements IEditorInput, SVGGraphicable {
+
+	/** The filename. */
+	private String filename;
+	
+	/** The name. */
+	private String name;
+
+	/**
+	 * Instantiates a new sVG graphic editor input.
+	 *
+	 * @param filename the filename
+	 * @param name the name
+	 */
+	public SVGGraphicEditorInput(String filename, String name) {
+		super();
+		this.filename = filename;
+		this.name = name;
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return null;
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the file name.
+	 *
+	 * @return the specificitiesResult
+	 */
+	public String getFileName() {
+		return filename;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.SVGGraphicable#getIPath()
+	 */
+	@Override
+	public IPath getIPath() {
+		return Path.fromOSString(filename);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/SVGGraphicEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListEditorInput.java	(revision 122)
@@ -0,0 +1,293 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.Tablable;
+import org.txm.rcpapplication.editors.TableEditor;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.searchengine.cqp.corpus.Property;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FrequencyListEditorInput.
+ *
+ * @author sloiseau
+ */
+public class FrequencyListEditorInput implements IEditorInput,
+		IProvidingMultiPageEditorInput {
+
+	/** The lexicon. */
+	private Lexicon lexicon;
+	
+	/** The property. */
+	private Property property;
+
+	/** The editors. */
+	private List<EditorPart> editors;
+	
+	/** The inputs. */
+	private List<IEditorInput> inputs;
+	
+	/** The names. */
+	private List<String> names = Arrays.asList(new String[] {
+			Messages.FrequencyListEditorInput_0,
+			Messages.FrequencyListEditorInput_1 });
+
+	/**
+	 * Instantiates a new frequency list editor input.
+	 *
+	 * @param lexicon the lexicon
+	 * @param property the property
+	 */
+	public FrequencyListEditorInput(final Lexicon lexicon, Property property) {
+		super();
+		this.lexicon = lexicon;
+		this.property = property;
+
+		editors = new ArrayList<EditorPart>();
+		editors.add(new TableEditor());
+		// editors.add(new SVGGraphicEditor());
+
+		if (lexicon == null)
+			throw new IllegalArgumentException(
+					Messages.FrequencyListEditorInput_2);
+
+		inputs = new ArrayList<IEditorInput>();
+
+		Tablable table = new AbstractTablable() {
+
+			@Override
+			public String[] getColumnTitles() {
+				return new String[] { lexicon.getProperty().toString(),
+						Messages.FrequencyListEditorInput_4 };
+			}
+
+			@Override
+			public String[] getColumnTypes() {
+				return new String[] { Messages.FrequencyListEditorInput_5,
+						Messages.FrequencyListEditorInput_6 };
+			}
+
+			@Override
+			public IStructuredContentProvider getContentProvider() {
+				return new FrequencyListContentProvider();
+			}
+
+			@Override
+			public String getName() {
+				return lexicon.getName(); 
+			}
+
+			@Override
+			public Object getInput() {
+				return lexicon;
+			}
+
+			@Override
+			public LabelProvider getLabelProvider() {
+				return new FrequencyListLabelProvider();
+			}
+		};
+		inputs.add(table);
+
+		/*
+		 * SVGGraphicable pareto = new AbstractSVGGraphicable() {
+		 * 
+		 * @Override public void doSVGGraphic(File file) { try {
+		 * System.out.println(Messages.FrequencyListEditorInput_7);
+		 * lexicon.getParetoGraphic(file); } catch (StatException e) {
+		 * log.error(Messages.CANT_CREATE_GRAPHIC, e); } } };
+		 * System.out.println(
+		 * Messages.FrequencyListEditorInput_11+pareto.getClass());
+		 */
+		// inputs.add(pareto);
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return null;
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return lexicon.getName();
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the lexicon.
+	 *
+	 * @return the lexicon
+	 */
+	public Lexicon getLexicon() {
+		return lexicon;
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+	/**
+	 * Gets the content provider.
+	 *
+	 * @return the content provider
+	 */
+	public IStructuredContentProvider getContentProvider() {
+		return new FrequencyListContentProvider();
+	}
+
+	/**
+	 * Gets the input.
+	 *
+	 * @return the input
+	 */
+	public Object getInput() {
+		return lexicon;
+	}
+
+	/**
+	 * Gets the label provider.
+	 *
+	 * @return the label provider
+	 */
+	public LabelProvider getLabelProvider() {
+		return new FrequencyListLabelProvider();
+	}
+
+	/**
+	 * Gets the column titles.
+	 *
+	 * @return the column titles
+	 */
+	public String[] getColumnTitles() {
+		return new String[] { Messages.FrequencyListEditorInput_9,
+				Messages.FrequencyListEditorInput_4 };
+	}
+
+	// Implementing IProvidingMultiPageEditorInput
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getEditorInputs()
+	 */
+	@Override
+	public List<IEditorInput> getEditorInputs() {
+		// TODO Auto-generated method stub
+		return inputs;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getEditors()
+	 */
+	@Override
+	public List<EditorPart> getEditors() {
+		// TODO Auto-generated method stub
+		return editors;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getNames()
+	 */
+	@Override
+	public List<String> getNames() {
+		// TODO Auto-generated method stub
+		return names;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ImportFormEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ImportFormEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ImportFormEditorInput.java	(revision 122)
@@ -0,0 +1,117 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.io.File;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.editors.imports.ImportModuleCustomization;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ImportFormEditorInput.
+ */
+public class ImportFormEditorInput implements IEditorInput {
+	
+	/** The xmlfile. */
+	File xmlfile;
+	
+	/**
+	 * Instantiates a new import form editor input.
+	 *
+	 * @param xmlfile the xmlfile
+	 */
+	public ImportFormEditorInput(File xmlfile) {
+		this.xmlfile = xmlfile;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_REFERENCER);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		String name = ImportModuleCustomization.getName(xmlfile.getName());
+		return name;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+	
+	/**
+	 * Gets the groovy file.
+	 *
+	 * @return the groovy file
+	 */
+	public File getGroovyFile()
+	{
+		return xmlfile;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ImportFormEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ConcordancesEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ConcordancesEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ConcordancesEditorInput.java	(revision 122)
@@ -0,0 +1,149 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.concordances.Concordance;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ConcordancesEditorInput.
+ */
+@SuppressWarnings("rawtypes") //$NON-NLS-1$
+public class ConcordancesEditorInput implements IEditorInput {
+
+	/** The corpus. */
+	private Corpus corpus;
+	
+	/** The concordance. */
+	private Concordance concordance;
+
+	/**
+	 * Instantiates a new concordances editor input.
+	 *
+	 * @param corpus the corpus
+	 * @param concordance the concordance
+	 */
+	public ConcordancesEditorInput(Corpus corpus, Concordance concordance) {
+		if (concordance != null)
+			this.corpus = concordance.getCorpus();
+		else
+			this.corpus = corpus;
+		this.concordance = concordance;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_CONCORDANCES);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return corpus.getName(); 
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/**
+	 * Gets the concordance.
+	 *
+	 * @return the concordance
+	 */
+	public Concordance getConcordance() {
+		return concordance;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	public void setCorpus(Corpus newCorpus) {
+		this.corpus = newCorpus;
+	}
+
+	public void setConcordance(Concordance conc) {
+		this.concordance = conc;
+	}
+	
+	@Override
+	public boolean equals(Object obj)	{
+		if(obj instanceof ConcordancesEditorInput)	{
+			return this.concordance == ((ConcordancesEditorInput) obj).getConcordance()
+					&& (this.concordance != null && ((ConcordancesEditorInput) obj).getConcordance() != null && this.concordance.getQuery() == ((ConcordancesEditorInput) obj).getConcordance().getQuery());
+		}
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ConcordancesEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractEditorInput.java	(revision 122)
@@ -0,0 +1,98 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This is a root implementation for other abstract implementation of tab type (.
+ *
+ * {@link AbstractSVGGraphicable}, {@link AbstractTablable}, etc.).
+ * @author sloiseau
+ */
+@SuppressWarnings("rawtypes") //$NON-NLS-1$
+public abstract class AbstractEditorInput implements IEditorInput {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractTablable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractTablable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractTablable.java	(revision 122)
@@ -0,0 +1,74 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.txm.rcpapplication.editors.Tablable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Define a tab displaying a graphics in a multi-tab editor.
+ * 
+ * @author sloiseau
+ * 
+ */
+public abstract class AbstractTablable extends AbstractEditorInput implements
+		Tablable {
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getColumnTitles()
+	 */
+	@Override
+	abstract public String[] getColumnTitles();
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getColumnTypes()
+	 */
+	@Override
+	abstract public String[] getColumnTypes();
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getContentProvider()
+	 */
+	@Override
+	abstract public IStructuredContentProvider getContentProvider();
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getInput()
+	 */
+	@Override
+	abstract public Object getInput();
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getLabelProvider()
+	 */
+	@Override
+	abstract public LabelProvider getLabelProvider();
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractTablable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IndexEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IndexEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IndexEditorInput.java	(revision 122)
@@ -0,0 +1,187 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.txm.functions.index.Index;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+
+// TODO: Auto-generated Javadoc
+/**
+ * provides the corpus, partition or the already compute index.
+ *
+ * @author mdecorde
+ */
+public class IndexEditorInput implements IEditorInput {
+	
+	/** The corpus. */
+	protected Corpus corpus;
+	
+	/** The index. */
+	protected Index index;
+	
+	/** The partition. */
+	protected Partition partition;
+
+	/**
+	 * Instantiates a new index editor input.
+	 *
+	 * @param corpus the corpus
+	 */
+	public IndexEditorInput(final Corpus corpus) {
+		super();
+		this.corpus = corpus;
+		this.partition = null;
+		this.index = null;
+	}
+
+	/**
+	 * Instantiates a new index editor input.
+	 *
+	 * @param index the index
+	 */
+	public IndexEditorInput(final Index index) {
+		super();
+		this.corpus = index.getCorpus();
+		this.partition = index.getPartition();
+		this.index = index;
+	}
+
+	/**
+	 * Instantiates a new index editor input.
+	 *
+	 * @param partition the partition
+	 */
+	public IndexEditorInput(Partition partition) {
+		super();
+		this.corpus = partition.getCorpus();
+		this.partition = partition;
+		this.index = null;
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return null;
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		if (partition != null)
+			return partition.getName();
+		else
+			return corpus.getName();
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/**
+	 * Gets the partition.
+	 *
+	 * @return the partition, null if Index computed with a corpus
+	 */
+	public Partition getPartition() {
+		return partition;
+	}
+
+	/**
+	 * Gets the index.
+	 *
+	 * @return the index
+	 */
+	public Index getIndex() {
+		return index;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IndexEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/InternalViewEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/InternalViewEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/InternalViewEditorInput.java	(revision 122)
@@ -0,0 +1,131 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.internal.InternalView;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReferencerEditorInput.
+ */
+public class InternalViewEditorInput implements IEditorInput {
+
+	/** The corpus. */
+	private Corpus corpus;
+	
+	/** The referencer. */
+	private InternalView internalView;
+
+	/**
+	 * Instantiates a new referencer editor input.
+	 *
+	 * @param corpus the corpus
+	 * @param referencer the referencer
+	 */
+	public InternalViewEditorInput(Corpus corpus, InternalView internalView) {
+		if (internalView != null)
+			this.corpus = internalView.getCorpus();
+		else
+			this.corpus = corpus;
+		this.internalView = internalView;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_INTERNALVIEW);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return corpus.getName(); 
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/**
+	 * Gets the referencer.
+	 *
+	 * @return the referencer
+	 */
+	public InternalView getInternalView() {
+		return internalView;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/InternalViewEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CorrespondanceAnalysisEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CorrespondanceAnalysisEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CorrespondanceAnalysisEditorInput.java	(revision 122)
@@ -0,0 +1,612 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.chartsengine.rcp.editors.ChartEditorPart;
+import org.txm.functions.ca.CA;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.Tablable;
+import org.txm.rcpapplication.editors.ca.ColRowInfosLabelProvider;
+import org.txm.rcpapplication.editors.ca.ColsRowsInfosEditor;
+import org.txm.rcpapplication.editors.ca.SingularValuesEditor;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CorrespondanceAnalysisEditorInput.
+ *
+ * @author sloiseau
+ */
+public class CorrespondanceAnalysisEditorInput implements IEditorInput,
+IProvidingMultiPageEditorInput {
+
+	/** The ca. */
+	private CA ca;
+	private static String SEPARATOR = "SEPARATOR"; //$NON-NLS-1$
+
+	/** The property. */
+	private Property property;
+
+	/** The editors. */
+	private List<EditorPart> editors;
+
+	/** The inputs. */
+	private List<IEditorInput> inputs;
+
+	/** The names. */
+	private List<String> names = Arrays.asList(new String[] {
+			Messages.CorrespondanceAnalysisEditorInput_1,
+			Messages.CorrespondanceAnalysisEditorInput_0,
+			Messages.CorrespondanceAnalysisEditorInput_8,
+			Messages.CorrespondanceAnalysisEditorInput_9,
+			Messages.CorrespondanceAnalysisEditorInput_2 });
+
+	/**
+	 * The Class CASingularValueLabelProvider.
+	 */
+	private class CASingularValueLabelProvider extends LabelProvider implements	ITableLabelProvider {
+
+
+		/**
+		 * Percent values number format.
+		 */
+		protected DecimalFormat percentValuesNumberFormat = new DecimalFormat(new String("0.00")); //$NON-NLS-1$
+
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+		 */
+		@Override
+		public Image getColumnImage(Object element, int columnIndex) {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+		 */
+		@Override
+		@SuppressWarnings("unchecked") //$NON-NLS-1$
+		public String getColumnText(Object element, int columnIndex) {
+			DecimalFormat f;
+			Object o = ((List<Object>) element).get(columnIndex);
+			switch (columnIndex) {
+				case 0: // factor
+					return o.toString();
+				case 1: // eigenvalue
+					if ((Double) o < 1) {
+						if ((Double) o < 0.0001)
+							f = new DecimalFormat("0.0000E00"); //$NON-NLS-1$
+						else
+							f = new DecimalFormat("0.0000"); //$NON-NLS-1$
+					} else {
+						f = new DecimalFormat("##########0.0000"); //$NON-NLS-1$
+					}
+					// FIXME: printf syntax tests
+					//return String.format("%.4f", o);
+					return f.format(o);
+				case 2: // percent
+				case 3: // cumul
+					return percentValuesNumberFormat.format(o);
+				default:
+					return ""; //$NON-NLS-1$
+			}
+		}
+	}
+
+	/**
+	 * Instantiates a new correspondence analysis editor input.
+	 *
+	 * @param ca the ca
+	 * @param partition the partition
+	 * @param property the property
+	 */
+	public CorrespondanceAnalysisEditorInput(final CA ca, Partition partition, Property property) {
+		super();
+		this.ca = ca;
+		this.property = property;
+
+		if (ca == null)
+			throw new IllegalArgumentException(
+					Messages.CorrespondanceAnalysisEditorInput_3);
+
+		// Create the tab-editor
+		editors = new ArrayList<EditorPart>();
+
+		// Create the input for each tab-editor
+		inputs = new ArrayList<IEditorInput>();
+
+		// Initialize the editor parts and editor inputs
+		this.initCAFactorialMapEditor();
+		this.initCASingularValuesTableEditor();
+		this.initRowsTableEditor();
+		this.initColumnsTableEditor();
+		this.initCASingularValuesBarChartEditor();
+	}
+
+
+	/**
+	 * Initializes CA factorial map editor.
+	 */
+	public void initCAFactorialMapEditor()	{
+
+		// FIXME: charts creator is not yet implemented
+		System.err.println("CorrespondanceAnalysisEditorInput.initCAFactorialMapEditor(): charts creator is not yet implemented.");
+		// Editor part
+		//EditorPart caFactorialMapEditorPart = SWTChartsComponentsProvider.getCurrent().createCAFactorialMapChartEditorPart(ca);
+		//editors.add(caFactorialMapEditorPart);
+
+		// Editor input
+		//inputs.add(caFactorialMapEditorPart.getEditorInput());
+
+	}
+
+	/**
+	 * Initializes CA singular values table editor.
+	 */
+	public void initCASingularValuesTableEditor()	{
+		// Editor part
+		editors.add(new SingularValuesEditor());
+
+		// Editor input
+		Tablable table = new AbstractTablable() {
+			@Override
+			public String[] getColumnTitles() {
+				return new String[] {
+						Messages.CorrespondanceAnalysisEditorInput_4,
+						Messages.CorrespondanceAnalysisEditorInput_5,
+						"%", Messages.CorrespondanceAnalysisEditorInput_11 + "%", "", ""}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			}
+
+			@Override
+			public String[] getColumnTypes() {
+				return new String[] {
+						Messages.FrequencyListEditorInput_6,
+						Messages.SpecificitiesResultEditorInput_11,
+						Messages.SpecificitiesResultEditorInput_11,
+						Messages.SpecificitiesResultEditorInput_11,
+						Messages.SpecificitiesResultEditorInput_11,
+						SEPARATOR};
+			}
+
+			@Override
+			public IStructuredContentProvider getContentProvider() {
+				return new IStructuredContentProvider() {
+					@Override
+					public Object[] getElements(Object inputElement) {
+						CA ca = (CA) inputElement;
+						List<List<Object>> tabledata = ca.getSingularValuesInfos();
+						return tabledata.toArray();
+					}
+
+					@Override
+					public void dispose() {
+						// TODO Auto-generated method stub
+					}
+
+					@Override
+					public void inputChanged(Viewer viewer, Object oldInput,
+							Object newInput) {
+						// TODO Auto-generated method stub
+					}
+				};
+			}
+
+			@Override
+			public Object getInput() {
+				return ca;
+			}
+
+			@Override
+			public LabelProvider getLabelProvider() {
+				return new CASingularValueLabelProvider();
+			}
+		};
+
+		inputs.add(table);
+	}
+
+
+
+	/**
+	 * Initializes rows data table editor.
+	 */
+	public void initRowsTableEditor()	{
+		// Editor part
+		editors.add(new ColsRowsInfosEditor());
+
+		// Editor input
+		Tablable table = new AbstractTablable() {
+
+			List<String> coltypes;
+			@Override
+			public String[] getColumnTitles() {
+				return ca.getRowInfosTitles();
+				// new String[]{"Rows"," ","Quality","Mass", "Dist", "Inertia"};
+			}
+
+			@Override
+			public String[] getColumnTypes() {
+				coltypes = new ArrayList<String>();
+				coltypes.add(Messages.FrequencyListEditorInput_6);
+				coltypes.add(SEPARATOR);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				for (int c = 0; c < 3; c++)// seulement les 3 premiers axes
+				{
+					coltypes.add(SEPARATOR);
+					coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+					coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				}
+				coltypes.add(SEPARATOR);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(SEPARATOR);
+				return coltypes.toArray(new String[] {});
+				// new String[]{Messages.FrequencyListEditorInput_6,
+				// Messages.SpecificitiesResultEditorInput_11,
+				// Messages.SpecificitiesResultEditorInput_11,
+				// Messages.SpecificitiesResultEditorInput_11};
+			}
+
+			@Override
+			public IStructuredContentProvider getContentProvider() {
+
+				return new IStructuredContentProvider() {
+					@Override
+					public Object[] getElements(Object inputElement) {
+
+						CA ca = (CA) inputElement;
+						return ca.getRowInfos();
+					}
+
+					@Override
+					public void dispose() {
+						// TODO Auto-generated method stub
+					}
+
+					@Override
+					public void inputChanged(Viewer viewer, Object oldInput,
+							Object newInput) {
+						// TODO Auto-generated method stub
+					}
+				};
+			}
+
+			@Override
+			public Object getInput() {
+				return ca;
+			}
+
+			@Override
+			public LabelProvider getLabelProvider() {
+				return new ColRowInfosLabelProvider(this.getColumnTitles());
+			}
+		};
+		inputs.add(table);
+	}
+
+
+	/**
+	 * Initializes columns data table editor.
+	 */
+	public void initColumnsTableEditor()	{
+		// Editor part
+		editors.add(new ColsRowsInfosEditor());
+
+		// Editor input
+		Tablable table = new AbstractTablable() {
+
+			List<String> colnames = new ArrayList<String>();
+			List<String> coltypes = new ArrayList<String>();
+			boolean firstInit = true;
+
+			@Override
+			public String[] getColumnTitles() {
+//				colnames = new ArrayList<String>();
+//				colnames.add(Messages.ComputeClassification_5);
+//				colnames.add(" "); //$NON-NLS-1$
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_46);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_47);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_25);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_26);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_27);
+//				for (int c = 0; c < 3; c++)// seulement les 3 premiers axes
+//				{
+//					colnames.add(" "); //$NON-NLS-1$
+//					colnames.add(Messages.CorrespondanceAnalysisEditorInput_29
+//							+ (c + 1));
+//					colnames.add(Messages.CorrespondanceAnalysisEditorInput_30
+//							+ (c + 1));
+//				}
+//				colnames.add(" "); //$NON-NLS-1$
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_32);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_33);
+//				colnames.add(Messages.CorrespondanceAnalysisEditorInput_34);
+//				colnames.add(""); //$NON-NLS-1$
+//				String[] titles = colnames.toArray(new String[] {});
+//				return titles;
+				return ca.getColInfosTitles();
+				// new String[]{"Rows"," ","Quality","Mass", "Dist", "Inertia"};
+			}
+
+			@Override
+			public String[] getColumnTypes() {
+				coltypes = new ArrayList<String>();
+				coltypes.add(Messages.FrequencyListEditorInput_6);
+				coltypes.add(SEPARATOR);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				for (int c = 0; c < 3; c++) {
+					coltypes.add(SEPARATOR);
+					coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+					coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				}
+				coltypes.add(SEPARATOR);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(Messages.SpecificitiesResultEditorInput_11);
+				coltypes.add(SEPARATOR);
+				return coltypes.toArray(new String[] {});
+				// new String[]{Messages.FrequencyListEditorInput_6,
+				// Messages.SpecificitiesResultEditorInput_11,
+				// Messages.SpecificitiesResultEditorInput_11,
+				// Messages.SpecificitiesResultEditorInput_11};
+			}
+
+			@Override
+			public IStructuredContentProvider getContentProvider() {
+
+				return new IStructuredContentProvider() {
+					@Override
+					public Object[] getElements(Object inputElement) {
+						CA ca = (CA) inputElement;
+						return ca.getColInfos();
+					}
+
+					@Override
+					public void dispose() {
+						// TODO Auto-generated method stub
+					}
+
+					@Override
+					public void inputChanged(Viewer viewer, Object oldInput,
+							Object newInput) {
+						// TODO Auto-generated method stub
+					}
+				};
+			}
+
+			@Override
+			public Object getInput() {
+				return ca;
+			}
+
+			@Override
+			public LabelProvider getLabelProvider() {
+				return new ColRowInfosLabelProvider(this.getColumnTitles());
+			}
+		};
+		inputs.add(table);
+	}
+
+
+	/**
+	 * Initializes CA singular values bar chart editor.
+	 */
+	public void initCASingularValuesBarChartEditor()	{
+		
+		//FIXME: charts creator is not yet implemented
+		System.err.println("CorrespondanceAnalysisEditorInput.initCASingularValuesBarChartEditor(): charts creator is not yet implemented.");
+		// Editor part
+//		ChartEditorPart caSingularValuesEditorPart = SWTChartsComponentsProvider.getCurrent().createCASingularValuesBarChartEditorPart(ca);
+//		editors.add(caSingularValuesEditorPart);
+//
+//		// Editor input
+//		inputs.add(caSingularValuesEditorPart.getEditorInput());
+	}
+
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID,
+				IImageKeys.ACTION_CORRESPONDANCE_ANALYSIS);
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return Messages.CorrespondanceAnalysisEditorInput_10;
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the cA.
+	 *
+	 * @return the Correspondance analysis underlying object
+	 */
+	public CA getCA() {
+		return ca;
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+
+	/**
+	 * Gets the content provider.
+	 *
+	 * @return the content provider
+	 */
+	public IStructuredContentProvider getContentProvider() {
+		return new FrequencyListContentProvider();
+	}
+
+	/**
+	 * Gets the input.
+	 *
+	 * @return the input
+	 */
+	public Object getInput() {
+		return ca;
+	}
+
+	/**
+	 * Gets the label provider.
+	 *
+	 * @return the label provider
+	 */
+	public LabelProvider getLabelProvider() {
+		return new FrequencyListLabelProvider();
+	}
+
+	/**
+	 * Gets the column titles.
+	 *
+	 * @return the column titles
+	 */
+	public String[] getColumnTitles() {
+		return new String[] { Messages.FrequencyListEditorInput_9,
+				Messages.FrequencyListEditorInput_4 };
+	}
+
+	// Implementing IProvidingMultiPageEditorInput
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getEditorInputs()
+	 */
+	@Override
+	public List<IEditorInput> getEditorInputs() {
+		return inputs;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getEditors()
+	 */
+	@Override
+	public List<EditorPart> getEditors() {
+		return editors;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput#getNames()
+	 */
+	@Override
+	public List<String> getNames() {
+		return names;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CorrespondanceAnalysisEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CooccurrenceEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CooccurrenceEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CooccurrenceEditorInput.java	(revision 122)
@@ -0,0 +1,142 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.corpus.Corpus;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CooccurrenceEditorInput.
+ */
+public class CooccurrenceEditorInput implements IEditorInput {
+
+	/** The cooc. */
+	private Cooccurrence cooc;
+	
+	/** The corpus. */
+	private Corpus corpus;
+
+	/**
+	 * Instantiates a new cooccurrence editor input.
+	 *
+	 * @param cooc the cooc
+	 */
+	public CooccurrenceEditorInput(Cooccurrence cooc) {
+		this.cooc = cooc;
+		this.corpus = cooc.getCorpus();
+	}
+
+	/**
+	 * Instantiates a new cooccurrence editor input.
+	 *
+	 * @param corpus the corpus
+	 */
+	public CooccurrenceEditorInput(Corpus corpus) {
+		this.corpus = corpus;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_COOCCURRENCE);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		if (cooc != null)
+			return cooc.getQuery().toString(); 
+		else
+			return Messages.CoocPreferencePage_5;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		if (cooc != null)
+			return cooc.toInfos();
+		else
+			return ""; //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the cooc.
+	 *
+	 * @return the cooc
+	 */
+	public Cooccurrence getCooc() {
+		return cooc;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/CooccurrenceEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ProgressionEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ProgressionEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ProgressionEditorInput.java	(revision 122)
@@ -0,0 +1,136 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.progression.Progression;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ProgressionEditorInput.
+ *
+ * @author mdecorde
+ */
+public class ProgressionEditorInput implements IEditorInput {
+	
+	/** The progression. */
+	private Progression progression;
+
+	/**
+	 * Instantiates a new progression editor input.
+	 *
+	 * @param progression the progression
+	 */
+	public ProgressionEditorInput(Progression progression) {
+		super();
+		this.progression = progression;
+	}
+
+	/**
+	 * Exists.
+	 *
+	 * @return true, if successful
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+
+	/**
+	 * Gets the image descriptor.
+	 *
+	 * @return the image descriptor
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_PROGRESSION);
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return Messages.ProgressionEditorInput_0;
+	}
+
+	/**
+	 * Gets the persistable.
+	 *
+	 * @return the persistable
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/**
+	 * Gets the tool tip text.
+	 *
+	 * @return the tool tip text
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return this.progression.getQueries().toString();
+	}
+
+	/**
+	 * Gets the adapter.
+	 *
+	 * @param arg0 the arg0
+	 * @return the adapter
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class arg0) {
+		return null;
+	}
+
+	/**
+	 * Gets the progression.
+	 *
+	 * @return the progression
+	 */
+	public Progression getProgression() {
+		return progression;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ProgressionEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListContentProvider.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FrequencyListContentProvider.
+ */
+public class FrequencyListContentProvider implements IStructuredContentProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		Lexicon res = (Lexicon) inputElement;
+
+		List<List<Object>> lexicon = new ArrayList<List<Object>>();
+
+		String[] forms = res.getForms();
+		int[] frequencies = res.getFreq();
+
+		for (int i = 0; i < frequencies.length; i++) {
+			List<Object> entry = new ArrayList<Object>(2);
+			entry.add(forms[i]);
+			entry.add(new Integer(frequencies[i]));
+			lexicon.add(entry);
+		}
+		return lexicon.toArray();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractSVGGraphicable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractSVGGraphicable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractSVGGraphicable.java	(revision 122)
@@ -0,0 +1,87 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.SVGGraphicable;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.txm.Toolbox;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Define a tab displaying a graphics in a multi-tab editor.
+ * 
+ * @author sloiseau
+ * 
+ */
+public abstract class AbstractSVGGraphicable extends AbstractEditorInput
+		implements SVGGraphicable {
+
+	/** The path. */
+	protected IPath path;
+
+	/**
+	 * Create and write the desired SVG Graphic in the given file object.
+	 *
+	 * @param file the file
+	 */
+	abstract public void doSVGGraphic(File file);
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.SVGGraphicable#getIPath()
+	 */
+	@Override
+	public IPath getIPath() {
+		if (this.path == null) {
+			File tmp = null;
+			try {
+				String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+				File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
+				resultDir.mkdirs();
+				tmp = File.createTempFile("txm", ".svg", resultDir); //$NON-NLS-1$ //$NON-NLS-2$
+			} catch (IOException e) {
+				Log.severe(Messages.CANT_CREATE_GRAPHIC + e);
+			}
+			// System.out.println(tmp.getAbsolutePath());
+			doSVGGraphic(tmp);
+			try {
+				this.path = Path.fromOSString(tmp.getCanonicalPath());
+			} catch (IOException e) {
+				Log.severe(Messages.CANT_CREATE_GRAPHIC + e);
+			}
+		}
+		return this.path;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/AbstractSVGGraphicable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/TestEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/TestEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/TestEditorInput.java	(revision 122)
@@ -0,0 +1,70 @@
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+
+public class TestEditorInput implements IEditorInput {
+
+	Object selection;
+	/**
+	 * Instantiates a new referencer editor input.
+	 * @param s 
+	 *
+	 */
+	public TestEditorInput(Object s) {
+		this.selection = s;
+	}
+
+	public Object getSelection() {
+		return selection;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return "Test editor input getName()"; //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/TestEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ReferencerEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ReferencerEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ReferencerEditorInput.java	(revision 122)
@@ -0,0 +1,131 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.functions.referencer.Referencer;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReferencerEditorInput.
+ */
+public class ReferencerEditorInput implements IEditorInput {
+
+	/** The corpus. */
+	private Corpus corpus;
+	
+	/** The referencer. */
+	private Referencer referencer;
+
+	/**
+	 * Instantiates a new referencer editor input.
+	 *
+	 * @param corpus the corpus
+	 * @param referencer the referencer
+	 */
+	public ReferencerEditorInput(Corpus corpus, Referencer referencer) {
+		if (referencer != null)
+			this.corpus = referencer.getCorpus();
+		else
+			this.corpus = corpus;
+		this.referencer = referencer;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.ACTION_REFERENCER);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return corpus.getName(); 
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		return getName();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/**
+	 * Gets the referencer.
+	 *
+	 * @return the referencer
+	 */
+	public Referencer getReferencer() {
+		return referencer;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/ReferencerEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListLabelProvider.java	(revision 122)
@@ -0,0 +1,74 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.text.DecimalFormat;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class FrequencyListLabelProvider.
+ */
+public class FrequencyListLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public String getColumnText(Object element, int columnIndex) {
+		Object o = ((List<Object>) element).get(columnIndex);
+		if (o instanceof Double || o instanceof Float) {
+			DecimalFormat f;
+			if ((Double) o < 1) {
+				if ((Double) o < 0.0001)
+					f = new DecimalFormat("0.0000E00"); //$NON-NLS-1$
+				else
+					f = new DecimalFormat("0.0000"); //$NON-NLS-1$
+			} else {
+				f = new DecimalFormat("##########0.0000"); //$NON-NLS-1$
+			}
+			return f.format(o);
+		} else
+			return o.toString();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/FrequencyListLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IProvidingMultiPageEditorInput.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IProvidingMultiPageEditorInput.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IProvidingMultiPageEditorInput.java	(revision 122)
@@ -0,0 +1,67 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.input;
+
+import java.util.List;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+// TODO: Auto-generated Javadoc
+/**
+ * This interface is implemented by {@link IEditorInput} whose content should be
+ * displayed in a GenericMultiPageEditor}.
+ * 
+ * @author Sylvain Loiseau
+ */
+public interface IProvidingMultiPageEditorInput {
+
+	/**
+	 * Get the instances of editor to be displayed in the.
+	 *
+	 * @return a list of EditorPart instances.
+	 * {@link MultiPageEditorPart}.
+	 */
+	public List<EditorPart> getEditors();
+
+	/**
+	 * Get the data source ({@link IEditorInput} for each editor given by.
+	 *
+	 * @return a list of IEditorInput instances.
+	 * {@link #getEditor()}.
+	 */
+	public List<IEditorInput> getEditorInputs();
+
+	/**
+	 * Get the name of each page of the MultiPageEditor.
+	 * 
+	 * @return a list of IEditorInput instances.
+	 */
+	public List<String> getNames();
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/input/IProvidingMultiPageEditorInput.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMWebBrowserEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMWebBrowserEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMWebBrowserEditor.java	(revision 122)
@@ -0,0 +1,31 @@
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.internal.browser.BrowserViewer;
+import org.eclipse.ui.internal.browser.WebBrowserEditor;
+
+@SuppressWarnings("restriction") //$NON-NLS-1$
+public class TXMWebBrowserEditor extends WebBrowserEditor {
+	
+	public static final String WEB_BROWSER_EDITOR_ID = "org.txm.rcpapplication.editors.TXMWebBrowserEditor"; //$NON-NLS-1$
+	
+	public void setTitleImage(Image img) {
+		super.setTitleImage(img);
+	}
+	
+	public void setTitle(String title) {
+		super.setTitle(title);
+	}
+	
+	public void setTitleTooltip(String tooltip) {
+		super.setTitleToolTip(tooltip);
+	}
+
+	public void focus() {
+		webBrowser.getBrowser().forceFocus();
+	}
+	
+	public BrowserViewer getWebBrowserViewer() {
+		return webBrowser;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMWebBrowserEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicable.java	(revision 122)
@@ -0,0 +1,49 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.ui.IEditorInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An {@link IEditorInput} implementing this interface may be displayed as a
+ * table by the {@link TableEditor}.
+ * 
+ * @author sloiseau
+ */
+public interface SVGGraphicable extends IEditorInput {
+
+	/**
+	 * Gets the i path.
+	 *
+	 * @return the i path
+	 */
+	public IPath getIPath();
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetLineNumber.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetLineNumber.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetLineNumber.java	(revision 122)
@@ -0,0 +1,154 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Action to set the number of line shown per concordance page @ author mdecorde.
+ */
+public class SetLineNumber extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.setcontextsize"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new sets the line number.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public SetLineNumber(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.SetLineNumber_0);
+		setToolTipText(Messages.SetLineNumber_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		SetLineNumberDialog d = new SetLineNumberDialog(window.getShell());
+		if (d.open() == Window.OK) {
+			concordanceEditor.setLinePerPage(d.getValue());
+			// concordanceEditor.getConcordance().setLeftContextSize(d.getLeftContextSize());
+			// concordanceEditor.getConcordance().setRightContextSize(d.getRightContextSize());
+			// concordanceEditor.sort();
+			// concordanceEditor.fillDisplayArea(concordanceEditor.getTopLine(),
+			// concordanceEditor.getBottomLine());
+		}
+	}
+
+	/**
+	 * The Class SetLineNumberDialog.
+	 */
+	private class SetLineNumberDialog extends Dialog {
+
+		/** The right context size. */
+		private int rightContextSize;
+		
+		/** The right spinner. */
+		private Spinner rightSpinner;
+
+		/**
+		 * Instantiates a new sets the line number dialog.
+		 *
+		 * @param parentShell the parent shell
+		 */
+		protected SetLineNumberDialog(Shell parentShell) {
+			super(parentShell);
+			//parentShell.setText(Messages.SetLineNumber_0);
+		}
+
+		/**
+		 * Gets the value.
+		 *
+		 * @return the value
+		 */
+		public int getValue() {
+			return rightContextSize;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayout(new GridLayout(2, false));
+
+			new Label(mainArea, SWT.None).setText(Messages.SetLineNumber_1);
+			rightSpinner = new Spinner(mainArea, SWT.NONE);
+			rightSpinner.setSelection(concordanceEditor.getLinePerPage());
+			rightSpinner.setMinimum(0);
+			rightSpinner.setMaximum(100000);
+			return mainArea;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			rightContextSize = rightSpinner.getSelection();
+			super.okPressed();
+		}
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetLineNumber.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesProvider.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.functions.concordances.Line;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The IStructuredContentProvider used by the reference and line tables.
+ *
+ * @author jmague
+ */
+public class ConcordancesProvider implements IStructuredContentProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
+	 * .lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked") //$NON-NLS-1$
+		List<Line> lines = (List<Line>) inputElement;
+		return lines.toArray();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
+	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>concordances editors</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComplexSort.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComplexSort.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComplexSort.java	(revision 122)
@@ -0,0 +1,403 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.functions.concordances.comparators.CompositeComparator;
+import org.txm.functions.concordances.comparators.LineComparator;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * action called to set the complex sort of the concordance @ author mdecorde.
+ */
+public class ComplexSort extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.complexsort"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new complex sort.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public ComplexSort(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.ComplexSort_1);
+		setToolTipText(Messages.ComplexSort_2);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		SelectComplexSortDialog d = new SelectComplexSortDialog(window
+				.getShell());
+		if (d.open() == Window.OK) {
+			concordanceEditor.setUserDefinedComparators(d
+					.getUserDefinedComparators());
+			concordanceEditor.setCurrentComparator(d.getSelectedComparator());
+			concordanceEditor.sort();
+		}
+
+	}
+
+	/**
+	 * The Class SelectComplexSortDialog.
+	 */
+	private class SelectComplexSortDialog extends Dialog {
+
+		/** The selected comparator. */
+		private LineComparator selectedComparator;
+		
+		/** The user defined comparators. */
+		private List<LineComparator> userDefinedComparators;
+		
+		/** The list. */
+		private org.eclipse.swt.widgets.List list;
+
+		/**
+		 * Instantiates a new select complex sort dialog.
+		 *
+		 * @param shell the shell
+		 */
+		public SelectComplexSortDialog(Shell shell) {
+			super(shell);
+			this.userDefinedComparators = new ArrayList<LineComparator>(
+					concordanceEditor.getUserDefinedComparators());
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+		 */
+		@Override
+		protected void configureShell(Shell newShell) {
+			super.configureShell(newShell);
+			newShell.setText(Messages.ComplexSort_3);
+		}
+
+		/**
+		 * Gets the user defined comparators.
+		 *
+		 * @return the user defined comparators
+		 */
+		public List<LineComparator> getUserDefinedComparators() {
+			return userDefinedComparators;
+		}
+
+		/**
+		 * Gets the selected comparator.
+		 *
+		 * @return the selected comparator
+		 */
+		public LineComparator getSelectedComparator() {
+			return selectedComparator;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayout(new GridLayout(2, false));
+			list = new org.eclipse.swt.widgets.List(mainArea, SWT.V_SCROLL
+					| SWT.BORDER);
+			GridData layoutData = new GridData(GridData.FILL, GridData.FILL,
+					true, true);
+			layoutData.verticalSpan = 2;
+			layoutData.minimumWidth = 100;
+			layoutData.minimumHeight = 75;
+			list.setLayoutData(layoutData);
+			for (LineComparator comparator : concordanceEditor
+					.getUserDefinedComparators()) {
+				list.add(comparator.getName());
+			}
+			list.select(0);
+			Button newButton = new Button(mainArea, SWT.PUSH);
+			newButton.setText(Messages.ComplexSort_4);
+			newButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.ComplexSort_0);
+					CompositeSorterCreationDialog sorterCreationDialog = new CompositeSorterCreationDialog(
+							getShell());
+					int code = sorterCreationDialog.open();
+					if (code == Window.OK) {
+						CompositeComparator comp = new CompositeComparator(
+								sorterCreationDialog.getName(),
+								sorterCreationDialog.getComparators());
+						list.add(comp.getName());
+						userDefinedComparators.add(comp);
+						list.select(list.getItemCount() - 1);
+					}
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+			return mainArea;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			selectedComparator = userDefinedComparators.get(list
+					.getSelectionIndex());
+			super.okPressed();
+		}
+
+	}
+
+	/**
+	 * The Class CompositeSorterCreationDialog.
+	 */
+	private class CompositeSorterCreationDialog extends Dialog {
+
+		/** The available comparators. */
+		final private List<LineComparator> availableComparators;
+		
+		/** The selected comparators. */
+		final private List<LineComparator> selectedComparators;
+		
+		/** The name text. */
+		private Text nameText;
+		
+		/** The name. */
+		private String name;
+
+		/**
+		 * Instantiates a new composite sorter creation dialog.
+		 *
+		 * @param shell the shell
+		 */
+		protected CompositeSorterCreationDialog(Shell shell) {
+			super(shell);
+			this.availableComparators = new ArrayList<LineComparator>(
+					concordanceEditor.getStandardComparators());
+			this.selectedComparators = new ArrayList<LineComparator>();
+		}
+
+		/**
+		 * Gets the name.
+		 *
+		 * @return the name
+		 */
+		public String getName() {
+			return name;
+		}
+
+		/**
+		 * Gets the comparators.
+		 *
+		 * @return the comparators
+		 */
+		public List<LineComparator> getComparators() {
+			return selectedComparators;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+		 */
+		@Override
+		protected void configureShell(Shell newShell) {
+			super.configureShell(newShell);
+			newShell.setText(Messages.ComplexSort_5);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			GridLayout layout = new GridLayout(4, false);
+			mainArea.setLayout(layout);
+
+			Label nameLabel = new Label(mainArea, SWT.NONE);
+			nameLabel.setText(Messages.ComplexSort_6);
+
+			nameText = new Text(mainArea, SWT.NONE);
+			GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
+			gridData.horizontalSpan = 3;
+			nameText.setLayoutData(gridData);
+
+			final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.V_SCROLL);
+			for (LineComparator comparator : availableComparators) {
+				availbleItems.add(comparator.getName());
+			}
+			gridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+			Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			gridData.widthHint = size.x;
+			availbleItems.setLayoutData(gridData);
+
+			Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+			selectionButtons.setLayout(new GridLayout(1, false));
+			Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+			Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+			final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+			selectedItems.setLayoutData(gridData);
+
+			Composite orderButtons = new Composite(mainArea, SWT.NONE);
+			orderButtons.setLayout(new GridLayout(1, false));
+			Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+			Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+			select.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.ComplexSort_12);
+					int ind = availbleItems.getSelectionIndex();
+					selectedItems.add(availbleItems.getItem(ind));
+					availbleItems.remove(ind);
+					selectedComparators.add(availableComparators.get(ind));
+					availableComparators.remove(ind);
+					availbleItems.setSelection(ind);
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				}
+			});
+
+			unselect.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.ComplexSort_14);
+					int ind = selectedItems.getSelectionIndex();
+					availbleItems.add(selectedItems.getItem(ind));
+					selectedItems.remove(ind);
+					availableComparators.add(selectedComparators.get(ind));
+					selectedComparators.remove(ind);
+					selectedItems.setSelection(ind);
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				}
+			});
+
+			up.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.ComplexSort_16);
+					int ind = selectedItems.getSelectionIndex();
+					if (ind > 0) {
+						selectedItems.add(selectedItems.getItem(ind), ind - 1);
+						selectedItems.remove(ind + 1);
+						selectedComparators.add(selectedComparators
+								.get(ind - 1));
+						selectedComparators.remove(ind + 1);
+						selectedItems.setSelection(ind - 1);
+					}
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				}
+			});
+
+			down.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.ComplexSort_18);
+					int ind = selectedItems.getSelectionIndex();
+					if (ind < selectedItems.getItemCount() - 1) {
+						selectedItems.add(selectedItems.getItem(ind), ind + 2);
+						selectedItems.remove(ind);
+						selectedComparators.add(selectedComparators
+								.get(ind + 2));
+						selectedComparators.remove(ind);
+						selectedItems.setSelection(ind + 2);
+					}
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				}
+			});
+			return mainArea;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			if (nameText.getText().equals("")) { //$NON-NLS-1$
+				MessageDialog.openError(getShell(), Messages.CreateSubcorpusDialog_11,
+						Messages.ComplexSort_9);
+				return;
+			}
+			name = nameText.getText();
+			if (selectedComparators.size() < 2) {
+				MessageDialog.openError(getShell(), Messages.ComplexSort_10,
+						Messages.ComplexSort_11);
+				return;
+			}
+			super.okPressed();
+		}
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComplexSort.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineSortReferencePattern.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineSortReferencePattern.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineSortReferencePattern.java	(revision 122)
@@ -0,0 +1,382 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.functions.ReferencePattern;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+// TODO: Auto-generated Javadoc
+/**
+ * Action to build the reference pattern.
+ *
+ * @ author mdecorde
+ */
+public class DefineSortReferencePattern extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.definereferencepattern"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+	
+	/** The para browser editor. */
+	private ParaBrowserEditor paraBrowserEditor;
+
+	/**
+	 * Instantiates a new define reference pattern.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public DefineSortReferencePattern(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.DefineReferencePattern_3);
+		setToolTipText(Messages.DefineReferencePattern_4);
+	}
+
+	/**
+	 * Instantiates a new define reference pattern.
+	 *
+	 * @param window the window
+	 * @param paraBrowserEditor the para browser editor
+	 */
+	public DefineSortReferencePattern(IWorkbenchWindow window,
+			ParaBrowserEditor paraBrowserEditor) {
+		this.window = window;
+		this.paraBrowserEditor = paraBrowserEditor;
+		setId(ID);
+		setText(Messages.DefineReferencePattern_3);
+		setToolTipText(Messages.DefineReferencePattern_4);
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		List<StructuralUnit> structuralUnits = null;
+		List<Property> availableReferenceItems = new ArrayList<Property>();
+		try {
+			if (paraBrowserEditor != null) {
+				structuralUnits = paraBrowserEditor.getCorpus()
+						.getOrderedStructuralUnits();
+				availableReferenceItems.addAll(paraBrowserEditor.getCorpus()
+						.getOrderedProperties());
+
+			} else if (concordanceEditor != null) {
+				structuralUnits = concordanceEditor.getCorpus()
+						.getOrderedStructuralUnits();
+				availableReferenceItems.addAll(concordanceEditor.getCorpus()
+						.getOrderedProperties());
+
+			}
+
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		for (StructuralUnit unit : structuralUnits) {
+			availableReferenceItems.addAll(unit.getProperties());
+		}
+
+		// System.out.println("selected "+concordanceEditor.getSelectedReferences());
+		// System.out.println("before avail"+availableReferenceItems);
+		if (paraBrowserEditor != null) {
+			availableReferenceItems.remove(paraBrowserEditor
+					.getSelectedReferences());
+		} else {
+			availableReferenceItems.remove(concordanceEditor
+					.getSelectedSortReferences());
+		}
+
+		// System.out.println("after avail"+availableReferenceItems);
+		DefineReferencePatternDialog d = null;
+		if (paraBrowserEditor != null) {
+			d = new DefineReferencePatternDialog(window.getShell(),
+					availableReferenceItems, paraBrowserEditor
+							.getSelectedReferences());
+		} else if (concordanceEditor != null) {
+			d = new DefineReferencePatternDialog(window.getShell(),
+					availableReferenceItems, concordanceEditor
+							.getSelectedSortReferences());
+		}
+
+		if (d.open() == Window.OK) {
+			if (paraBrowserEditor != null) {
+				paraBrowserEditor.setReferencePattern(new ReferencePattern(d
+						.getSelectesdReferenceItems()));
+			} else if (concordanceEditor != null) {
+				concordanceEditor.setRefSortPattern(new ReferencePattern(d
+						.getSelectesdReferenceItems()));
+			}
+			//System.out.println(concordanceEditor.getSortReferencePattern());
+		}
+	}
+
+	/**
+	 * The Class DefineReferencePatternDialog.
+	 */
+	private class DefineReferencePatternDialog extends Dialog {
+
+		/** The available reference items. */
+		private List<Property> availableReferenceItems;
+		
+		/** The selected reference items. */
+		private List<Property> selectedReferenceItems;
+
+		/**
+		 * Instantiates a new define reference pattern dialog.
+		 *
+		 * @param parentShell the parent shell
+		 * @param availableReferenceItems the available reference items
+		 * @param selectedReferences the selected references
+		 */
+		protected DefineReferencePatternDialog(Shell parentShell,
+				List<Property> availableReferenceItems,
+				List<Property> selectedReferences) {
+			super(parentShell);
+			
+			this.availableReferenceItems = availableReferenceItems;
+			this.selectedReferenceItems = selectedReferences;
+			this.availableReferenceItems.removeAll(selectedReferences);
+			this.setShellStyle(this.getShellStyle() | SWT.RESIZE);	
+		}
+
+		/**
+		 * Gets the selectesd reference items.
+		 *
+		 * @return the selectesd reference items
+		 */
+		public List<Property> getSelectesdReferenceItems() {
+			return selectedReferenceItems;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+		 */
+		@Override
+		protected void configureShell(Shell shell) {
+		      super.configureShell(shell);
+		      shell.setText(Messages.DefineReferencePattern_5);
+		      
+		      shell.setSize(400, 500);
+		      shell.setLocation(shell.getParent().getLocation());
+		   }
+		
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, true));
+			mainArea.setLayout(new GridLayout(4, false));
+
+			final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.V_SCROLL);
+			for (Property property : availableReferenceItems) {
+				if (property instanceof StructuralUnitProperty) {
+					StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+					availbleItems.add(sProperty.getStructuralUnit().getName()
+							+ ": " + property.getName()); //$NON-NLS-1$
+				} else {
+					availbleItems.add(property.getName());
+				}
+			}
+						
+			GridData gridData = new GridData(GridData.FILL, GridData.FILL,
+					true, true);
+			//Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			//gridData.widthHint = size.x;
+			availbleItems.setLayoutData(gridData);
+
+			Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+			selectionButtons.setLayout(new GridLayout(1, false));
+			Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+			Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+			final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+			selectedItems.setLayoutData(gridData);
+			for (Property property : selectedReferenceItems) {
+				if (property instanceof StructuralUnitProperty) {
+					StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+					selectedItems.add(sProperty.getStructuralUnit().getName()
+							+ ": " + property.getName()); //$NON-NLS-1$
+				} else {
+					selectedItems.add(property.getName());
+				}
+			}
+			
+			//DBL CLICK Listeners
+			selectedItems.addMouseListener(new MouseListener() {
+				@Override
+				public void mouseUp(MouseEvent e) { }
+				
+				@Override
+				public void mouseDown(MouseEvent e) { }
+				
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					availbleItems.add(selectedItems.getItem(ind));
+					selectedItems.remove(ind);
+					availableReferenceItems
+							.add(selectedReferenceItems.get(ind));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind);	
+				}
+			});
+			availbleItems.addMouseListener(new MouseListener() {
+				@Override
+				public void mouseUp(MouseEvent e) { }
+				
+				@Override
+				public void mouseDown(MouseEvent e) { }
+				
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					int ind = availbleItems.getSelectionIndex();
+					selectedItems.add(availbleItems.getItem(ind));
+					availbleItems.remove(ind);
+					selectedReferenceItems
+							.add(availableReferenceItems.get(ind));
+					availableReferenceItems.remove(ind);
+					availbleItems.setSelection(ind);
+				}
+			});
+
+			Composite orderButtons = new Composite(mainArea, SWT.NONE);
+			orderButtons.setLayout(new GridLayout(1, false));
+			Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+			Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+			select.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = availbleItems.getSelectionIndex();
+					selectedItems.add(availbleItems.getItem(ind));
+					availbleItems.remove(ind);
+					selectedReferenceItems
+							.add(availableReferenceItems.get(ind));
+					availableReferenceItems.remove(ind);
+					availbleItems.setSelection(ind);
+				}
+			});
+
+			unselect.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					availbleItems.add(selectedItems.getItem(ind));
+					selectedItems.remove(ind);
+					availableReferenceItems
+							.add(selectedReferenceItems.get(ind));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind);					
+				}
+			});
+
+			up.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					if (ind > 0) {
+						String value = selectedItems.getItem(ind);
+						selectedItems.remove(ind);
+						selectedItems.add(value, ind -1);
+						
+						Property prop = selectedReferenceItems.get(ind);
+						selectedReferenceItems.remove(ind);
+						selectedReferenceItems.add(ind-1,prop);
+						
+						selectedItems.setSelection(ind -1);
+					}
+				}
+			});
+
+			down.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					if (ind < selectedItems.getItemCount() - 1) {
+						String value = selectedItems.getItem(ind);
+						selectedItems.remove(ind);
+						selectedItems.add(value, ind + 1);
+						
+						Property prop = selectedReferenceItems.get(ind);
+						selectedReferenceItems.remove(ind);
+						selectedReferenceItems.add(ind+1, prop);
+						
+						selectedItems.setSelection(ind + 1);
+					}
+				}
+			});
+
+			return mainArea;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineSortReferencePattern.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/OpenFileDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/OpenFileDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/OpenFileDialog.java	(revision 122)
@@ -0,0 +1,101 @@
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+
+public class OpenFileDialog {
+
+  Display d;
+
+  Shell s;
+
+  OpenFileDialog() {
+    d = new Display();
+    s = new Shell(d);
+    s.setSize(400, 400);
+    
+    s.setText("A MessageBox Example");
+    //         create the menu system
+    Menu m = new Menu(s, SWT.BAR);
+    // create a file menu and add an exit item
+    final MenuItem file = new MenuItem(m, SWT.CASCADE);
+    file.setText("&File");
+    final Menu filemenu = new Menu(s, SWT.DROP_DOWN);
+    file.setMenu(filemenu);
+    final MenuItem openItem = new MenuItem(filemenu, SWT.PUSH);
+    openItem.setText("&Open\tCTRL+O");
+    openItem.setAccelerator(SWT.CTRL + 'O');
+    final MenuItem saveItem = new MenuItem(filemenu, SWT.PUSH);
+    saveItem.setText("&Save\tCTRL+S");
+    saveItem.setAccelerator(SWT.CTRL + 'S');
+    final MenuItem separator = new MenuItem(filemenu, SWT.SEPARATOR);
+    final MenuItem exitItem = new MenuItem(filemenu, SWT.PUSH);
+    exitItem.setText("E&xit");
+
+    class Open implements SelectionListener {
+      public void widgetSelected(SelectionEvent event) {
+        FileDialog fd = new FileDialog(s, SWT.OPEN);
+        fd.setText("Open");
+        fd.setFilterPath("C:/");
+        String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };
+        fd.setFilterExtensions(filterExt);
+        String selected = fd.open();
+        System.out.println(selected);
+      }
+
+      public void widgetDefaultSelected(SelectionEvent event) {
+      }
+    }
+
+    class Save implements SelectionListener {
+      public void widgetSelected(SelectionEvent event) {
+        FileDialog fd = new FileDialog(s, SWT.SAVE);
+        fd.setText("Save");
+        fd.setFilterPath("C:/");
+        String[] filterExt = { "*.txt", "*.doc", ".rtf", "*.*" };
+        fd.setFilterExtensions(filterExt);
+        String selected = fd.open();
+        System.out.println(selected);
+      }
+
+      public void widgetDefaultSelected(SelectionEvent event) {
+      }
+    }
+    openItem.addSelectionListener(new Open());
+    saveItem.addSelectionListener(new Save());
+
+    exitItem.addSelectionListener(new SelectionAdapter() {
+      public void widgetSelected(SelectionEvent e) {
+        MessageBox messageBox = new MessageBox(s, SWT.ICON_QUESTION
+            | SWT.YES | SWT.NO);
+        messageBox.setMessage("Do you really want to exit?");
+        messageBox.setText("Exiting Application");
+        int response = messageBox.open();
+        if (response == SWT.YES)
+          System.exit(0);
+      }
+    });
+    s.setMenuBar(m);
+    s.open();
+
+    while (!s.isDisposed()) {
+      if (!d.readAndDispatch())
+        d.sleep();
+    }
+    d.dispose();
+  }
+
+  public static void main(String[] argv) {
+    new OpenFileDialog();
+  }
+
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/OpenFileDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelectionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelectionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelectionDialog.java	(revision 122)
@@ -0,0 +1,313 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+
+// TODO: Auto-generated Javadoc
+/**
+ * the dialog box called to select the view properties @ author mdecorde.
+ */
+public class SortPropertySelectionDialog extends Dialog {
+
+	/** The available properties. */
+	final private List<Property> availableProperties;
+	
+	/** The selected properties. */
+	final private List<Property> selectedProperties;
+	
+	/** The maxprops. */
+	int maxprops = -1;
+
+	/** The available properties view. */
+	org.eclipse.swt.widgets.List availablePropertiesSort;
+	
+	/** The selected properties view. */
+	org.eclipse.swt.widgets.List selectedPropertiesSort;
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public SortPropertySelectionDialog(IShellProvider parentShell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties) {
+		super(parentShell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public SortPropertySelectionDialog(Shell shell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties) {
+		super(shell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 * @param maxprops the maxprops
+	 */
+	public SortPropertySelectionDialog(Shell shell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties, int maxprops) {
+		super(shell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		this.maxprops = maxprops;
+	}
+
+	/**
+	 * Gets the selected properties.
+	 *
+	 * @return the selected properties
+	 */
+	public List<Property> getSelectedProperties() {
+		return selectedProperties;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.SortPropertySelection_0);
+		newShell.setMinimumSize(300, 200);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		// parent.setLayout(new FormLayout());
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		mainArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		// 4 columns
+		GridLayout layout = new GridLayout(4, false);
+		mainArea.setLayout(layout);
+
+		availablePropertiesSort = new org.eclipse.swt.widgets.List(mainArea,
+				SWT.BORDER | SWT.V_SCROLL);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		availablePropertiesSort.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		selectedPropertiesSort = new org.eclipse.swt.widgets.List(mainArea,
+				SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+		gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		selectedPropertiesSort.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(mainArea, SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = availablePropertiesSort.getSelectionIndex();
+				if (maxprops == 1) {
+					selectedProperties.add(availableProperties.get(index));
+					availableProperties.remove(index);
+
+					availableProperties.add(selectedProperties.get(0));
+					selectedProperties.remove(0);
+				} else {
+					if (maxprops > 0) {
+						if (selectedProperties.size() >= maxprops)
+							return;
+					}
+
+					selectedProperties.add(availableProperties.get(index));
+					availableProperties.remove(index);
+				}
+				reload();
+				availablePropertiesSort.setSelection(index);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (maxprops == 1 || selectedProperties.size() > 1) {
+					int index = selectedPropertiesSort.getSelectionIndex();
+
+					availableProperties.add(selectedProperties.get(index));
+					selectedProperties.remove(index);
+
+					reload();
+					selectedPropertiesSort.setSelection(index);
+				}
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedPropertiesSort.getSelectionIndex();
+				if (index > 0) {
+					Property selectedP = selectedProperties.get(index);
+					Property upperP = selectedProperties.get(index - 1);
+
+					selectedProperties.set(index, upperP);
+					selectedProperties.set(index - 1, selectedP);
+
+					reload();
+					selectedPropertiesSort.setSelection(index - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedPropertiesSort.getSelectionIndex();
+				if (index < selectedProperties.size() - 1) {
+					Property selectedP = selectedProperties.get(index);
+					Property bellowP = selectedProperties.get(index + 1);
+
+					selectedProperties.set(index, bellowP);
+					selectedProperties.set(index + 1, selectedP);
+
+					reload();
+					selectedPropertiesSort.setSelection(index + 1);
+				}
+			}
+		});
+
+		availablePropertiesSort.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				int index = availablePropertiesSort.getSelectionIndex();
+
+				selectedProperties.add(availableProperties.get(index));
+				availableProperties.remove(index);
+
+				reload();
+				availablePropertiesSort.setSelection(index);
+			}
+		});
+
+		selectedPropertiesSort.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				if (selectedProperties.size() > 1) {
+					int index = selectedPropertiesSort.getSelectionIndex();
+
+					availableProperties.add(selectedProperties.get(index));
+					selectedProperties.remove(index);
+
+					reload();
+					selectedPropertiesSort.setSelection(index);
+				}
+			}
+		});
+
+		reload();
+		return mainArea;
+	}
+
+	/**
+	 * Reload.
+	 */
+	public void reload() {
+		availablePropertiesSort.removeAll();
+		for (Property property : availableProperties) {
+			//if (!property.getName().equals("id")) //$NON-NLS-1$
+			if (property instanceof StructuralUnitProperty)
+				availablePropertiesSort.add(((StructuralUnitProperty)property).getFullName());
+			else
+				availablePropertiesSort.add(property.getName());
+		}
+		selectedPropertiesSort.removeAll();
+		for (Property property : selectedProperties) {
+			//if (!property.getName().equals("id")) //$NON-NLS-1$
+			if (property instanceof StructuralUnitProperty)
+				selectedPropertiesSort.add(((StructuralUnitProperty)property).getFullName());
+			else
+				selectedPropertiesSort.add(property.getName());
+		}
+
+		availablePropertiesSort.getParent().layout();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (selectedProperties.size() != 0)
+			super.okPressed();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelectionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeIndexFromLines.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeIndexFromLines.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeIndexFromLines.java	(revision 122)
@@ -0,0 +1,84 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.link.ConcordanceToIndex;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the line selection to compute an index.
+ */
+public class ComputeIndexFromLines extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.computecoocfromconclines"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new compute index from lines.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public ComputeIndexFromLines(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.ComputeIndexFromLines_0);
+		setToolTipText(Messages.ComputeIndexFromLines_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		TableViewer table = concordanceEditor.getLineTableViewer();
+		ConcordanceToIndex.link(concordanceEditor,
+				(IStructuredSelection) table.getSelection());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeIndexFromLines.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ResetColumnWidths.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ResetColumnWidths.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ResetColumnWidths.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.IWorkbenchWindow;
+
+public class ResetColumnWidths extends Action {
+	
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.ResetColumnWidths"; //$NON-NLS-1$
+	
+	
+	private ConcordancesEditor concordanceEditor;
+
+	public ResetColumnWidths(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText("Reset column widths");
+	}
+	
+	@Override
+	public void run() {
+		concordanceEditor.resetColumnWidths();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ResetColumnWidths.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelection.java	(revision 122)
@@ -0,0 +1,137 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * Action to define the view properties of each column @ author mdecorde.
+ */
+public class ViewPropertySelection extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.ViewPropertySelection"; //$NON-NLS-1$
+
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/** The available view properties. */
+	List<Property> availableViewProperties;
+
+	/** The selected view properties. */
+	List<Property> selectedViewProperties;
+
+	/**
+	 * Instantiates a new view property selection.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 * @param tableViewer the table viewer
+	 */
+	public ViewPropertySelection(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor, TableViewer tableViewer) {
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.ViewPropertySelection_0);
+		setToolTipText(Messages.ViewPropertySelection_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		int columnid = concordanceEditor.getPointedColumn(); 
+		IWorkbenchPartSite site = concordanceEditor.getSite();
+
+		List<Property> selectedViewProperties = new ArrayList<Property>();
+		switch (columnid) // the selected properties depends on the columns
+		{
+		case 1:
+			availableViewProperties = concordanceEditor
+			.getAvailableLeftViewProperties();
+			selectedViewProperties = concordanceEditor
+					.getSelectedLeftViewProperties();
+			break;
+		case 2:
+			availableViewProperties = concordanceEditor
+			.getAvailableKeywordViewProperties();
+			selectedViewProperties = concordanceEditor
+					.getSelectedKeywordViewProperties();
+			break;
+		case 3:
+			availableViewProperties = concordanceEditor
+			.getAvailableRightViewProperties();
+			selectedViewProperties = concordanceEditor
+					.getSelectedRightViewProperties();
+			break;
+		default:
+			availableViewProperties = concordanceEditor
+			.getAvailableKeywordViewProperties();
+			selectedViewProperties = concordanceEditor
+					.getSelectedKeywordViewProperties();
+			break;
+		}
+
+		if (new ViewPropertySelectionDialog(site, availableViewProperties,
+				selectedViewProperties).open() == SWT.CANCEL)
+			return;
+
+		switch (columnid) {
+		case 1:
+			concordanceEditor.setLeftViewProperties(selectedViewProperties);
+			break;
+		case 2:
+			concordanceEditor.setKeywordViewProperties(selectedViewProperties);
+			break;
+		case 3:
+			concordanceEditor.setRightViewProperties(selectedViewProperties);
+			break;
+		default:
+			concordanceEditor.setKeywordViewProperties(selectedViewProperties);
+			break;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewAnnotationSelectionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewAnnotationSelectionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewAnnotationSelectionDialog.java	(revision 122)
@@ -0,0 +1,109 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+// TODO: Auto-generated Javadoc
+/**
+ * the dialog box called to select the view properties @ author mdecorde.
+ */
+public class ViewAnnotationSelectionDialog extends Dialog {
+
+	
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public ViewAnnotationSelectionDialog(IShellProvider parentShell) {
+		super(parentShell);
+
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public ViewAnnotationSelectionDialog(Shell shell) {
+		super(shell);
+
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		//newShell.setText(Messages.ViewPropertySelectionDialog_0);
+		newShell.setText("A VOIR");
+		newShell.setMinimumSize(200, 100);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		// parent.setLayout(new FormLayout());
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		mainArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		return mainArea;
+	}
+
+
+	
+	
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewAnnotationSelectionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetContextSize.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetContextSize.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetContextSize.java	(revision 122)
@@ -0,0 +1,174 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+// TODO: Auto-generated Javadoc
+/**
+ * Action to set the contexts size @ author mdecorde.
+ */
+public class SetContextSize extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.setcontextsize"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new sets the context size.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public SetContextSize(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.SetContextSize_1);
+		setToolTipText(Messages.SetContextSize_2);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		SetContextSizeDialog d = new SetContextSizeDialog(window.getShell());
+		if (d.open() == Window.OK) {
+			concordanceEditor.setContextSize(d.getLeftContextSize(), d
+					.getRightContextSize());
+			// concordanceEditor.getConcordance().setLeftContextSize(d.getLeftContextSize());
+			// concordanceEditor.getConcordance().setRightContextSize(d.getRightContextSize());
+			// concordanceEditor.sort();
+			// concordanceEditor.fillDisplayArea(concordanceEditor.getTopLine(),
+			// concordanceEditor.getBottomLine());
+		}
+	}
+
+	/**
+	 * The Class SetContextSizeDialog.
+	 */
+	private class SetContextSizeDialog extends Dialog {
+
+		/** The right context size. */
+		private int rightContextSize;
+		
+		/** The left context size. */
+		private int leftContextSize;
+		
+		/** The left spinner. */
+		private Spinner leftSpinner;
+		
+		/** The right spinner. */
+		private Spinner rightSpinner;
+
+		/**
+		 * Instantiates a new sets the context size dialog.
+		 *
+		 * @param parentShell the parent shell
+		 */
+		protected SetContextSizeDialog(Shell parentShell) {
+			super(parentShell);
+			//parentShell.setText(Messages.SetContextSize_1);
+		}
+
+		/**
+		 * Gets the right context size.
+		 *
+		 * @return the right context size
+		 */
+		public int getRightContextSize() {
+			return rightContextSize;
+		}
+
+		/**
+		 * Gets the left context size.
+		 *
+		 * @return the left context size
+		 */
+		public int getLeftContextSize() {
+			return leftContextSize;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayout(new GridLayout(2, false));
+			new Label(mainArea, SWT.None).setText(Messages.SetContextSize_3);
+			leftSpinner = new Spinner(mainArea, SWT.NONE);
+			leftSpinner.setMinimum(0);
+			leftSpinner.setMaximum(100);
+			leftSpinner.setSelection(concordanceEditor.getLeftContextSize());
+			new Label(mainArea, SWT.None).setText(Messages.SetContextSize_4);
+			rightSpinner = new Spinner(mainArea, SWT.NONE);
+			rightSpinner.setMinimum(0);
+			rightSpinner.setMaximum(100);
+			rightSpinner.setSelection(concordanceEditor.getRightContextSize());
+			return mainArea;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			leftContextSize = leftSpinner.getSelection();
+			rightContextSize = rightSpinner.getSelection();
+			super.okPressed();
+		}
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetContextSize.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeCoocFromLines.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeCoocFromLines.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeCoocFromLines.java	(revision 122)
@@ -0,0 +1,107 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.function.ComputeCooccurrences;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.input.CooccurrenceEditorInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ComputeCoocFromLines.
+ *
+ * @deprecated use the line selection to compute a cooc
+ */
+@Deprecated
+public class ComputeCoocFromLines extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.computecoocfromconclines"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new compute cooc from lines.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public ComputeCoocFromLines(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.ComputeCoocFromLines_0);
+		setToolTipText(Messages.ComputeCoocFromLines_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		TableViewer table = concordanceEditor.getLineTableViewer();
+		Cooccurrence cooc = ComputeCooccurrences
+				.computeCooc((IStructuredSelection) table.getSelection());
+		if (cooc != null) {
+			IWorkbenchPage page = window.getActivePage();
+			try {
+				StatusLine.setMessage(Messages.ComputeCoocFromLines_1);
+				CooccurrenceEditorInput editorInput = new CooccurrenceEditorInput(
+						cooc);
+				CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+						.openEditor(editorInput, CooccurrencesEditor.ID); 
+			} catch (PartInitException e) {
+				System.err
+						.println(NLS.bind(Messages.GetConcordances_4, e));
+			}
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ComputeCoocFromLines.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/LineLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/LineLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/LineLabelProvider.java	(revision 122)
@@ -0,0 +1,137 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.annotation.Annotation;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * provides the labels of the columns of the concordance table 
+ * 
+ * @author mdecorde.
+ */
+public class LineLabelProvider implements ITableLabelProvider {
+
+	private ConcordancesEditor editor;
+
+	public LineLabelProvider(ConcordancesEditor editor) {
+		this.editor = editor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		Line line = (Line) element;
+
+		switch (columnIndex) {
+		case 0:
+		case 6:
+			return ""; //this is the fake column used to work around the fact that MS windows refuses to right align the 1st column  //$NON-NLS-1$
+		case 1:
+			return line.getViewRef().toString();
+		case 2:
+			return line.leftContextToString();
+		case 3:
+			return line.keywordToString();
+		case 4:
+			if (line.getAnnotation()!=null) {
+				String value = line.getAnnotationValue().getStandardName();
+				Annotation a = line.getAnnotation();
+				if (value == null) value = a.getValue();
+								
+				if (a.getStart() < line.matchGetStart() - line.getLeftContextSize()) {
+					value = "… "+value;
+				}
+				
+				if (a.getEnd() > line.matchGetEnd() + line.getRightContextSize()) {
+					value = value+" …";
+				} 
+				return value;
+			} else {
+				return "";
+			}
+		case 5:
+			return line.rightContextToString();
+		default:
+			throw new RuntimeException(Messages.LineLabelProvider_1);
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+	 */
+	@Override
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/LineLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineViewReferencePattern.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineViewReferencePattern.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineViewReferencePattern.java	(revision 122)
@@ -0,0 +1,383 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.functions.ReferencePattern;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+// TODO: Auto-generated Javadoc
+/**
+ * Action to build the reference pattern.
+ *
+ * @ author mdecorde
+ */
+public class DefineViewReferencePattern extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.definereferencepattern"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+	
+	/** The para browser editor. */
+	private ParaBrowserEditor paraBrowserEditor;
+
+	/**
+	 * Instantiates a new define reference pattern.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public DefineViewReferencePattern(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.DefineReferencePattern_1);
+		setToolTipText(Messages.DefineReferencePattern_2);
+	}
+
+	/**
+	 * Instantiates a new define reference pattern.
+	 *
+	 * @param window the window
+	 * @param paraBrowserEditor the para browser editor
+	 */
+	public DefineViewReferencePattern(IWorkbenchWindow window,
+			ParaBrowserEditor paraBrowserEditor) {
+		this.window = window;
+		this.paraBrowserEditor = paraBrowserEditor;
+		setId(ID);
+		setText(Messages.DefineReferencePattern_1);
+		setToolTipText(Messages.DefineReferencePattern_2);
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		List<StructuralUnit> structuralUnits = null;
+		List<Property> availableReferenceItems = new ArrayList<Property>();
+		try {
+			if (paraBrowserEditor != null) {
+				structuralUnits = paraBrowserEditor.getCorpus()
+						.getOrderedStructuralUnits();
+				availableReferenceItems.addAll(paraBrowserEditor.getCorpus()
+						.getOrderedProperties());
+
+			} else if (concordanceEditor != null) {
+				structuralUnits = concordanceEditor.getCorpus()
+						.getOrderedStructuralUnits();
+				availableReferenceItems.addAll(concordanceEditor.getCorpus()
+						.getOrderedProperties());
+
+			}
+
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		for (StructuralUnit unit : structuralUnits) {
+			availableReferenceItems.addAll(unit.getProperties());
+		}
+
+		// System.out.println("selected "+concordanceEditor.getSelectedReferences());
+		// System.out.println("before avail"+availableReferenceItems);
+		if (paraBrowserEditor != null) {
+			availableReferenceItems.remove(paraBrowserEditor
+					.getSelectedReferences());
+		} else {
+			availableReferenceItems.remove(concordanceEditor
+					.getSelectedViewReferences());
+		}
+
+		// System.out.println("after avail"+availableReferenceItems);
+		DefineReferencePatternDialog d = null;
+		if (paraBrowserEditor != null) {
+			d = new DefineReferencePatternDialog(window.getShell(),
+					availableReferenceItems, paraBrowserEditor
+							.getSelectedReferences());
+		} else if (concordanceEditor != null) {
+			d = new DefineReferencePatternDialog(window.getShell(),
+					availableReferenceItems, concordanceEditor
+							.getSelectedViewReferences());
+		}
+
+		if (d.open() == Window.OK) {
+			if (paraBrowserEditor != null) {
+				paraBrowserEditor.setReferencePattern(new ReferencePattern(d
+						.getSelectesdReferenceItems()));
+			} else if (concordanceEditor != null) {
+				concordanceEditor.setRefViewPattern(new ReferencePattern(d
+						.getSelectesdReferenceItems()));
+			}
+			//System.out.println(concordanceEditor.getViewReferencePattern());
+		}
+	}
+
+	/**
+	 * The Class DefineReferencePatternDialog.
+	 */
+	private class DefineReferencePatternDialog extends Dialog {
+
+		/** The available reference items. */
+		private List<Property> availableReferenceItems;
+		
+		/** The selected reference items. */
+		private List<Property> selectedReferenceItems;
+
+		/**
+		 * Instantiates a new define reference pattern dialog.
+		 *
+		 * @param parentShell the parent shell
+		 * @param availableReferenceItems the available reference items
+		 * @param selectedReferences the selected references
+		 */
+		protected DefineReferencePatternDialog(Shell parentShell,
+				List<Property> availableReferenceItems,
+				List<Property> selectedReferences) {
+			super(parentShell);
+			
+			this.availableReferenceItems = availableReferenceItems;
+			this.selectedReferenceItems = selectedReferences;
+			this.availableReferenceItems.removeAll(selectedReferences);
+			this.setShellStyle(this.getShellStyle() | SWT.RESIZE);	
+		}
+
+		/**
+		 * Gets the selectesd reference items.
+		 *
+		 * @return the selectesd reference items
+		 */
+		public List<Property> getSelectesdReferenceItems() {
+			return selectedReferenceItems;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+		 */
+		@Override
+		protected void configureShell(Shell shell) {
+		      super.configureShell(shell);
+		      shell.setText(Messages.DefineReferencePattern_0);
+		      
+		      shell.setSize(400, 500);
+		      shell.setLocation(shell.getParent().getLocation());
+		   }
+		
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, true));
+			mainArea.setLayout(new GridLayout(4, false));
+
+			final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.V_SCROLL);
+			for (Property property : availableReferenceItems) {
+				if (property instanceof StructuralUnitProperty) {
+					StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+					availbleItems.add(sProperty.getStructuralUnit().getName()
+							+ ": " + property.getName()); //$NON-NLS-1$
+				} else {
+					availbleItems.add(property.getName());
+				}
+			}
+						
+			GridData gridData = new GridData(GridData.FILL, GridData.FILL,
+					true, true);
+			//Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+			//gridData.widthHint = size.x;
+			availbleItems.setLayoutData(gridData);
+
+			Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+			selectionButtons.setLayout(new GridLayout(1, false));
+			Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+			Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+			final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+					mainArea, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+			selectedItems.setLayoutData(gridData);
+			for (Property property : selectedReferenceItems) {
+				if (property instanceof StructuralUnitProperty) {
+					StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+					selectedItems.add(sProperty.getStructuralUnit().getName()
+							+ ": " + property.getName()); //$NON-NLS-1$
+				} else {
+					selectedItems.add(property.getName());
+				}
+			}
+			
+			//DBL CLICK Listeners
+			selectedItems.addMouseListener(new MouseListener() {
+				@Override
+				public void mouseUp(MouseEvent e) { }
+				
+				@Override
+				public void mouseDown(MouseEvent e) { }
+				
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					availbleItems.add(selectedItems.getItem(ind));
+					selectedItems.remove(ind);
+					availableReferenceItems
+							.add(selectedReferenceItems.get(ind));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind);	
+				}
+			});
+			availbleItems.addMouseListener(new MouseListener() {
+				@Override
+				public void mouseUp(MouseEvent e) { }
+				
+				@Override
+				public void mouseDown(MouseEvent e) { }
+				
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					int ind = availbleItems.getSelectionIndex();
+					selectedItems.add(availbleItems.getItem(ind));
+					availbleItems.remove(ind);
+					selectedReferenceItems
+							.add(availableReferenceItems.get(ind));
+					availableReferenceItems.remove(ind);
+					availbleItems.setSelection(ind);
+				}
+			});
+
+			Composite orderButtons = new Composite(mainArea, SWT.NONE);
+			orderButtons.setLayout(new GridLayout(1, false));
+			Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+			Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+			select.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = availbleItems.getSelectionIndex();
+					selectedItems.add(availbleItems.getItem(ind));
+					availbleItems.remove(ind);
+					selectedReferenceItems
+							.add(availableReferenceItems.get(ind));
+					availableReferenceItems.remove(ind);
+					availbleItems.setSelection(ind);
+				}
+			});
+
+			unselect.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					availbleItems.add(selectedItems.getItem(ind));
+					selectedItems.remove(ind);
+					availableReferenceItems
+							.add(selectedReferenceItems.get(ind));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind);					
+				}
+			});
+
+			up.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					if (ind > 0) {
+						String value = selectedItems.getItem(ind);
+						selectedItems.remove(ind);
+						selectedItems.add(value, ind -1);
+						
+						Property prop = selectedReferenceItems.get(ind);
+						selectedReferenceItems.remove(ind);
+						selectedReferenceItems.add(ind-1,prop);
+						
+						selectedItems.setSelection(ind -1);
+					}
+				}
+			});
+
+			down.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int ind = selectedItems.getSelectionIndex();
+					if (ind < selectedItems.getItemCount() - 1) {
+						String value = selectedItems.getItem(ind);
+						selectedItems.remove(ind);
+						selectedItems.add(value, ind + 1);
+						
+						Property prop = selectedReferenceItems.get(ind);
+						selectedReferenceItems.remove(ind);
+						selectedReferenceItems.add(ind+1, prop);
+						
+						selectedItems.setSelection(ind + 1);
+					}
+				}
+			});
+
+			return mainArea;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/DefineViewReferencePattern.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelection.java	(revision 122)
@@ -0,0 +1,129 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * Action to define the view properties of each column @ author mdecorde.
+ */
+public class SortPropertySelection extends Action implements IWorkbenchAction {
+	
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.SortPropertySelection"; //$NON-NLS-1$
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/** The available view properties. */
+	List<Property> availableSortProperties;
+	
+	/** The selected view properties. */
+	List<Property> selectedSortProperties;
+
+	/**
+	 * Instantiates a new view property selection.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 * @param tableViewer the table viewer
+	 */
+	public SortPropertySelection(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor, TableViewer tableViewer) {
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.SortPropertySelection_0);
+		setToolTipText(Messages.SortPropertySelection_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		int columnid = concordanceEditor.getPointedColumn(); // get the column id
+		IWorkbenchPartSite site = concordanceEditor.getSite();
+
+		List<Property> selectedSortProperties = new ArrayList<Property>();
+		switch (columnid) // the selected properties depends on the columns
+		{
+		case 1:
+			availableSortProperties = concordanceEditor.getAvailableLeftSortProperties();
+			selectedSortProperties = concordanceEditor.getSelectedLeftSortProperties();
+			break;
+		case 2:
+			availableSortProperties = concordanceEditor.getAvailableKeywordSortProperties();
+			selectedSortProperties = concordanceEditor.getSelectedKeywordSortProperties();
+			break;
+		case 3:
+			availableSortProperties = concordanceEditor.getAvailableRightSortProperties();
+			selectedSortProperties = concordanceEditor.getSelectedRightSortProperties();
+			break;
+		}
+
+//		System.out.println("Column: "+columnid);
+//		System.out.println("available: "+availableSortProperties);
+//		System.out.println("selected: "+selectedSortProperties);
+		
+		int ret = new SortPropertySelectionDialog(site, availableSortProperties,
+				selectedSortProperties).open();
+		if (ret == SWT.CANCEL)
+			return;
+
+		switch (columnid) {
+		case 1:
+			concordanceEditor.setLeftSortProperties(selectedSortProperties);
+			break;
+		case 2:
+			concordanceEditor.setKeywordSortProperties(selectedSortProperties);
+			break;
+		case 3:
+			concordanceEditor.setRightSortProperties(selectedSortProperties);
+			break;
+		}
+
+		// concordanceEditor.updateSortPropertiesLabel();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SortPropertySelection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditorContributor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditorContributor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditorContributor.java	(revision 122)
@@ -0,0 +1,64 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.ui.part.EditorActionBarContributor;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ConcordancesEditorContributor.
+ */
+public class ConcordancesEditorContributor extends EditorActionBarContributor {
+
+	/**
+	 * Instantiates a new concordances editor contributor.
+	 */
+	public ConcordancesEditorContributor() {
+		// TODO Auto-generated constructor stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(org.eclipse.jface.action.IMenuManager)
+	 */
+	@Override
+	public void contributeToMenu(IMenuManager menuManager) {
+		super.contributeToMenu(menuManager);
+		// IMenuManager fileMenu = (IMenuManager)
+		// menubar.find(IWorkbenchActionConstants.M_FILE);
+		MenuManager viewMenu = new MenuManager(
+				Messages.ConcordancesEditorContributor_0);
+
+		viewMenu.add(new Separator());
+
+		menuManager.add(viewMenu);
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditorContributor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ErrorAnnotationDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ErrorAnnotationDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ErrorAnnotationDialog.java	(revision 122)
@@ -0,0 +1,54 @@
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPartSite;
+
+public class ErrorAnnotationDialog extends Dialog {
+
+	
+  public ErrorAnnotationDialog(IWorkbenchPartSite iWorkbenchPartSite, List<int[]> matchesNotAnnotated) {
+    super(iWorkbenchPartSite);
+  }
+
+  @Override
+  protected Control createDialogArea(Composite parent) {
+    Composite container = (Composite) super.createDialogArea(parent);
+    Button button = new Button(container, SWT.PUSH);
+    button.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false,
+        false));
+    button.setText("Press me");
+    button.addSelectionListener(new SelectionAdapter() {
+      @Override
+      public void widgetSelected(SelectionEvent e) {
+        System.out.println("Pressed");
+      }
+    });
+
+    return container;
+  }
+
+  // overriding this methods allows you to set the
+  // title of the custom dialog
+  @Override
+  protected void configureShell(Shell newShell) {
+    super.configureShell(newShell);
+    newShell.setText("Selection dialog");
+  }
+
+  @Override
+  protected Point getInitialSize() {
+    return new Point(450, 300);
+  }
+
+} 

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ErrorAnnotationDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelectionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelectionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelectionDialog.java	(revision 122)
@@ -0,0 +1,329 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+
+// TODO: Auto-generated Javadoc
+/**
+ * the dialog box called to select the view properties @ author mdecorde.
+ */
+public class ViewPropertySelectionDialog extends Dialog {
+
+	/** The available properties. */
+	final private List<Property> availableProperties;
+
+	/** The selected properties. */
+	final private List<Property> selectedProperties;
+
+	/** The maxprops. */
+	int maxprops = -1;
+
+	/** The available properties view. */
+	org.eclipse.swt.widgets.List availablePropertiesView;
+
+	/** The selected properties view. */
+	org.eclipse.swt.widgets.List selectedPropertiesView;
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public ViewPropertySelectionDialog(IShellProvider parentShell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties) {
+		super(parentShell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 */
+	public ViewPropertySelectionDialog(Shell shell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties) {
+		super(shell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+	}
+
+	/**
+	 * Instantiates a new view property selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param availableProperties the available properties
+	 * @param selectedProperties the selected properties
+	 * @param maxprops the maxprops
+	 */
+	public ViewPropertySelectionDialog(Shell shell,
+			List<Property> availableProperties,
+			List<Property> selectedProperties, int maxprops) {
+		super(shell);
+
+		this.availableProperties = availableProperties;
+		this.selectedProperties = selectedProperties;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		this.maxprops = maxprops;
+	}
+
+	/**
+	 * Gets the selected properties.
+	 *
+	 * @return the selected properties
+	 */
+	public List<Property> getSelectedProperties() {
+		return selectedProperties;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.ViewPropertySelectionDialog_0);
+		newShell.setMinimumSize(300, 200);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		// parent.setLayout(new FormLayout());
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		mainArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		// 4 columns
+		GridLayout layout = new GridLayout(4, false);
+		mainArea.setLayout(layout);
+
+		availablePropertiesView = new org.eclipse.swt.widgets.List(mainArea,
+				SWT.BORDER | SWT.V_SCROLL);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		availablePropertiesView.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		selectedPropertiesView = new org.eclipse.swt.widgets.List(mainArea,
+				SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+		gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		selectedPropertiesView.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(mainArea, SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = availablePropertiesView.getSelectionIndex();
+				if (maxprops == 1) {
+					selectedProperties.add(availableProperties.get(index));
+					availableProperties.remove(index);
+
+					availableProperties.add(selectedProperties.get(0));
+					selectedProperties.remove(0);
+				} else {
+					if (maxprops > 0) {
+						if (selectedProperties.size() >= maxprops)
+							return;
+					}
+					if (index >= 0) {
+						selectedProperties.add(availableProperties.get(index));
+						availableProperties.remove(index);
+					}
+				}
+				reload();
+				availablePropertiesView.setSelection(index);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				deselectProperties();
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedPropertiesView.getSelectionIndex();
+				if (index > 0) {
+					Property selectedP = selectedProperties.get(index);
+					Property upperP = selectedProperties.get(index - 1);
+
+					selectedProperties.set(index, upperP);
+					selectedProperties.set(index - 1, selectedP);
+
+					reload();
+					selectedPropertiesView.setSelection(index - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedPropertiesView.getSelectionIndex();
+				if (index < selectedProperties.size() - 1 && index >= 0) {
+					Property selectedP = selectedProperties.get(index);
+					Property bellowP = selectedProperties.get(index + 1);
+
+					selectedProperties.set(index, bellowP);
+					selectedProperties.set(index + 1, selectedP);
+
+					reload();
+					selectedPropertiesView.setSelection(index + 1);
+				}
+			}
+		});
+
+		availablePropertiesView.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+
+				if ( maxprops == 1) {
+					int index = availablePropertiesView.getSelectionIndex();
+					//System.out.println("dl click, maxprops="+maxprops+" idx="+index);
+					selectedProperties.add(availableProperties.get(index));
+					availableProperties.remove(index);
+
+					availableProperties.add(selectedProperties.get(0));
+					selectedProperties.remove(0);
+
+					reload();
+
+				} else {
+					int index = availablePropertiesView.getSelectionIndex();
+					if (index >= 0) {
+						selectedProperties.add(availableProperties.get(index));
+						availableProperties.remove(index);
+
+						reload();
+						availablePropertiesView.setSelection(index);
+					}
+				}
+			}
+		});
+
+		selectedPropertiesView.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				deselectProperties();
+			}
+		});
+
+		reload();
+		return mainArea;
+	}
+
+	private void deselectProperties() {
+		if (selectedProperties.size() > 1) {
+			int index = selectedPropertiesView.getSelectionIndex();
+
+			availableProperties.add(selectedProperties.get(index));
+			selectedProperties.remove(index);
+
+			reload();
+			selectedPropertiesView.setSelection(index);
+		}
+	}
+	
+	/**
+	 * Reload.
+	 */
+	public void reload() {
+		if (availableProperties == null) {
+			System.out.println("Error: the available properties list is NULL.");
+			return;
+		}
+		availablePropertiesView.removeAll();
+		for (Property property : availableProperties) {
+			//if (!property.getName().equals("id")) //$NON-NLS-1$
+			if (property instanceof StructuralUnitProperty)
+				availablePropertiesView.add(((StructuralUnitProperty)property).getFullName());
+			else
+				availablePropertiesView.add(property.getName());
+		}
+		selectedPropertiesView.removeAll();
+		for (Property property : selectedProperties) {
+			//if (!property.getName().equals("id")) //$NON-NLS-1$
+			if (property instanceof StructuralUnitProperty)
+				selectedPropertiesView.add(((StructuralUnitProperty)property).getFullName());
+			else
+				selectedPropertiesView.add(property.getName());
+		}
+
+		availablePropertiesView.getParent().layout();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (selectedProperties.size() != 0)
+			super.okPressed();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ViewPropertySelectionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/CompositeSorterCreationDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/CompositeSorterCreationDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/CompositeSorterCreationDialog.java	(revision 122)
@@ -0,0 +1,225 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.functions.concordances.comparators.LineComparator;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * dialog box used to define the complex sort @ author mdecorde.
+ */
+public class CompositeSorterCreationDialog extends Dialog {
+
+	/** The available comparators. */
+	final private List<LineComparator> availableComparators;
+	
+	/** The selected comparators. */
+	final private List<LineComparator> selectedComparators;
+	
+	/** The name text. */
+	private Text nameText;
+	
+	/** The name. */
+	private String name;
+
+	/**
+	 * Instantiates a new composite sorter creation dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param availableComparators the available comparators
+	 */
+	protected CompositeSorterCreationDialog(IShellProvider parentShell,
+			List<LineComparator> availableComparators) {
+		super(parentShell);
+		this.availableComparators = new ArrayList<LineComparator>(
+				availableComparators);
+		this.selectedComparators = new ArrayList<LineComparator>();
+	}
+
+	/**
+	 * Gets the name.
+	 *
+	 * @return the name
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Gets the comparators.
+	 *
+	 * @return the comparators
+	 */
+	public List<LineComparator> getComparators() {
+		return selectedComparators;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.ComplexSort_5);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(4, false);
+		mainArea.setLayout(layout);
+
+		Label nameLabel = new Label(mainArea, SWT.NONE);
+		nameLabel.setText(Messages.ComplexSort_6);
+
+		nameText = new Text(mainArea, SWT.NONE);
+		GridData gridData = new GridData(SWT.FILL, SWT.TOP, true, false);
+		gridData.horizontalSpan = 3;
+		nameText.setLayoutData(gridData);
+
+		final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+				mainArea, SWT.BORDER | SWT.V_SCROLL);
+		for (LineComparator comparator : availableComparators) {
+			availbleItems.add(comparator.getName());
+		}
+		gridData = new GridData(GridData.FILL, GridData.FILL, true, false);
+		Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		gridData.widthHint = size.x;
+		availbleItems.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+				mainArea, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+		selectedItems.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(mainArea, SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = availbleItems.getSelectionIndex();
+				selectedItems.add(availbleItems.getItem(ind));
+				availbleItems.remove(ind);
+				selectedComparators.add(availableComparators.get(ind));
+				availableComparators.remove(ind);
+				availbleItems.setSelection(ind);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				availbleItems.add(selectedItems.getItem(ind));
+				selectedItems.remove(ind);
+				availableComparators.add(selectedComparators.get(ind));
+				selectedComparators.remove(ind);
+				selectedItems.setSelection(ind);
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind > 0) {
+					selectedItems.add(selectedItems.getItem(ind), ind - 1);
+					selectedItems.remove(ind + 1);
+					selectedComparators.add(selectedComparators.get(ind - 1));
+					selectedComparators.remove(ind + 1);
+					selectedItems.setSelection(ind - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind < selectedItems.getItemCount() - 1) {
+					selectedItems.add(selectedItems.getItem(ind), ind + 2);
+					selectedItems.remove(ind);
+					selectedComparators.add(selectedComparators.get(ind + 2));
+					selectedComparators.remove(ind);
+					selectedItems.setSelection(ind + 2);
+				}
+			}
+		});
+		return mainArea;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (nameText.getText().equals("")) { //$NON-NLS-1$
+			MessageDialog.openError(getShell(),
+					Messages.CreateSubcorpusDialog_11,
+					Messages.ComplexSort_9);
+			return;
+		}
+		name = nameText.getText();
+		if (selectedComparators.size() < 2) {
+			MessageDialog.openError(getShell(),
+					Messages.ComplexSort_10,
+					Messages.ComplexSort_11);
+			return;
+		}
+		super.okPressed();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/CompositeSorterCreationDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetSortProperty.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetSortProperty.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetSortProperty.java	(revision 122)
@@ -0,0 +1,210 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.searchengine.cqp.corpus.Property;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Action to define the sort property to use @ author mdecorde.
+ */
+public class SetSortProperty extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.setsortproperty"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new sets the sort property.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public SetSortProperty(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.SetSortProperty_1);
+		setToolTipText(Messages.SetSortProperty_2);
+	}
+
+	/**
+	 * Instantiates a new sets the sort property.
+	 */
+	public SetSortProperty() {
+		// TODO Auto-generated constructor stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		List<Property> selectedProperty;
+		int columnid = concordanceEditor.getPointedColumn();
+		switch (columnid) // the selected properties depends on the columns
+		{
+		case 1:
+			selectedProperty = concordanceEditor
+					.getSelectedLeftSortProperties();
+			break;
+		case 2:
+			selectedProperty = concordanceEditor
+					.getSelectedKeywordSortProperties();
+			break;
+		default:
+			selectedProperty = concordanceEditor
+					.getSelectedRightSortProperties();
+			break;
+		}
+
+		SetSortPropertyDialog d = new SetSortPropertyDialog(window.getShell(),
+				concordanceEditor.getAvailableSortProperties(),
+				selectedProperty);
+
+		if (d.open() == Window.OK) {
+
+			switch (columnid) // the selected properties depends on the columns
+			{
+			case 1:
+				concordanceEditor.setLeftSortProperties(d.getSelectedProperty());
+				break;
+			case 2:
+				concordanceEditor.setKeywordSortProperties(d.getSelectedProperty());
+				break;
+			case 3:
+				concordanceEditor.setRightSortProperties(d.getSelectedProperty());
+				break;
+			}
+		}
+	}
+
+	/**
+	 * The Class SetSortPropertyDialog.
+	 */
+	private class SetSortPropertyDialog extends Dialog {
+
+		/** The properties. */
+		private final List<Property> properties;
+		
+		/** The buttons. */
+		private List<Button> buttons;
+		
+		/** The selected property. */
+		private List<Property> selectedProperty;
+
+		/**
+		 * Instantiates a new sets the sort property dialog.
+		 *
+		 * @param shell the shell
+		 * @param properties the properties
+		 * @param selectedProperty2 the selected property
+		 */
+		public SetSortPropertyDialog(Shell shell, List<Property> properties,
+				List<Property> selectedProperty2) {
+			super(shell);
+			this.properties = properties;
+			this.selectedProperty = selectedProperty2;
+			buttons = new ArrayList<Button>();
+
+			this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea.setLayout(new RowLayout(SWT.VERTICAL));
+			mainArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, true));
+			Group group = new Group(mainArea, SWT.SHADOW_IN);
+			group.setText(Messages.SetSortProperty_3);
+			group.setLayout(new RowLayout(SWT.VERTICAL));
+			for (Property property : properties) {
+				Button button = new Button(group, SWT.RADIO);
+				button.setText(property.getName());
+				buttons.add(button);
+			}
+			return mainArea;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			selectedProperty.clear();
+			for (int i = 0; i < buttons.size(); i++)
+				if (buttons.get(i).getSelection())
+					selectedProperty.add(properties.get(i));
+			super.okPressed();
+		}
+
+		/**
+		 * Gets the selected property.
+		 *
+		 * @return the selected property
+		 */
+		public List<Property> getSelectedProperty() {
+			return selectedProperty;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/SetSortProperty.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/BackToText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/BackToText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/BackToText.java	(revision 122)
@@ -0,0 +1,79 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * action called to set the complex sort of the concordance @ author mdecorde.
+ */
+public class BackToText extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.concordances.backtotext"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The concordance editor. */
+	private ConcordancesEditor concordanceEditor;
+
+	/**
+	 * Instantiates a new back to text.
+	 *
+	 * @param window the window
+	 * @param concordanceEditor the concordance editor
+	 */
+	public BackToText(IWorkbenchWindow window,
+			ConcordancesEditor concordanceEditor) {
+		this.window = window;
+		this.concordanceEditor = concordanceEditor;
+		setId(ID);
+		setText(Messages.BackToText_0);
+		setToolTipText(Messages.BackToText_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		concordanceEditor.backToText();
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/BackToText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditor.java	(revision 122)
@@ -0,0 +1,2960 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+import java.util.logging.Level;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.ControlListener;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.ScrollBar;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.dialogs.ListDialog;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.Toolbox;
+import org.txm.annotation.Annotation;
+import org.txm.annotation.AnnotationManager;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.annotation.repository.LocalKnowledgeRepository;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.functions.ReferencePattern;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.concordances.Line;
+import org.txm.functions.concordances.comparators.CompositeComparator;
+import org.txm.functions.concordances.comparators.LexicographicKeywordComparator;
+import org.txm.functions.concordances.comparators.LexicographicLeftContextComparator;
+import org.txm.functions.concordances.comparators.LexicographicRightContextComparator;
+import org.txm.functions.concordances.comparators.LineComparator;
+import org.txm.functions.concordances.comparators.NullComparator;
+import org.txm.functions.concordances.comparators.PropertiesReferenceComparator;
+import org.txm.functions.concordances.comparators.ReverseComparator;
+import org.txm.objects.Page;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.BackToTextCommand;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.commands.annotation.InitializeKnowledgeRepository;
+import org.txm.rcpapplication.commands.annotation.SaveAnnotations;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.editor.DeleteLines;
+import org.txm.rcpapplication.commands.krview.OpenKRView;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.rcpapplication.editors.input.InternalViewEditorInput;
+import org.txm.rcpapplication.editors.internal.InternalViewEditor;
+import org.txm.rcpapplication.preferences.AnnotationPreferencePage;
+import org.txm.rcpapplication.preferences.ConcordancerPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ConcordancerPreferencePage;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.rcpapplication.swt.dialog.ConfirmDialog;
+import org.txm.rcpapplication.swt.provider.SimpleLabelProvider;
+import org.txm.rcpapplication.swt.widget.AssistedQueryWidget;
+import org.txm.rcpapplication.swt.widget.ComplexSortSelector;
+import org.txm.rcpapplication.swt.widget.NavigationWidget;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.utils.SWTEditorsUtils;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.rcpapplication.views.knowledgerepositories.KRView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Match;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.AsciiUtils;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * display the concordances parameters and results in the same editor
+ * 
+ * @author mdecorde.
+ */
+public class ConcordancesEditor extends EditorPart implements CustomizableEditor {
+
+	/**
+	 * the limit number of annotation when a confirm dialog box is shown
+	 */
+	private static final int NALERTAFFECTANNOTATIONS = 100;
+
+	String locale = TxmPreferences.getString(LocalePreferencePage.UI_LOCALE, "en");
+	
+	/** The lineids. */
+	List<String> lineids;
+
+	/** The standard comparators. */
+	private List<LineComparator> standardComparators;
+
+	/** The user defined comparators. */
+	private List<LineComparator> userDefinedComparators;
+
+	/** The complexsorter. */
+	ComplexSortSelector complexsorter;
+	org.eclipse.swt.widgets.Text cqlSeparator;
+
+	/** The available view keyword properties. */
+	private List<Property> availableKeywordViewProperties;
+	/** The available view left properties. */
+	private List<Property> availableLeftViewProperties;
+	/** The available view right properties. */
+	private List<Property> availableRightViewProperties;
+
+	/** The selected left view properties. */
+	private List<Property> selectedLeftViewProperties;
+	/** The selected right view properties. */
+	private List<Property> selectedRightViewProperties;
+	/** The selected keyword view properties. */
+	private List<Property> selectedKeywordViewProperties;
+
+	/** The available sort properties. */
+	private List<Property> availableKeywordSortProperties;
+
+	/** The selected keyword sort property. */
+	private List<Property> selectedKeywordSortProperties;
+	/** The selected left sort property. */
+	private List<Property> selectedLeftSortProperties;
+	/** The selected right sort property. */
+	private List<Property> selectedRightSortProperties;
+
+	/** The reference pattern. */
+	private ReferencePattern refViewPattern;
+	private ReferencePattern refSortPattern;
+
+	/** The concordance. */
+	private Concordance concordance;
+
+	/** The annotation service */
+	private AnnotationManager  annotManager;
+	
+	//boolean annotation_expert_mode = TxmPreferences.getBoolean(AnnotationPreferencePage.MODE, false);
+
+	/** The standard comparator class name. */
+	private LineComparator[] standardComparatorClassName = {
+			new NullComparator(), new LexicographicKeywordComparator(),
+			new LexicographicLeftContextComparator(),
+			new LexicographicRightContextComparator(),
+			new PropertiesReferenceComparator() };
+
+	/** The corpus. */
+	private Corpus corpus;
+
+	/** The n line per page. */
+	private int nLinePerPage;
+
+	/** The top line. */
+	private int topLine;
+
+	/** The bottom line. */
+	private int bottomLine;
+
+	/** The current comparator. */
+	protected LineComparator currentComparator;
+
+	/** The left context size. */
+	private int leftContextSize;
+
+	/** The right context size. */
+	private int rightContextSize;
+
+	/** The mouseposition. */
+	private Point mouseposition;
+
+	/** The query widget. */
+	private AssistedQueryWidget queryWidget;
+
+	/** The line table viewer. */
+	private TableViewer viewer;
+
+	/** The reference column. */
+	private TableColumn referenceColumn;
+
+	/** The first column. */
+	private TableColumn firstColumn; // due to a restriction on some platforms
+	// (actually, MS Windows), the first
+	// column is always left aligned. The
+	// work around is to have a 0 width
+	// first column
+	/** The left context column. */
+	private TableColumn leftContextColumn;
+	/** The keyword column. */
+	private TableColumn keywordColumn;
+	/** The right context column. */
+	private TableColumn rightContextColumn;
+
+	/** The view properties label. */
+	private Label viewPropertiesLabel;
+
+	/** The set sort property action. */
+	private Action setSortPropertyAction;
+
+	/** The set context size action. */
+	private Action setContextSizeAction;
+
+	/** The set line number action. */
+	private Action setLineNumberAction;
+
+	/** The define view reference pattern action. */
+	protected Action defineViewReferencePatternAction;
+
+	/** The define sort reference pattern action. */
+	protected Action defineSortReferencePatternAction;	
+
+	/** The set view property action. */
+	protected Action setViewPropertyAction;
+
+	/** The attached browser editor. */
+	protected TXMBrowser attachedBrowserEditor;
+
+	/** The progresslistener. */
+	protected ProgressListener progresslistener;
+
+	/** The textid. */
+	protected String textid;
+
+	/** The opened page. */
+	Page openedPage;
+
+	/** The query area. */
+	private Composite queryArea;
+
+	/** The annotation area. */
+	private Composite annotationArea;
+
+	/** The navigation area. */
+	private NavigationWidget navigationArea;
+
+	/** The is setup shown. */
+	private boolean isSetupShown = true;
+	
+
+	/** The hide btn. */
+	private Button hideBtn;
+	private Button deleteLineButton;
+
+	/** The query size. */
+	protected Point querySize;
+	
+	protected Point annotationSize;
+	
+	/** The annot btn. */
+	private Button annotationButton;
+
+	//	/** The selected typed value for new annotations **/
+	//	private TypedValue annotSelectedTypedValue;
+	//	private AnnotationType annotSelectedType;
+
+	private Text annotationValuesText;
+	private ComboViewer annotationTypesCombo;
+
+	/** The parent. */
+	private Composite parent;
+
+	private ArrayList<Property> availableLeftSortProperties;
+
+	private ArrayList<Property> availableRightSortProperties;
+
+	private List<TypedValue> typeValuesList;
+
+	protected Point annotSize;
+
+	private TableColumn annotationColumn;
+
+	//	private Button addAnnotationButton;
+	//	private Button deleteAnnotationButton;
+	private Combo addRemoveCombo;
+	private Combo affectCombo;
+	private Button affectAnnotationButton;
+	//	private Button affectAnnotationToSelectionButton;
+	//	private Button affectAnnotationToConcordanceButton;
+	//	private Button affectAnnotationToPageButton;
+
+	private Label aLabel;
+
+	private Button infosAnnotTypeSelectedLink;
+
+	//	private TableColumnLayout tableLayout;
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Sets the standard comparators.
+	 */
+	private void setStandardComparators() {
+		for (int i = 0; i < standardComparatorClassName.length; i++)
+			standardComparators.add(standardComparatorClassName[i]);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		initializeEditor();
+	}
+
+	private void initializeEditor() {
+		this.corpus = ((ConcordancesEditorInput) getEditorInput()).getCorpus();
+		this.annotManager = corpus.getAnnotationManager();
+
+		this.standardComparators = new ArrayList<LineComparator>();
+		this.userDefinedComparators = new ArrayList<LineComparator>();
+		new ArrayList<LineComparator>();
+		setStandardComparators();
+		IPreferencesService service = Platform.getPreferencesService();
+		this.nLinePerPage = service.getInt(
+				Application.PLUGIN_ID,
+				ConcordancerPreferencePage.N_LINE_PER_PAGE,
+				ConcordancerPreferenceInitializer.N_LINE_PER_PAGE_DEFAULT,
+				null);
+		try {
+			this.availableKeywordViewProperties = new ArrayList<Property>(
+					corpus.getOrderedProperties());
+			this.availableLeftViewProperties = new ArrayList<Property>(corpus
+					.getOrderedProperties());
+			this.availableRightViewProperties = new ArrayList<Property>(corpus
+					.getOrderedProperties());
+			this.availableLeftSortProperties = new ArrayList<Property>(corpus
+					.getOrderedProperties());
+			this.availableKeywordSortProperties = new ArrayList<Property>(corpus
+					.getOrderedProperties());
+			this.availableRightSortProperties = new ArrayList<Property>(corpus
+					.getOrderedProperties());
+		} catch (CqiClientException e) {
+			//System.err.println(Messages.CorporaView_3+" : "+Log.toString(e)); //$NON-NLS-1$
+			try {
+				System.out.println(Messages.ConcordancesEditor_0+Toolbox.getCqiClient().getLastCQPError());
+				Log.severe(Messages.ConcordancesEditor_0+Toolbox.getCqiClient().getLastCQPError());
+			} catch (Exception e1) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				Log.severe("Error while computing concordance: "+e.getLocalizedMessage());
+			} 
+			
+			return;
+		}
+
+		this.concordance = ((ConcordancesEditorInput) getEditorInput()).getConcordance();
+
+		if (this.concordance == null) {
+			leftContextSize = service.getInt(
+					Application.PLUGIN_ID,
+					ConcordancerPreferencePage.LEFT_CONTEXT_SIZE,
+					ConcordancerPreferenceInitializer.LEFT_CONTEXT_SIZE_DEFAULT,
+					null);
+			rightContextSize = service.getInt(
+					Application.PLUGIN_ID,
+					ConcordancerPreferencePage.RIGHT_CONTEXT_SIZE,
+					ConcordancerPreferenceInitializer.RIGHT_CONTEXT_SIZE_DEFAULT,
+					null);
+
+			selectedLeftViewProperties = new ArrayList<Property>();
+			selectedRightViewProperties = new ArrayList<Property>();
+			selectedKeywordViewProperties = new ArrayList<Property>();
+
+			//set default view property
+			Property defaultViewProperty = availableKeywordViewProperties.get(0);
+			if(!defaultViewProperty.getName().equals("word")) //$NON-NLS-1$
+				for(int i = 0 ; i < availableKeywordViewProperties.size() ; i++ )
+					if (availableKeywordViewProperties.get(i).getName().equals("word")) //$NON-NLS-1$
+					{
+						defaultViewProperty = availableKeywordViewProperties.get(i);
+						break;
+					}
+
+			availableKeywordViewProperties.remove(defaultViewProperty);
+			availableLeftViewProperties.remove(defaultViewProperty);
+			availableRightViewProperties.remove(defaultViewProperty);
+			selectedLeftViewProperties.add(defaultViewProperty);
+			selectedRightViewProperties.add(defaultViewProperty);
+			selectedKeywordViewProperties.add(defaultViewProperty);
+
+			//set default sort property
+			selectedLeftSortProperties = new ArrayList<Property>();
+			selectedRightSortProperties = new ArrayList<Property>();
+			selectedKeywordSortProperties = new ArrayList<Property>();
+
+			Property defaultSortProperty = availableKeywordSortProperties.get(0);
+			if(!defaultSortProperty.getName().equals("word")) //$NON-NLS-1$
+				for(int i = 0 ; i < availableKeywordSortProperties.size() ; i++ )
+					if (availableKeywordSortProperties.get(i).getName().equals("word")) //$NON-NLS-1$
+					{
+						defaultSortProperty = availableKeywordSortProperties.get(i);
+						break;
+					}
+
+			availableKeywordSortProperties.remove(defaultSortProperty);
+			availableLeftSortProperties.remove(defaultSortProperty);
+			availableRightSortProperties.remove(defaultSortProperty);
+			selectedLeftSortProperties.add(defaultSortProperty);
+			selectedRightSortProperties.add(defaultSortProperty);
+			selectedKeywordSortProperties.add(defaultSortProperty);
+
+			this.refViewPattern = new ReferencePattern();
+			this.refSortPattern = new ReferencePattern();
+			try { // set the default reference is there is one
+				if (corpus.getProperty("ref") != null) //$NON-NLS-1$
+				{
+					refViewPattern.addProperty(corpus.getProperty("ref")); //$NON-NLS-1$
+					refSortPattern.addProperty(corpus.getProperty("ref")); //$NON-NLS-1$
+				} else {
+					if (corpus.getStructuralUnit("text") != null) //$NON-NLS-1$
+						if (corpus.getStructuralUnit("text").getProperty("id") != null) //$NON-NLS-1$ //$NON-NLS-2$
+						{
+							refViewPattern.addProperty(corpus.getStructuralUnit("text").getProperty("id")); //$NON-NLS-1$ //$NON-NLS-2$
+							refSortPattern.addProperty(corpus.getStructuralUnit("text").getProperty("id")); //$NON-NLS-1$ //$NON-NLS-2$
+						}
+				}
+			} catch (CqiClientException e) {
+				System.out.println(NLS.bind(Messages.ConcordancesEditor_43, corpus.getName(), e));
+			}
+		} else {
+			leftContextSize = concordance.getLeftContextSize();
+			rightContextSize = concordance.getRightContextSize();
+
+			selectedLeftViewProperties = concordance.getLeftViewProperties();
+			selectedRightViewProperties = concordance.getRightViewProperties();
+			selectedKeywordViewProperties = concordance.getKeywordViewProperties();
+			availableKeywordViewProperties.remove(selectedKeywordViewProperties);
+			availableLeftViewProperties.remove(selectedLeftViewProperties);
+			availableRightViewProperties.remove(selectedRightViewProperties);
+
+			selectedLeftSortProperties = concordance.getLeftAnalysisProperties();
+			selectedRightSortProperties = concordance.getRightAnalysisProperties();
+			selectedKeywordSortProperties = concordance.getKeywordAnalysisProperties();
+			availableKeywordSortProperties.remove(selectedKeywordSortProperties);
+			availableLeftSortProperties.remove(selectedLeftSortProperties);
+			availableRightSortProperties.remove(selectedRightSortProperties);
+
+			this.refViewPattern = concordance.getRefViewPattern();
+			this.refSortPattern = concordance.getRefAnalysePattern();
+		}
+
+
+
+		if (concordance != null)
+			setPartName(concordance.getName());
+		else
+			setPartName(corpus.getName());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		this.parent = parent;
+		//		GridLayout layout = new GridLayout(1, false);
+		//		layout.horizontalSpacing = 0;
+		//		layout.verticalSpacing = 0;
+		//		parent.setLayout(layout);
+
+		parent.setLayout(new FormLayout());
+
+		Composite controlArea = new Composite(parent, SWT.NONE); // the form
+		FormData formdata1 = new FormData();
+		formdata1.top = new FormAttachment(0);
+		//formdata1.bottom = new FormAttachment(100);
+		formdata1.left = new FormAttachment(0);
+		formdata1.right = new FormAttachment(100);
+		controlArea.setLayoutData(formdata1);
+
+
+		Composite displayArea = new Composite(parent, SWT.NONE); // the lines
+		FormData formdata2 = new FormData();
+		formdata2.top = new FormAttachment(controlArea);
+		formdata2.bottom = new FormAttachment(100);
+		formdata2.left = new FormAttachment(0);
+		formdata2.right = new FormAttachment(100);
+		displayArea.setLayoutData(formdata2);
+
+		composeControlArea(controlArea);
+		composeDisplayArea(displayArea);
+
+		//if (concordance != null)
+		//	fillDisplayArea(0, nLinePerPage);
+	}
+
+	/**
+	 * Compose display area.
+	 *
+	 * @param displayArea the display area
+	 */
+	private void composeDisplayArea(final Composite displayArea) {
+		//		tableLayout = new TableColumnLayout();
+		displayArea.setLayout(new GridLayout(1, true));
+
+		viewer = new TableViewer(displayArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		viewer.setLabelProvider(new LineLabelProvider(this));
+		viewer.setContentProvider(new ConcordancesProvider());
+		viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		if (corpus != null && corpus.getFont() != null && corpus.getFont().length() > 0) {
+			Font old = viewer.getTable().getFont();
+			FontData fD = old.getFontData()[0];
+			Font font = new Font(Display.getCurrent(), corpus.getFont(), fD.getHeight(), fD.getStyle()); 
+			viewer.getTable().setFont(font);
+		}
+
+		viewer.getTable().addListener(SWT.Resize, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				ScrollBar bar = viewer.getTable().getHorizontalBar();
+				float l=leftContextColumn.getWidth();
+				float k=keywordColumn.getWidth();
+				float r=rightContextColumn.getWidth();
+				float t=viewer.getTable().getClientArea().width;//the width of the visible part of the table; l+k+r>=t
+				float x=l+k/2-t/2; //the abcisse the visible rectangle must have for the keyword column to be centered
+				float M=bar.getMaximum();
+				float T=bar.getThumb();
+				bar.setSelection(Math.round(x*(M-T)/(l+k+r-t)));//this is how x translate in terms of bar selection
+			}
+		});
+
+		//TODO: to enable line deletion, Concordance code must updated 
+		viewer.getTable().addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {	}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode != SWT.DEL ) { // CTRL + C
+					return;
+				}
+
+				DeleteLines.deleteConcordanceLines(ConcordancesEditor.this);
+			}
+		});
+
+
+		firstColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		firstColumn.setWidth(0);
+
+		referenceColumn = new TableColumn(viewer.getTable(), SWT.V_SCROLL | SWT.H_SCROLL);
+		refreshReferenceColumnTitle();
+		referenceColumn.setToolTipText(Messages.ConcordancesEditor_1);
+		referenceColumn.setAlignment(SWT.LEFT);
+		referenceColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_37);
+				LineComparator comparator = new PropertiesReferenceComparator();
+				if (viewer.getTable().getSortColumn() != referenceColumn) {
+					viewer.getTable().setSortColumn(null);
+					viewer.getTable().setSortColumn(referenceColumn);
+					viewer.getTable().setSortDirection(SWT.UP);
+				} else if (viewer.getTable().getSortDirection() == SWT.UP) {
+					viewer.getTable().setSortDirection(SWT.DOWN);
+					comparator = new ReverseComparator(comparator);
+				} else {
+					viewer.getTable().setSortDirection(SWT.UP);
+				}
+				comparator.initialize(corpus);
+				currentComparator = comparator;
+				complexsorter.setKey(4);//set ref key
+				sort();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		leftContextColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		leftContextColumn.setText(Messages.ConcordancesEditor_2);
+		leftContextColumn.setToolTipText(Messages.ConcordancesEditor_2);
+		leftContextColumn.setAlignment(SWT.RIGHT);
+		leftContextColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_41);
+				LineComparator comparator = new LexicographicLeftContextComparator();
+				if (viewer.getTable().getSortColumn() != leftContextColumn) {
+					viewer.getTable().setSortColumn(leftContextColumn);
+					viewer.getTable().setSortDirection(SWT.UP);
+				} else if (viewer.getTable().getSortDirection() == SWT.UP) {
+					viewer.getTable().setSortDirection(SWT.DOWN);
+					comparator = new ReverseComparator(comparator);
+				} else
+					viewer.getTable().setSortDirection(SWT.UP);
+				comparator.initialize(corpus);
+				currentComparator = comparator;
+				complexsorter.setKey(2);//set ref key
+				sort();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		keywordColumn = new TableColumn(viewer.getTable(), SWT.CENTER);
+		keywordColumn.setText(Messages.ConcordancesEditor_3);
+		keywordColumn.setToolTipText(Messages.ConcordancesEditor_3);
+		keywordColumn.setAlignment(SWT.CENTER);
+		keywordColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_45);
+				LineComparator comparator = new LexicographicKeywordComparator();
+				if (viewer.getTable().getSortColumn() != keywordColumn) {
+					viewer.getTable().setSortColumn(keywordColumn);
+					viewer.getTable().setSortDirection(SWT.UP);
+				} else if (viewer.getTable().getSortDirection() == SWT.UP) {
+					viewer.getTable().setSortDirection(SWT.DOWN);
+					comparator = new ReverseComparator(comparator);
+				} else
+					viewer.getTable().setSortDirection(SWT.UP);
+				comparator.initialize(corpus);
+				currentComparator = comparator;
+				complexsorter.setKey(1);//set ref key
+				sort();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		annotationColumn = new TableColumn(viewer.getTable(), SWT.CENTER);
+		annotationColumn.setText(Messages.ConcordancesEditor_15);
+		annotationColumn.setToolTipText(Messages.ConcordancesEditor_17);
+		annotationColumn.setAlignment(SWT.CENTER);
+
+		rightContextColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		rightContextColumn.setText(Messages.ConcordancesEditor_4);
+		rightContextColumn.setToolTipText(Messages.ConcordancesEditor_4);
+		rightContextColumn.setAlignment(SWT.LEFT);
+		rightContextColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_48);
+				LineComparator comparator = new LexicographicRightContextComparator();
+
+				if (viewer.getTable().getSortColumn() != rightContextColumn) {
+					viewer.getTable().setSortColumn(rightContextColumn);
+				} else if (viewer.getTable().getSortDirection() == SWT.UP) {
+					viewer.getTable().setSortDirection(SWT.DOWN);
+					comparator = new ReverseComparator(comparator);
+				} else {
+					viewer.getTable().setSortDirection(SWT.UP);
+				}
+				comparator.initialize(corpus);
+				currentComparator = comparator;
+				complexsorter.setKey(3); //set ref key
+				sort();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		resetColumnWidths(); // set column widths
+
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+
+		createContextMenu();
+
+		// And now, a sweet piece of code :)
+		// When the window is resized, the scrollbar is adjusted so that the
+		// keywords remain centered
+		viewer.getTable().addListener(SWT.Resize, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				ScrollBar bar = viewer.getTable().getHorizontalBar();
+				//float l = leftContextColumn.getWidth();
+				//float k = keywordColumn.getWidth();
+				rightContextColumn.getWidth();
+				//float t = lineTableViewer.getTable().getClientArea().width;
+				bar.getMaximum();
+				bar.getThumb();
+			}
+		});
+
+		// back to text mouse listener
+		viewer.getTable().addMouseListener(new MouseListener() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_50);
+				backToText();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void mouseDown(MouseEvent e) { }
+			@Override
+			public void mouseUp(MouseEvent e) {	}
+		});
+
+		// On Windows, the selection is gray if the table does not have focus.
+		// To make both tables appear in focus, draw the selection background
+		// here.
+		// This part only works on version 3.2 or later.
+		Listener eraseListener = new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				event.detail &= ~SWT.HOT;
+				if ((event.detail & SWT.SELECTED) != 0) {
+					GC gc = event.gc;
+					Rectangle rect = event.getBounds();
+					gc.setForeground(displayArea.getDisplay().getSystemColor(
+							SWT.COLOR_LIST_SELECTION_TEXT));
+					gc.setBackground(displayArea.getDisplay().getSystemColor(
+							SWT.COLOR_LIST_SELECTION));
+					gc.fillRectangle(rect);
+					event.detail &= ~SWT.SELECTED;
+				}
+			}
+		};
+
+		// Listeners to avoid 0 width clumns
+		referenceColumn.addControlListener(new ControlListener() {
+			@Override
+			public void controlMoved(ControlEvent e) { }
+			@Override
+			public void controlResized(ControlEvent e) {
+				if (referenceColumn.getWidth() < 5) referenceColumn.setWidth(5);
+
+			}
+		});
+		leftContextColumn.addControlListener(new ControlListener() {
+			@Override
+			public void controlMoved(ControlEvent e) { }
+			@Override
+			public void controlResized(ControlEvent e) {
+				if (leftContextColumn.getWidth() < 5) leftContextColumn.setWidth(5);
+
+			}
+		});
+		keywordColumn.addControlListener(new ControlListener() {
+			@Override
+			public void controlMoved(ControlEvent e) { }
+			@Override
+			public void controlResized(ControlEvent e) {
+				if (keywordColumn.getWidth() < 5) keywordColumn.setWidth(5);
+
+			}
+		});
+		annotationColumn.addControlListener(new ControlListener() {
+			@Override
+			public void controlMoved(ControlEvent e) { }
+			@Override
+			public void controlResized(ControlEvent e) {
+				if (annotationArea != null && annotationColumn.getWidth() < 5) annotationColumn.setWidth(5);
+
+			}
+		});
+		rightContextColumn.addControlListener(new ControlListener() {
+			@Override
+			public void controlMoved(ControlEvent e) { }
+			@Override
+			public void controlResized(ControlEvent e) {
+				if (rightContextColumn.getWidth() < 5) rightContextColumn.setWidth(5);
+
+			}
+		});
+
+		viewer.getTable().addListener(SWT.EraseItem, eraseListener);
+
+		//		tableLayout.setColumnData(firstColumn, new ColumnWeightData(0, false));
+		//		tableLayout.setColumnData(referenceColumn, new ColumnWeightData(1, true)); 
+		//		tableLayout.setColumnData(keywordColumn, new ColumnWeightData(1, true));
+		//		tableLayout.setColumnData(leftContextColumn, new ColumnWeightData(1, true));
+		//		tableLayout.setColumnData(annotationColumn, new ColumnWeightData(0, true));
+		//		tableLayout.setColumnData(rightContextColumn, new ColumnWeightData(1, true));
+	}
+
+	/**
+	 * Sort.
+	 */
+	public void sort() {
+		if (concordance != null && currentComparator != null) {
+
+			//System.out.println("concordance sort props: "+concordance.getLeftCAnalysisProperty()+", "+concordance.getKeywordAnalysisProperty()+", "+concordance.getRightCAnalysisProperty());
+			concordance.setLeftAnalysisProperties(selectedLeftSortProperties);
+			concordance.setKeywordAnalysisProperties(selectedKeywordSortProperties);
+			concordance.setRightAnalysisProperties(selectedRightSortProperties);
+			
+			try {
+				Log.info(NLS.bind(Messages.CooccurrencesEditor_0, currentComparator.getName()));
+				if (currentComparator instanceof CompositeComparator)
+					Log.info(((CompositeComparator) currentComparator).getComparators().toString());
+				JobHandler jobhandler = new JobHandler("Sorting...") { //$NON-NLS-1$
+					@Override
+					protected IStatus run(IProgressMonitor monitor) {
+						this.runInit(monitor);
+						JobsTimer.start();
+						try {
+							monitor.beginTask(Messages.ConcordancesEditor_6, concordance.getNLines());
+							concordance.setCurrentMonitor(this);
+							concordance.sort(currentComparator);
+							concordance.setCurrentMonitor(null);
+							syncExec(new Runnable() {
+								@Override
+								public void run() {
+									StatusLine.setMessage(Messages.IndexEditor_37);
+									// FIXME: SYNC
+									fillDisplayArea(topLine, topLine + nLinePerPage - 1);
+									//fillDisplayArea(0, nLinePerPage);
+								}
+							});
+
+						} catch (ThreadDeath td) {
+							return Status.CANCEL_STATUS;
+						} catch (Exception e) {
+							System.err.println(NLS.bind(Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						} finally {
+							monitor.done();
+							JobsTimer.stopAndPrint();
+						}
+						return Status.OK_STATUS;
+					}
+				};
+
+				jobhandler.startJob();
+			} catch (Exception e) {
+				System.err.println(NLS.bind(Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		}
+	}
+
+	/**
+	 * Lazy loads the concordance lines range and fills the display area.
+	 *
+	 * @param from the from
+	 * @param to the to
+	 */
+	public void fillDisplayArea(int from, int to) {
+		if (viewer == null)
+			return;
+		from = Math.max(from, 0);
+		to = Math.min(to, concordance.getNLines() - 1);
+		List<Line> lines = null;
+		if (concordance.getNLines() > 0) {
+			try {
+				lines = concordance.getLines(from, to);
+			} catch (Exception e) {
+				System.err.println(Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE+ e);
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		} else
+			lines = new ArrayList<Line>();
+
+		viewer.setInput(lines);
+		referenceColumn.pack();
+		leftContextColumn.pack();
+		keywordColumn.pack();
+		rightContextColumn.pack();
+		viewer.getTable().pack(true);
+		viewer.getTable().getParent().layout();
+
+		topLine = from;
+		bottomLine = to;
+
+		navigationArea.setInfoLineText(""+(from + 1), //$NON-NLS-1$
+				" - "+(to + 1) + " / " + concordance.getNLines()); //$NON-NLS-1$ //$NON-NLS-2$
+
+		navigationArea.setPreviousEnabled(topLine > 0);
+		navigationArea.setFirstEnabled(topLine > 0);
+		navigationArea.setNextEnabled(bottomLine < concordance.getNLines() - 1);
+		navigationArea.setLastEnabled(bottomLine < concordance.getNLines() - 1);
+		navigationArea.layout();
+		navigationArea.getParent().layout();
+
+		refreshReferenceColumnTitle();
+	}
+
+	HashMap<AnnotationType, ArrayList<TypedValue>> history = new HashMap<AnnotationType, ArrayList<TypedValue>>();
+
+	private Button addAnnotationTypeLink;
+
+	private KnowledgeRepository currentKnowledgeRepository = null;
+	Vector<AnnotationType> typesList = new Vector<AnnotationType>(); 
+
+	private Button addTypedValueLink;
+
+	private Label withLabel;
+
+	private AnnotationType tagAnnotationType; // the tag annotation type if annotation mode is simple
+
+	private Label equalLabel;
+	Boolean advanced_annotation_mode = false;
+	
+	private void composeAnnotationArea(final Composite parent){ 
+		advanced_annotation_mode = "advanced".equals(TxmPreferences.getString(AnnotationPreferencePage.MODE, "simple"));
+		
+		List<KnowledgeRepository> krs = InitializeKnowledgeRepository.get(corpus.getMainCorpus());
+		typesList.clear();
+		Log.warning("Corpus KRs: "+krs); //$NON-NLS-1$
+
+		for (KnowledgeRepository kr : krs) {
+			currentKnowledgeRepository = kr;
+			Log.warning(" KR: "+kr); //$NON-NLS-1$
+			List<AnnotationType> krtypes = kr.getAllAnnotationTypes();
+			Log.warning("Advanced annotation mode ? "+advanced_annotation_mode);
+			if (!advanced_annotation_mode) { // creates the "span" annotation type
+				boolean createTagAnnotationType = true;
+				for (AnnotationType type : krtypes) {
+					if (type.getName().equals("span")) { //$NON-NLS-1$
+						createTagAnnotationType = false;
+					}
+				}
+				if (createTagAnnotationType) {
+					tagAnnotationType = kr.addType("span", "span");//corresponds to an "undef" type //$NON-NLS-1$ //$NON-NLS-2$
+					typesList.add(tagAnnotationType);
+				} else {
+					tagAnnotationType = kr.getType("span"); //$NON-NLS-1$
+				}
+			} else {
+				typesList.addAll(krtypes);
+			}
+			Log.warning("Available annotation types: "+typesList);
+			break;
+		}
+
+		annotationArea = new Composite(parent, SWT.NONE);
+		annotationArea.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, false, false));
+
+		GridLayout annotLayout = new GridLayout(12, false);
+		annotLayout.verticalSpacing = 0;
+		annotLayout.marginWidth = 0;
+		annotLayout.marginHeight = 0;
+		annotationArea.setLayout(annotLayout);
+
+		//init values history
+		for (AnnotationType type : typesList) {
+			history.put(type, new ArrayList<TypedValue>());
+		}
+
+		addRemoveCombo = new Combo(annotationArea, SWT.READ_ONLY);
+		String affectLabel = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_22");
+		if (affectLabel == null) affectLabel= Messages.ConcordancesEditor_22;
+		String removeLabel = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_24");
+		if (removeLabel == null) removeLabel= Messages.ConcordancesEditor_24;
+		String items[] = {affectLabel, removeLabel};
+		addRemoveCombo.setItems(items);
+		addRemoveCombo.select(0);
+		addRemoveCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (addRemoveCombo.getSelectionIndex() == 0) { // add
+					annotationValuesText.setEnabled(true);
+					String withLabelText = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_83");
+					if (withLabelText == null) withLabelText= Messages.ConcordancesEditor_83;
+					withLabel.setText(withLabelText);
+					if (equalLabel != null) equalLabel.setText("=");
+				} else { // remove
+					annotationValuesText.setEnabled(false);
+					withLabel.setText(""); //$NON-NLS-1$
+					if (equalLabel != null) equalLabel.setText("");
+				}
+				withLabel.redraw();
+				annotationArea.layout();
+				updateAnnotationWidgetStates();
+			}
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		GridData gdata = new GridData(SWT.CENTER, SWT.CENTER, false, true);
+		gdata.widthHint = 90;
+		addRemoveCombo.setLayoutData(gdata);
+	
+		withLabel = new Label(annotationArea, SWT.NONE);
+		String withLabelText = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_83");
+		if (withLabelText == null) withLabelText= Messages.ConcordancesEditor_83;
+		withLabel.setText(withLabelText);
+		withLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+
+		if (advanced_annotation_mode) {
+			equalLabel = new Label(annotationArea, SWT.NONE);
+			equalLabel.setText("="); //$NON-NLS-1$
+			equalLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+		}
+
+		//Display combo with list of Annotation Type 
+		if (advanced_annotation_mode) {
+			annotationTypesCombo = new ComboViewer(annotationArea, SWT.READ_ONLY);
+			annotationTypesCombo.setContentProvider(new ArrayContentProvider());
+			annotationTypesCombo.setLabelProvider(new SimpleLabelProvider() {
+				@Override
+				public String getColumnText(Object element, int columnIndex) {
+					return ((AnnotationType)element).getName(); //$NON-NLS-1$
+				}
+				@Override
+				public String getText(Object element) {
+					return ((AnnotationType)element).getName(); //$NON-NLS-1$
+				}
+			});
+			gdata = new GridData(SWT.CENTER, SWT.CENTER, false, true);
+			gdata.widthHint = 200;
+
+			annotationTypesCombo.getCombo().setLayoutData(gdata);
+			annotationTypesCombo.setInput(typesList);
+			if (advanced_annotation_mode.equals(Messages.AnnotationPreferences_2)) {
+				annotationTypesCombo.getCombo().select(0);
+			}
+
+			annotationTypesCombo.addSelectionChangedListener(new ISelectionChangedListener() {
+				@Override
+				public void selectionChanged(SelectionChangedEvent event) {
+					AnnotationType type = getSelectedAnnotationType();
+					if (type == null) return;
+					if (type.getSize() != AnnotationType.ValuesSize.LARGE) {
+						try {
+							KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(type.getKnowledgeRepository());
+							typeValuesList = kr.getValues(type);
+						} catch (Exception e) {
+							// TODO Auto-generated catch block
+							e.printStackTrace();
+						}
+					} else { // set history values
+						typeValuesList = history.get(type);
+					}
+
+					annotationColumn.setText(type.getName());
+					if (concordance != null) {
+						concordance.setViewAnnotation(type);
+						concordance.setAnnotationOverlap(true);
+						fillDisplayArea(topLine, bottomLine);
+					}
+
+					updateAnnotationWidgetStates();
+				}
+			});
+		}
+
+		if (advanced_annotation_mode) {
+			if (currentKnowledgeRepository instanceof SQLKnowledgeRepository) {
+				infosAnnotTypeSelectedLink = new Button(annotationArea, SWT.PUSH);
+				infosAnnotTypeSelectedLink.setImage(IImageKeys.getImage(IImageKeys.ACTION_INFO));
+				infosAnnotTypeSelectedLink.setEnabled(true);
+				infosAnnotTypeSelectedLink.setLayoutData(new GridData(SWT.FILL,	SWT.CENTER, false, true));
+				infosAnnotTypeSelectedLink.addSelectionListener(new SelectionListener() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						AnnotationType type = getSelectedAnnotationType();
+						if (type == null) return;
+
+						String typedValueURL = type.getURL(); // may be null/empty
+						if (typedValueURL != null && typedValueURL.length() > 0) {
+							KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(type.getKnowledgeRepository());
+							kr.getTypeURL(type);
+						}
+						if (typedValueURL != null && typedValueURL.length() > 0) {
+							OpenBrowser.openfile(typedValueURL, new File(typedValueURL).getName());
+						} else {
+							IWorkbenchWindow window = getSite().getWorkbenchWindow();
+							try {
+								OpenKRView.openView(window, type);
+							} catch (PartInitException e1) {
+								e1.printStackTrace();
+							}
+						}
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+			}
+
+			if (currentKnowledgeRepository instanceof LocalKnowledgeRepository) {
+				addAnnotationTypeLink = new Button(annotationArea, SWT.PUSH);
+				addAnnotationTypeLink.setToolTipText(Messages.ConcordancesEditor_115);
+				addAnnotationTypeLink.setImage(IImageKeys.getImage(IImageKeys.ACTION_ADD));
+				addAnnotationTypeLink.setEnabled(true);
+				addAnnotationTypeLink.setLayoutData(new GridData(SWT.FILL,	SWT.CENTER, false, true));
+				addAnnotationTypeLink.addSelectionListener(new SelectionListener() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						if (currentKnowledgeRepository == null) return;
+						if (!(currentKnowledgeRepository instanceof LocalKnowledgeRepository)) return;
+
+						LocalKnowledgeRepository kr = (LocalKnowledgeRepository)currentKnowledgeRepository;
+
+						InputDialog dialog = new InputDialog(e.widget.getDisplay().getActiveShell(), Messages.ConcordancesEditor_82, Messages.ConcordancesEditor_81, "", null); //$NON-NLS-3$
+						if (dialog.open() == InputDialog.OK) {
+							String name = dialog.getValue();
+							if (name.trim().length() == 0) return;
+							String baseid = AsciiUtils.buildId(name);
+							String id = AsciiUtils.buildId(name);
+							int c = 1;
+							while (kr.getType(id) != null) {
+								id = baseid+"_"+(c++); //$NON-NLS-1$
+							}
+							AnnotationType type = kr.addType(name, id, ""); //$NON-NLS-1$
+							typesList.add(type);
+							history.put(type, new ArrayList<TypedValue>());
+
+							if (annotationTypesCombo != null) annotationTypesCombo.refresh();
+							if (typesList.size() == 1) {
+								if (annotationTypesCombo != null) annotationTypesCombo.getCombo().select(0);
+								if (concordance != null) {
+									concordance.setViewAnnotation(type);
+									concordance.setAnnotationOverlap(true);
+									fillDisplayArea(topLine, bottomLine);
+								}
+								annotationArea.layout(true);
+							}else {
+								if (typesList.size() > 1){
+									if (annotationTypesCombo != null) annotationTypesCombo.getCombo().select(typesList.size()-1);
+								
+								}
+								
+							}
+							KRView.refresh();
+							updateAnnotationWidgetStates();
+						} else {
+							System.out.println("Creation aborted."); //$NON-NLS-1$
+						}
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+			}
+		}
+		if (advanced_annotation_mode) {
+			Label valueLabel = new Label(annotationArea, SWT.NONE);
+			String valueLabelText = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_80");
+			if (valueLabelText == null) valueLabelText= Messages.ConcordancesEditor_80;
+			valueLabel.setText(valueLabelText);
+			valueLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
+		}
+
+		annotationValuesText = new Text(annotationArea, SWT.BORDER);
+		annotationValuesText.setToolTipText(Messages.ConcordancesEditor_32);
+		GridData gdata2 = new GridData(SWT.FILL, SWT.CENTER, false, true);
+		gdata2.widthHint = 200;
+		annotationValuesText.setLayoutData(gdata2);
+		annotationValuesText.addKeyListener(new KeyListener() {
+			@Override
+			public void keyReleased(KeyEvent e) {
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					affectAnnotationToSelection(viewer.getSelection());
+				}
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) { }
+		});
+
+		if (currentKnowledgeRepository instanceof LocalKnowledgeRepository) {
+			addTypedValueLink = new Button(annotationArea, SWT.PUSH);
+			addTypedValueLink.setText("..."); //$NON-NLS-1$
+			if (advanced_annotation_mode.equals(Messages.AnnotationPreferences_2)) {
+				addTypedValueLink.setToolTipText(Messages.ConcordancesEditor_79);
+			}else {
+				addTypedValueLink.setToolTipText(Messages.ConcordancesEditor_77);
+			}
+			addTypedValueLink.setEnabled(true);
+			addTypedValueLink.setLayoutData(new GridData(SWT.FILL,	SWT.CENTER, false, true));
+			addTypedValueLink.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (currentKnowledgeRepository == null) return;
+					if (!(currentKnowledgeRepository instanceof LocalKnowledgeRepository)) return;
+
+					AnnotationType type = getSelectedAnnotationType();
+					if (type == null) return;
+
+					LocalKnowledgeRepository kr = (LocalKnowledgeRepository)currentKnowledgeRepository;
+
+					ListDialog dialog = new ListDialog(e.widget.getDisplay().getActiveShell());
+					if (advanced_annotation_mode.equals(Messages.AnnotationPreferences_2)) {
+						String title = currentKnowledgeRepository.getString(locale, "ConcordancesEditor_100");
+						if (title == null) title = Messages.ConcordancesEditor_100;
+						dialog.setTitle(Messages.bind(title, type.getName()));//+"valeurs de "+type.getName());
+					}else {
+						dialog.setTitle(Messages.ConcordancesEditor_99);//+"valeurs de "+type.getName());
+					}
+					dialog.setContentProvider(new ArrayContentProvider());
+					dialog.setLabelProvider(new SimpleLabelProvider() {
+						public String getColumnText(Object element, int columnIndex) {
+							if (element instanceof TypedValue)
+								return ((TypedValue)element).getId();
+							return element.toString();
+						}
+					});
+					List<TypedValue> values;
+					try {
+						values = kr.getValues(type);
+					} catch (Exception e1) {
+						e1.printStackTrace();
+						return;
+					}
+					dialog.setInput(values);
+					if (dialog.open() == InputDialog.OK) {
+						TypedValue value = (TypedValue) dialog.getResult()[0];
+						String name = value.getId();
+						if (name.trim().length() == 0) return;
+
+						annotationValuesText.setText(name);
+					} else {
+
+					}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) { }
+			});
+		}
+
+		affectCombo = new Combo(annotationArea, SWT.READ_ONLY);
+		affectCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true));
+		String items2[] = {Messages.ConcordancesEditor_35, Messages.ConcordancesEditor_42, Messages.ConcordancesEditor_49};
+		affectCombo.setItems(items2);
+		affectCombo.select(0);
+		gdata = new GridData(SWT.CENTER, SWT.CENTER, false, true);
+		gdata.widthHint = 140;
+		affectCombo.setLayoutData(gdata);
+
+		affectAnnotationButton = new Button(annotationArea, SWT.PUSH);
+		affectAnnotationButton.setText(Messages.ConcordancesEditor_85);
+		affectAnnotationButton.setToolTipText(Messages.ConcordancesEditor_116);
+		affectAnnotationButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true));
+		affectAnnotationButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int isel = affectCombo.getSelectionIndex();
+				if (isel == 0) { // selected line
+					affectAnnotationToSelection(viewer.getSelection());
+				} else if (isel == 1) { // page
+					try {
+						List<Match> matches = concordance.getMatches().subList(topLine, bottomLine+1);
+						affectMatchesToSelection(matches);
+					} catch (CqiClientException e1) {
+						Log.severe(Messages.ConcordancesEditor_53+e1);
+						Log.printStackTrace(e1);
+						return;
+					}
+				} else { // all
+					try {
+						List<Match> matches = concordance.getMatches();
+						affectMatchesToSelection(matches);
+					} catch (CqiClientException e1) {
+						Log.severe(Messages.ConcordancesEditor_53+e1);
+						Log.printStackTrace(e1);
+						return;
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		Button cancelAnnotateButton = new Button(annotationArea, SWT.PUSH);
+		cancelAnnotateButton.setText(Messages.ConcordancesEditor_101);
+		cancelAnnotateButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				//@TODO Closing the annotation tool bar 
+					//System.out.println("must hide");
+					annotationSize = annotationArea.getSize();
+					annotationArea.dispose();
+					annotationArea = null;
+					parent.layout(true);
+					parent.layout();
+					annotationButton.setToolTipText(Messages.ConcordancesEditor_75);
+					annotationButton.setImage(IImageKeys.getImage(IImageKeys.PENCIL));
+					annotationColumn.setWidth(0);
+					annotationColumn.setResizable(false);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		
+		
+		updateAnnotationWidgetStates();
+
+		parent.layout();
+	}
+
+	protected void affectAnnotationToSelection(ISelection selection) {
+
+		final IStructuredSelection lineSelection = (IStructuredSelection) selection;
+		List<Line> lines = lineSelection.toList();
+		ArrayList<Match> matches = new ArrayList<Match>();
+		for (Line l : lines) matches.add(l.getMatch());
+
+		affectMatchesToSelection(matches);
+	}
+
+	protected AnnotationType getSelectedAnnotationType() {
+		if (annotationTypesCombo != null) {
+			IStructuredSelection isel = (IStructuredSelection)annotationTypesCombo.getSelection();
+			if (isel.isEmpty()) return null;
+			return (AnnotationType) isel.getFirstElement();
+		} else { // simple mode
+			return tagAnnotationType;
+		}
+	}
+
+	protected void affectMatchesToSelection(final List<Match> matches) {
+		final AnnotationType type = getSelectedAnnotationType();
+		final String svalue = annotationValuesText.getText();
+		final boolean doAffect = addRemoveCombo.getSelectionIndex() == 0; // add is default
+
+		JobHandler job = new JobHandler(Messages.ConcordancesEditor_36, true) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					if (doAffect) {
+						affectAnnotationValues(matches, type, svalue, this);
+					} else {
+						deleteAnnotationValues(matches, type, this);
+					}
+				} catch(Exception e) {
+					Log.severe(Messages.ConcordancesEditor_40+e);
+					Log.printStackTrace(e);
+					return Status.CANCEL_STATUS;
+				} catch(ThreadDeath td) {
+					System.out.println("Annotation canceled by user.");
+					return Status.CANCEL_STATUS;
+				}
+				
+				return Status.OK_STATUS;
+			}
+		};
+		job.startJob(true);
+	}
+
+	public void updateAnnotationWidgetStates() {
+		if (annotationArea == null) return; // :)
+
+		if (addRemoveCombo.getSelectionIndex() == 0) { // add is default
+
+			if (getSelectedAnnotationType() != null) {
+				annotationValuesText.setEnabled(true);
+
+				affectAnnotationButton.setEnabled(true);
+				affectCombo.setEnabled(true);
+			} else {
+				annotationValuesText.setEnabled(false);
+
+				affectAnnotationButton.setEnabled(false);
+				affectCombo.setEnabled(false);
+			}
+		} else {
+			annotationValuesText.setEnabled(false);
+
+			if (getSelectedAnnotationType() != null) {
+				affectAnnotationButton.setEnabled(true);
+				affectCombo.setEnabled(true);
+			} else {
+				affectAnnotationButton.setEnabled(false);
+				affectCombo.setEnabled(false);
+			}
+		}
+
+		if (advanced_annotation_mode.equals(Messages.AnnotationPreferences_2)) {
+			if (infosAnnotTypeSelectedLink != null) infosAnnotTypeSelectedLink.setEnabled(getSelectedAnnotationType() != null);
+		}
+		if (addTypedValueLink != null) addTypedValueLink.setEnabled(getSelectedAnnotationType() != null);
+
+		if (concordance == null) {
+			affectAnnotationButton.setEnabled(false);
+			affectCombo.setEnabled(false);
+		}
+	}
+
+	protected void deleteAnnotationValues(List<Match> matches, AnnotationType type, JobHandler job) {
+		if (concordance == null) return;
+		if (matches.size() == 0) {
+			System.out.println("No lines selected. Aborting."); //$NON-NLS-1$
+			return;
+		}
+		if (type == null) return;
+
+		if (concordance != null) {
+			try {
+				if (annotManager != null && annotManager.deleteAnnotations(type, matches, job)) {
+					if (Log.getLevel().intValue() < Level.WARNING.intValue()) annotManager.checkData();
+					concordance.reloadLines(topLine, bottomLine);
+				} else {
+					return;
+				}
+			} catch (Exception e1) {
+				System.out.println(Messages.ConcordancesEditor_54+e1);
+				Log.printStackTrace(e1);
+				return;
+			}
+
+			job.syncExec(new Runnable() {
+				@Override
+				public void run() {
+					fillDisplayArea(topLine, bottomLine+1);
+					CorporaView.refreshObject(corpus);
+				}
+			});
+		}
+	}
+
+	TypedValue value_to_add;
+	protected void affectAnnotationValues(final List<Match> matches,  final AnnotationType type, final String svalue, JobHandler job) {
+		value_to_add = null; // reset
+		if (concordance == null) {
+			System.out.println("No concordance done. Aborting."); //$NON-NLS-1$
+			return;
+		}
+		if (matches.size() == 0) {
+			System.out.println("No line selected. Aborting."); //$NON-NLS-1$
+			return;
+		}
+		if (type == null) return; // no type, no annotation
+
+		job.syncExec(new Runnable() {
+			@Override
+			public void run() {
+				if (matches.size() > NALERTAFFECTANNOTATIONS) {
+					ConfirmDialog dialog = new ConfirmDialog(Display.getCurrent().getActiveShell(), 
+							"confirm_annotate",  //$NON-NLS-1$
+							Messages.ConcordancesEditor_86, 
+							Messages.ConcordancesEditor_87+matches.size()+Messages.ConcordancesEditor_108);
+
+					if (dialog.open() == ConfirmDialog.CANCEL) {
+						System.out.println("Annotation aborted by user."); //$NON-NLS-1$
+						matches.clear();
+					}
+				}
+			}
+		});
+
+		// get value from combo text value
+		Log.warning(Messages.ConcordancesEditor_57+svalue);
+		final KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(type.getKnowledgeRepository());
+		value_to_add = kr.getValue(type, svalue);
+
+
+		if (value_to_add == null && kr instanceof LocalKnowledgeRepository) { // create or not the annotation is simple mode
+			job.syncExec(new Runnable() {
+				@Override
+				public void run() {
+					String title = kr.getString(locale, "ConcordancesEditor_110");
+					String content = kr.getString(locale, "ConcordancesEditor_112");
+					if (title == null ) title = Messages.ConcordancesEditor_110;
+					if (content == null ) content = Messages.ConcordancesEditor_112;
+					ConfirmDialog dialog = new ConfirmDialog(Display.getCurrent().getActiveShell(), 
+							"create_value", //$NON-NLS-1$
+							Messages.bind(title, svalue, type.getName()),  
+							Messages.bind(content, svalue, type.getName()));
+					if (dialog.open() == ConfirmDialog.CANCEL) {
+						System.out.println("Annotation aborted by user."); //$NON-NLS-1$
+						return;
+					} else {
+						value_to_add = kr.addValue(svalue, svalue, type.getId());
+						KRView.refresh();
+					}
+				}
+			});
+		}
+
+		if (value_to_add == null && kr instanceof LocalKnowledgeRepository) return; // canceled
+
+		if (value_to_add == null) {	
+			job.syncExec(new Runnable() {
+				@Override
+				public void run() {
+					String mess = Messages.bind(Messages.ConcordancesEditor_58, svalue);
+					System.out.println(mess);
+					MessageDialog.openError(Display.getCurrent().getActiveShell(), "Annotation canceled", mess); //$NON-NLS-1$
+				}
+			});
+			return;
+		}
+
+		Log.info(Messages.ConcordancesEditor_59+value_to_add+Messages.ConcordancesEditor_60+matches);
+
+		// finally we can 'try' to create the annotations \o/
+		try {
+			HashMap<Match, List<Annotation>> existingAnnots = annotManager.createAnnotations(type, value_to_add, matches, job);
+			
+			// did we had problems ?
+			if (existingAnnots!=null && existingAnnots.size() > 0) {
+				String message = Messages.ConcordancesEditor_61+value_to_add.getStandardName()+
+						Messages.ConcordancesEditor_62;
+				for (Match m : existingAnnots.keySet()) {
+					message += Messages.ConcordancesEditor_63+m+Messages.ConcordancesEditor_64;
+
+					for (Annotation existingAnnot : existingAnnots.get(m)) {
+						if (existingAnnot.getStart() < m.getStart()){
+							message += Messages.ConcordancesEditor_65+existingAnnot.getType()+Messages.ConcordancesEditor_66+existingAnnot.getStart()+Messages.ConcordancesEditor_67+existingAnnot.getEnd()+Messages.ConcordancesEditor_68;
+						} else {
+							message += Messages.ConcordancesEditor_69+existingAnnot.getType()+Messages.ConcordancesEditor_70+existingAnnot.getStart()+Messages.ConcordancesEditor_71+existingAnnot.getEnd()+Messages.ConcordancesEditor_72;
+						}
+					}
+				}
+				final String final_message = message;
+				job.syncExec(new Runnable() {
+					@Override
+					public void run() {
+						MessageDialog.openInformation(getSite().getShell(), Messages.ConcordancesEditor_73, final_message);
+					}
+				});
+			}
+			//				if (history != null && !history.get(type).contains(value_to_add))
+			//					history.get(type).add(value_to_add);
+
+			if (Log.getLevel().intValue() < Level.WARNING.intValue() && annotManager != null) annotManager.checkData();
+			concordance.reloadLines(topLine, bottomLine+1);
+		} catch (Exception e1) {
+			System.out.println(Messages.ConcordancesEditor_74+e1);
+			Log.printStackTrace(e1);
+			return;
+		}
+
+		job.syncExec(new Runnable() {
+			@Override
+			public void run() {
+				fillDisplayArea(topLine, bottomLine+1);
+				CorporaView.refreshObject(corpus);
+			}
+		});
+
+	}
+
+	/**
+	 * Compose control area.
+	 *
+	 * @param controlArea the control area
+	 */
+	private void composeControlArea(final Composite controlArea) {
+		GridLayout controlLayout = new GridLayout(1, false);
+		controlLayout.verticalSpacing = 0;
+		controlLayout.marginWidth = 0;
+		controlLayout.marginHeight = 0;
+		controlArea.setLayout(controlLayout);
+
+		// Query Area: query itself + view properties
+		queryArea = new Composite(controlArea, SWT.NONE);
+		queryArea.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
+		queryArea.setLayout(new GridLayout(4, false));
+
+		////////////////////////////////
+		//composeAnnotationArea(controlArea);
+		//////////////////////////////////
+
+		Composite navigationPanel = new Composite(controlArea, SWT.NONE);
+		navigationPanel.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
+		GridLayout navigationLayout = new GridLayout(7, false); 
+		navigationLayout.verticalSpacing = 0;
+		navigationLayout.marginWidth = 0;
+		navigationLayout.marginHeight = 0;
+		navigationPanel.setLayout(navigationLayout);
+		///////////////////////////
+		// | Query: [ (v)] [Search] |
+
+		// Query:
+		Label queryLabel = new Label(queryArea, SWT.NONE);
+		queryLabel.setText(Messages.CreateSubcorpusDialog_10);
+		queryLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				false));
+
+		// [ (v)]
+		// queryWidget = new QueryWidget(queryArea, SWT.DROP_DOWN);
+		queryWidget = new AssistedQueryWidget(queryArea, SWT.DROP_DOWN, corpus);
+		queryWidget.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
+		queryWidget.addKeyListener(new KeyListener() {
+			@Override
+			public void keyPressed(KeyEvent e) {
+				// System.out.println("key pressed : "+e.keyCode);
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					compute();
+				}
+			}
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+			}
+		});
+
+		// | Properties: word/pos [Edit] |
+		Composite propertiesArea = new Composite(queryArea, SWT.NONE);
+		propertiesArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
+				false, 1, 1));
+		propertiesArea.setLayout(new GridLayout(3, false));
+		// Properties:
+		Label propLabel = new Label(propertiesArea, SWT.NONE);
+		propLabel.setText(Messages.ConcordancesEditor_16);
+		propLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, true));
+
+		// word/pos
+		viewPropertiesLabel = new Label(propertiesArea, SWT.NONE);
+		viewPropertiesLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER,
+				false, true));
+		this.updateViewPropertiesLabel();
+
+		// [Edit]
+		Button editViewProperties = new Button(propertiesArea, SWT.PUSH);
+		editViewProperties.setText(Messages.ConcordancesEditor_18);
+		editViewProperties.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, true));
+		editViewProperties.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ConcordancesEditor_55);
+				new ViewPropertySelectionDialog(getSite(),
+						availableKeywordViewProperties,
+						selectedKeywordViewProperties).open();
+				if (concordance != null)
+					try {
+						refreshViewProperties();
+					} catch (Exception e1) {
+						System.err.println(NLS.bind(
+								Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE,
+								e1));
+					}
+				updateViewPropertiesLabel();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// [Search]
+		Button go = new Button(queryArea, SWT.PUSH);
+		go.setText(Messages.IndexEditor_4);
+
+		Font f = go.getFont();
+		FontData defaultFont = f.getFontData()[0];
+		defaultFont.setStyle(SWT.BOLD);
+		Font newf = new Font(go.getDisplay(), defaultFont);
+		go.setFont(newf);
+
+		go.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+		go.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// Complex sort chooser (full line)
+		complexsorter = new ComplexSortSelector(queryArea, SWT.NONE);
+		complexsorter.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				true, 4, 1));
+
+		// Delete line button
+		deleteLineButton = new Button(navigationPanel, SWT.PUSH);
+		deleteLineButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false,
+				false));
+		deleteLineButton.setToolTipText(Messages.ConcordancesEditor_88);
+		deleteLineButton.setImage(IImageKeys.getImage(IImageKeys.CONCORDANCE_DELETE));
+		deleteLineButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				DeleteLines.deleteConcordanceLines(ConcordancesEditor.this);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+
+
+		if (corpus.getKnowledgeRepositoryNames().size() > 0) { // shown only if corpus has a registered KR
+
+			annotationButton = new Button(navigationPanel, SWT.PUSH);
+			annotationButton.setToolTipText(Messages.ConcordancesEditor_75);
+			annotationButton.setImage(IImageKeys.getImage(IImageKeys.PENCIL));
+			annotationButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (annotationArea != null) {
+						AnnotationManager am = corpus.getMainCorpus().getAnnotationManager();
+						if (am != null && am.hasChanges()) {
+							// && MessageDialog.openConfirm(e.display.getActiveShell(), "Confirm annotation save", "Saving annotation will close this editor. Are you sure you want to save annotations right now ?")
+							JobHandler saveJob = SaveAnnotations.save(corpus.getMainCorpus());
+							if (saveJob.getResult() == Status.CANCEL_STATUS) {
+								// update editor corpus
+								System.out.println("Fail to save annotations of the corpus."); //$NON-NLS-1$
+							}
+						}
+
+					} else {
+						if (annotationArea == null) composeAnnotationArea(controlArea);
+						if (annotationArea == null) return;
+
+						annotationColumn.pack();
+						annotationButton.setToolTipText(Messages.ConcordancesEditor_76);
+						annotationButton.setImage(IImageKeys.getImage(IImageKeys.PENCIL_SAVE));
+
+						annotSize = annotationArea.getSize();
+						Point size = controlArea.getSize();
+						controlArea.setSize(size.x, size.y + annotSize.y);
+						GridData data = (GridData) annotationArea.getLayoutData();
+						data.heightHint = annotSize.y;
+						data.minimumHeight = annotSize.y;
+						annotationArea.setSize(annotSize);
+						controlArea.layout(true);
+						parent.layout();
+
+						if (concordance != null) {
+							AnnotationType type = getSelectedAnnotationType();
+							if (type != null) {
+								concordance.setViewAnnotation(type);
+								concordance.setAnnotationOverlap(true);
+								fillDisplayArea(topLine, bottomLine+1);
+							}
+						}
+
+						CorporaView.refreshObject(corpus);
+					}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {	}
+			});
+		}
+		// Navigation Area: infoLine and buttons
+				navigationArea = new NavigationWidget(navigationPanel, SWT.NONE);
+				navigationArea.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, false, 4, 1));
+
+				// | [|<] [<] infos [>] [>|] |
+				// [|<]
+				navigationArea.addFirstListener(new SelectionListener() {
+					@Override
+					public void widgetDefaultSelected(SelectionEvent arg0) {
+					}
+
+					@Override
+					public void widgetSelected(SelectionEvent arg0) {
+						fillDisplayArea(0, nLinePerPage - 1);
+					}
+				});
+
+				// [<]
+				navigationArea.addPreviousListener(new SelectionListener() {
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) {
+					}
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						int top = topLine - nLinePerPage;
+						if (top < 0)
+							top = 0;
+						int bottom = top + nLinePerPage -1 ;
+						fillDisplayArea(top, bottom);
+					}
+				});
+
+				// [>]
+				navigationArea.addNextListener(new SelectionListener() {
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) {
+					}
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						fillDisplayArea(bottomLine + 1, bottomLine + nLinePerPage);
+					}
+				});
+
+				// [>|]
+				navigationArea.addLastListener(new SelectionListener() {
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) {
+					}
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						int top = (concordance.getNLines()/nLinePerPage)*nLinePerPage;
+						int bottom = top + nLinePerPage -1 ;
+						fillDisplayArea(top, bottom);
+						//fillDisplayArea(concordance.getNLines() - 1 - nLinePerPage,concordance.getNLines() - 1);
+					}
+				});
+		hideBtn = new Button(navigationPanel, SWT.PUSH);
+		hideBtn.setText(Messages.ConcordancesEditor_38);
+		hideBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (isSetupShown) { // must hide
+					//System.out.println("hide");
+					hideBtn.setText(Messages.ConcordancesEditor_39);
+					querySize = queryArea.getSize();
+					//queryArea.setVisible(false);
+					Point size = controlArea.getSize();
+					controlArea.setSize(size.x, size.y - querySize.y);
+					queryArea.setSize(0,0);
+					GridData data = (GridData) queryArea.getLayoutData();
+					data.heightHint = 0;
+					data.minimumHeight = 0;
+					controlArea.layout(true);
+					isSetupShown = false;
+					parent.layout();
+				} else {
+					//System.out.println("show");
+					hideBtn.setText(Messages.ConcordancesEditor_38);
+					//queryArea.setVisible(true);
+					Point size = controlArea.getSize();
+					controlArea.setSize(size.x, size.y + querySize.y);
+					GridData data = (GridData) queryArea.getLayoutData();
+					data.heightHint = querySize.y;
+					data.minimumHeight = querySize.y;
+					queryArea.setSize(querySize);
+					controlArea.layout(true);
+					isSetupShown = true;
+					parent.layout();
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {	}
+		});
+
+		//		List<String> krnames = corpus.getKnowledgeRepositoryNames();
+		//		if (krnames==null){
+		//			System.out.println("Corpus "+corpus.getName()+" has no KR ");
+		//		}else {
+		//			
+		//			for(String krname : krnames){
+		//				System.out.println("Corpus "+corpus.getName()+" has KR "+krname);
+		//			}
+		//		}
+
+		queryArea.layout();
+		if (complexsorter != null)
+			complexsorter.setComparators(this);
+	}
+
+	/**
+	 * Computes the concordance and fills the display area with the specified lines range.
+	 * @param top
+	 * @param bottom
+	 */
+	public void compute(int top, int bottom, boolean fillDisplay) {
+		StatusLine.setMessage(Messages.ConcordancesEditor_56);
+		Query query = new Query(queryWidget.getQueryString());
+
+		String cql_limit = null;
+		if (cqlSeparator != null) cql_limit = cqlSeparator.getText();
+		if (cql_limit != null && cql_limit.trim().length() == 0) cql_limit = null;
+		if (cql_limit == null) cql_limit = corpus.getCQLLimitQuery();
+
+		//if (true)// concordance==null || concordance.getQuery()!=query)
+		try {
+			JobsTimer.start();
+			Concordance oldConcordance = concordance;
+			System.out.println(NLS.bind(Messages.ConcordancesEditor_5, query.getQueryString(), corpus.getName()));
+			concordance = new Concordance(corpus, query,
+					selectedLeftSortProperties, 
+					selectedRightSortProperties,
+					selectedKeywordSortProperties,
+					selectedLeftViewProperties,
+					selectedRightViewProperties,
+					selectedKeywordViewProperties,
+					getViewReferencePattern(),
+					getSortReferencePattern(),
+					leftContextSize, rightContextSize);
+
+			concordance.setCQLSeparator(cql_limit);
+
+			if (annotationArea != null) {
+				AnnotationType type = getSelectedAnnotationType();
+				if (type != null) {
+					concordance.setViewAnnotation(type);
+					concordance.setAnnotationOverlap(true);
+				}
+			}
+			StatusLine.setMessage(NLS.bind(Messages.ConcordancesEditor_19, concordance.getNLines()));
+			if (concordance.getNLines() == 1)
+				System.out.println(Messages.ConcordancesEditor_52);
+			else if (concordance.getNLines() > 0)
+				System.out.println(NLS.bind(Messages.ConcordancesEditor_19, concordance.getNLines()));
+			else
+				System.out.println(Messages.IndexEditor_31);
+
+			// FIXXME: SYNC
+			//			if (oldConcordance != null)
+			//				corpus.removeResult(oldConcordance);
+			//			corpus.storeResult(concordance);
+			if (oldConcordance != null) {
+				corpus.removeResult(oldConcordance);
+				oldConcordance.cleanMemory(); // drop the CQP corpus
+			}
+			corpus.storeResult(concordance);
+
+			CorporaView.refresh();
+			CorporaView.expand(corpus);
+			QueriesView.refresh();
+			RVariablesView.refresh();
+
+			// FIXME: SYNC
+			if (fillDisplay) {
+				fillDisplayArea(top, bottom);
+			}
+
+			setPartName(concordance.getName());
+			queryWidget.memorize();
+
+			resetColumnWidths();
+
+			updateAnnotationWidgetStates();
+			JobsTimer.stopAndPrint();
+
+
+			((ConcordancesEditorInput)this.getEditorInput()).setConcordance(concordance);
+
+			JobsTimer.stopAndPrint();
+
+		} catch (Exception e1) {
+			System.err.println(Messages.CorporaView_3+" "+Log.toString(e1)); //$NON-NLS-1$
+			//System.err.println(Messages.CorporaView_3);
+			//org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			try {
+				System.out.println(Messages.LastCQPError+Toolbox.getCqiClient().getLastCQPError());
+				Log.severe(Messages.LastCQPError+Toolbox.getCqiClient().getLastCQPError());
+			} catch (Exception e2) {
+				System.out.println(Messages.ConcordancesEditor_7+e2);
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				Log.severe(Log.toString(e1));
+			}
+			
+		}
+	}
+
+
+	/**
+	 * Computes the concordance and fills the display area with lines range corresponding to the first page.
+	 */
+	public void compute() {
+		this.compute(true);
+	}
+
+	/**
+	 * Computes the concordance and fills the display area with lines range corresponding to the first page.
+	 * @param fillDisplay
+	 */
+	public void compute(boolean fillDisplay) {
+		this.compute(0, nLinePerPage - 1, fillDisplay);
+	}
+
+	/**
+	 * Sets the line per page.
+	 *
+	 * @param nb the new line per page
+	 */
+	public void setLinePerPage(int nb) {
+		this.nLinePerPage = nb;
+	}
+
+	/**
+	 * Gets the line per page.
+	 *
+	 * @return the line per page
+	 */
+	public int getLinePerPage() {
+		return nLinePerPage;
+	}
+
+	/**
+	 * Update view properties label.
+	 */
+	void updateViewPropertiesLabel() {
+		StringBuffer buffer = new StringBuffer();
+		Iterator<Property> it = selectedKeywordViewProperties.iterator();
+		if (it.hasNext())
+			buffer.append(it.next().getName());
+		while (it.hasNext())
+			buffer.append("_" + it.next().getName()); //$NON-NLS-1$
+		viewPropertiesLabel.setText(buffer.toString());
+		viewPropertiesLabel.getParent().layout();
+		viewPropertiesLabel.update();
+		queryArea.layout();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#getTitleToolTip()
+	 */
+	@Override
+	public String getTitleToolTip() {
+		if (concordance != null) {
+			StringBuffer buf = new StringBuffer();
+			buf.append("Concordance:\n"); //$NON-NLS-1$
+			buf.append("\tCorpus: " + corpus.getName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf
+			.append("\tQuery: " + concordance.getQuery().getQueryString() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf
+			.append("\tView properties: " + viewPropertiesLabel.getText() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf
+			.append("\tLeft Context Sort property: " + selectedLeftSortProperties + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf
+			.append("\tKeyword Sort property: " + selectedKeywordSortProperties + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf
+			.append("\right Context Sort property: " + selectedRightSortProperties + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf.append("\tReference View Pattern: " + refViewPattern + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			buf.append("\tReference Sort Pattern: " + refSortPattern + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
+			return buf.toString();
+		}
+		return ""; //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the reference pattern.
+	 *
+	 * @return the reference pattern
+	 */
+	ReferencePattern getViewReferencePattern() {
+		return refViewPattern;
+	}
+
+	/**
+	 * Gets the reference pattern.
+	 *
+	 * @return the reference pattern
+	 */
+	ReferencePattern getSortReferencePattern() {
+		return refSortPattern;
+	}
+
+	/**
+	 * Sets the left sort properties.
+	 *
+	 * @param list the new left sort properties
+	 */
+	public void setLeftSortProperties(List<Property> list) {
+		this.selectedLeftSortProperties = list;
+	}
+
+	/**
+	 * Sets the keyword sort properties.
+	 *
+	 * @param list the new keyword sort property
+	 */
+	public void setKeywordSortProperties(List<Property> list) {
+		this.selectedKeywordSortProperties = list;
+		if (concordance != null) {
+			try {
+				concordance.setAnalysisProperty(list);
+			} catch (Exception e) {
+				System.err.println(NLS.bind(
+						Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+			}
+			sort();
+		}
+	}
+
+	/**
+	 * Sets the right sort properties.
+	 *
+	 * @param list the new right sort properties
+	 */
+	public void setRightSortProperties(List<Property> list) {
+		this.selectedRightSortProperties = list;
+		if (concordance != null) {
+			try {
+				concordance.setAnalysisProperty(list);
+			} catch (Exception e) {
+				System.err.println(NLS.bind(
+						Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+			}
+			sort();
+		}
+	}
+
+	/**
+	 * Sets the view reference pattern.
+	 *
+	 * @param referencePattern the new reference pattern
+	 */
+	public void setRefViewPattern(ReferencePattern referencePattern) {
+		this.refViewPattern = referencePattern;
+
+		if (concordance != null) {
+			concordance.setRefViewPattern(referencePattern);
+			//			int top = topLine;
+			//			int bottom = bottomLine;
+			//
+			sort();
+			//fillDisplayArea(top, bottom); // we return to the previously
+
+			// displayed page
+		}
+	}
+
+	/**
+	 * Sets the sort reference pattern.
+	 *
+	 * @param referencePattern the new reference pattern
+	 */
+	public void setRefSortPattern(ReferencePattern referencePattern) {
+		this.refSortPattern = referencePattern;
+
+		if (concordance != null) {
+			concordance.setRefAnalysePattern(referencePattern);
+			//			int top = topLine;
+			//			int bottom = bottomLine;
+			sort();
+			//fillDisplayArea(top, bottom); // we return to the previously
+			// displayed page
+		}
+	}
+
+	/**
+	 * Sets the context size.
+	 *
+	 * @param leftContextSize the left context size
+	 * @param rightContextSize the right context size
+	 */
+	public void setContextSize(int leftContextSize, int rightContextSize) {
+		this.leftContextSize = leftContextSize;
+		this.rightContextSize = rightContextSize;
+		if (concordance != null) {
+			concordance.setLeftContextSize(leftContextSize);
+			concordance.setRightContextSize(rightContextSize);
+			int top = topLine;
+			int bottom = bottomLine;
+			//sort();
+			fillDisplayArea(top, bottom); // we return to the previously
+			// displayed page
+		}
+	}
+
+	/**
+	 * Creates the context menu.
+	 */
+	private void createContextMenu() {
+		createActions();
+
+		// store the mouse position
+		viewer.getTable().addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDown(MouseEvent arg0) {
+
+				if (arg0.button == 3)
+					mouseposition = new Point(arg0.x, arg0.y);
+				//				System.out.println("arg.x="+arg0.x);
+				//				System.out.println("arg.y="+arg0.y);
+				//				System.out.println("hbar: "+lineTableViewer.getTable().getHorizontalBar().getSelection());
+				//				System.out.println("vbar: "+lineTableViewer.getTable().getVerticalBar().getSelection());
+				//				System.out.println("Col: "+getPointedColumn());
+			}
+		});
+		MenuManager menuManager = new MenuManager(); //$NON-NLS-1$
+		Menu menu = menuManager.createContextMenu(viewer.getTable());
+		menuManager.setRemoveAllWhenShown(true);
+		menuManager.addMenuListener(new IMenuListener() {
+			@Override
+			public void menuAboutToShow(IMenuManager manager) {
+				IWorkbenchPartSite site = ConcordancesEditor.this.getSite();
+				site.getPage().activate(ConcordancesEditor.this);
+				// manager.add(computeCoocAction);
+
+				//manager.add(computeIndexAction);
+				manager.add(defineViewReferencePatternAction);
+				manager.add(defineSortReferencePatternAction);
+				manager.add(setViewPropertyAction);
+				manager.add(setSortPropertyAction);
+				manager.add(new Separator());
+				//manager.add(complexSortAction);
+				manager.add(setContextSizeAction);
+				//manager.add(resetColumnWidths); // don't work properly
+				manager.add(setLineNumberAction);
+				manager.add(new Separator());
+				//manager.add(backToTextAction);
+			}
+		});
+
+		//viewer.getTable().setMenu(menuManager.createContextMenu(viewer.getTable()));
+		viewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, viewer);
+		getSite().setSelectionProvider(viewer);
+	}
+
+	/**
+	 * Gets the mouse position.
+	 *
+	 * @return the mouse position
+	 */
+	private Point getMousePosition() {
+		return this.mouseposition;
+	}
+
+	/**
+	 * return the column under the mouse pointer.
+	 *
+	 * @return the pointed column
+	 */
+	public int getPointedColumn() {
+		int x = getMousePosition().x; // + lineTableViewer.getTable().get;
+		int sumWidthColumn = this.referenceColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 0;
+
+		sumWidthColumn += this.leftContextColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 1;
+
+		sumWidthColumn += this.keywordColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 2;
+
+		sumWidthColumn += this.rightContextColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 3;
+
+		return 0;
+	}
+
+	/**
+	 * Creates the actions.
+	 */
+	private void createActions() {
+		setSortPropertyAction = new SortPropertySelection(getSite()
+				.getWorkbenchWindow(), this, this.viewer);
+		setContextSizeAction = new SetContextSize(getSite()
+				.getWorkbenchWindow(), this);
+		//resetColumnWidths = new ResetColumnWidths(getSite().getWorkbenchWindow(), this);
+		setLineNumberAction = new SetLineNumber(getSite().getWorkbenchWindow(),
+				this);
+		defineViewReferencePatternAction = new DefineViewReferencePattern(getSite()
+				.getWorkbenchWindow(), this);
+		defineSortReferencePatternAction = new DefineSortReferencePattern(getSite()
+				.getWorkbenchWindow(), this);
+		setViewPropertyAction = new ViewPropertySelection(getSite()
+				.getWorkbenchWindow(), this, this.viewer);
+	}
+
+	/**
+	 * Gets the concordance.
+	 *
+	 * @return the concordance
+	 */
+	public Concordance getConcordance() {
+		return concordance;
+	}
+
+	/**
+	 * Gets the available sort properties.
+	 *
+	 * @return the available sort properties
+	 */
+	public List<Property> getAvailableSortProperties() {
+		return availableKeywordSortProperties;
+	}
+
+	/**
+	 * Gets the user defined comparators.
+	 *
+	 * @return the user defined comparators
+	 */
+	public List<LineComparator> getUserDefinedComparators() {
+		return userDefinedComparators;
+	}
+
+	/**
+	 * Sets the user defined comparators.
+	 *
+	 * @param userDefinedComparators the new user defined comparators
+	 */
+	public void setUserDefinedComparators(
+			List<LineComparator> userDefinedComparators) {
+		this.userDefinedComparators = userDefinedComparators;
+	}
+
+	/**
+	 * Sets the current comparator.
+	 *
+	 * @param comparator the new current comparator
+	 */
+	public void setCurrentComparator(LineComparator comparator) {
+		this.currentComparator = comparator;
+	}
+
+	/**
+	 * Gets the standard comparators.
+	 *
+	 * @return the standard comparators
+	 */
+	public List<LineComparator> getStandardComparators() {
+		return standardComparators;
+	}
+
+	/**
+	 * Gets the top line.
+	 *
+	 * @return the top line
+	 */
+	public int getTopLine() {
+		return topLine;
+	}
+
+	/**
+	 * Gets the bottom line.
+	 *
+	 * @return the bottom line
+	 */
+	public int getBottomLine() {
+		return bottomLine;
+	}
+
+	/**
+	 * Gets the left context size.
+	 *
+	 * @return the left context size
+	 */
+	public int getLeftContextSize() {
+		return leftContextSize;
+	}
+
+	/**
+	 * Gets the right context size.
+	 *
+	 * @return the right context size
+	 */
+	public int getRightContextSize() {
+		return rightContextSize;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		if (this.queryWidget == null) return;
+		this.queryWidget.setFocus();
+	}
+
+	/**
+	 * refresh column display accordingly to the views properties.
+	 */
+	private void refreshViewProperties() {
+		if (concordance != null) {
+			concordance.setViewProperties(
+					selectedLeftViewProperties,
+					selectedRightViewProperties,
+					selectedKeywordViewProperties);
+			sort();
+			//fillDisplayArea(topLine, bottomLine);
+		}
+	}
+
+	/**
+	 * Refresh sort properties.
+	 */
+	private void refreshSortProperties() {
+		if (concordance != null) {
+			try {
+				concordance.setLeftAnalysisProperties(selectedLeftSortProperties);
+				concordance.setRightAnalysisProperties(selectedRightSortProperties);
+				concordance.setKeywordAnalysisProperties(selectedKeywordSortProperties);
+			} catch (Exception e) {
+				System.err.println(NLS.bind(
+						Messages.ERROR_WHILE_LOADING_CONCORDANCE_LINE, e));
+			}
+			sort();
+		}
+	}
+
+	/**
+	 * Sets the left c view properties.
+	 *
+	 * @param selectedViewProperties the new left c view properties
+	 */
+	public void setLeftViewProperties(List<Property> selectedViewProperties) {
+		this.selectedLeftViewProperties = selectedViewProperties;
+		refreshViewProperties();
+	}
+
+	/**
+	 * Sets the right c view properties.
+	 *
+	 * @param selectedViewProperties the new right c view properties
+	 */
+	public void setRightViewProperties(List<Property> selectedViewProperties) {
+		this.selectedRightViewProperties = selectedViewProperties;
+		refreshViewProperties();
+	}
+
+	/**
+	 * Sets the keyword view properties.
+	 *
+	 * @param selectedViewProperties the new keyword view properties
+	 */
+	public void setKeywordViewProperties(List<Property> selectedViewProperties) {
+		this.selectedKeywordViewProperties = selectedViewProperties;
+		refreshViewProperties();
+		updateViewPropertiesLabel();
+	}
+
+	/**
+	 * Refresh reference column title.
+	 */
+	public void refreshReferenceColumnTitle()
+	{
+		if (refViewPattern == null) {
+			referenceColumn.setText(Messages.ConcordancesEditor_1);
+		} else if (refViewPattern.getProperties().size() == 0) {
+			referenceColumn.setText(Messages.ConcordancesEditor_1);
+		} else {
+			referenceColumn.setText(refViewPattern.getTitle());
+		}
+	}
+
+	/**
+	 * Gets the selected left c view properties.
+	 *
+	 * @return the selected left c view properties
+	 */
+	public List<Property> getSelectedLeftViewProperties() {
+		return this.selectedLeftViewProperties;
+	}
+
+	/**
+	 * Gets the selected keyword view properties.
+	 *
+	 * @return the selected keyword view properties
+	 */
+	public List<Property> getSelectedKeywordViewProperties() {
+		return this.selectedKeywordViewProperties;
+	}
+
+	/**
+	 * Gets the selected right c view properties.
+	 *
+	 * @return the selected right c view properties
+	 */
+	public List<Property> getSelectedRightViewProperties() {
+		return this.selectedRightViewProperties;
+	}
+
+	/**
+	 * Gets the selected left c sort properties.
+	 *
+	 * @return the selected left c sort properties
+	 */
+	public List<Property> getSelectedLeftSortProperties() {
+		return this.selectedLeftSortProperties;
+	}
+
+	/**
+	 * Gets the selected keyword sort properties.
+	 *
+	 * @return the selected keyword sort properties
+	 */
+	public List<Property> getSelectedKeywordSortProperties() {
+		return this.selectedKeywordSortProperties;
+	}
+
+	/**
+	 * Gets the selected right c sort properties.
+	 *
+	 * @return the selected right c sort properties
+	 */
+	public List<Property> getSelectedRightSortProperties() {
+		return this.selectedRightSortProperties;
+	}
+
+	/**
+	 * Gets the available left c view properties.
+	 *
+	 * @return the available left c view properties
+	 */
+	public List<Property> getAvailableLeftViewProperties() {
+		return availableLeftViewProperties;
+	}
+
+	/**
+	 * Gets the available keyword view properties.
+	 *
+	 * @return the available keyword view properties
+	 */
+	public List<Property> getAvailableKeywordViewProperties() {
+		return availableKeywordViewProperties;
+	}
+
+	/**
+	 * Gets the available right c view properties.
+	 *
+	 * @return the available right c view properties
+	 */
+	public List<Property> getAvailableRightViewProperties() {
+		return availableRightViewProperties;
+	}
+
+	/**
+	 * Gets the available left sort properties.
+	 *
+	 * @return the available left sort properties
+	 */
+	public List<Property> getAvailableLeftSortProperties() {
+		return availableLeftSortProperties;
+	}
+
+	/**
+	 * Gets the available keyword sort properties.
+	 *
+	 * @return the available keyword sort properties
+	 */
+	public List<Property> getAvailableKeywordSortProperties() {
+		return availableKeywordSortProperties;
+	}
+
+	/**
+	 * Gets the available right sort properties.
+	 *
+	 * @return the available right sort properties
+	 */
+	public List<Property> getAvailableRightSortProperties() {
+		return availableRightSortProperties;
+	}
+
+	/**
+	 * Gets the selected references.
+	 *
+	 * @return the selected references
+	 */
+	public List<Property> getSelectedViewReferences() {
+		return refViewPattern.getProperties();
+	}
+
+	/**
+	 * Gets the selected references.
+	 *
+	 * @return the selected references
+	 */
+	public List<Property> getSelectedSortReferences() {
+		return refSortPattern.getProperties();
+	}
+
+	/**
+	 * Gets the line table viewer.
+	 *
+	 * @return the line table viewer
+	 */
+	public TableViewer getLineTableViewer() {
+		return viewer;
+	}
+
+	/**
+	 * Reset sorted column.
+	 *
+	 * @param col the col
+	 */
+	public void resetSortedColumn(int col) {
+		switch(col) {
+		case 1://keyword
+			viewer.getTable().setSortColumn(this.keywordColumn);
+			viewer.getTable().setSortDirection(SWT.DOWN);
+			break;
+		case 2://left
+			viewer.getTable().setSortColumn(this.leftContextColumn);
+			viewer.getTable().setSortDirection(SWT.DOWN);
+			break;
+		case 3://right
+			viewer.getTable().setSortColumn(this.rightContextColumn);
+			viewer.getTable().setSortDirection(SWT.DOWN);
+			break;
+		case 4://references
+			viewer.getTable().setSortColumn(this.referenceColumn);
+			viewer.getTable().setSortDirection(SWT.DOWN);
+			break;
+		default:
+			viewer.getTable().setSortColumn(null);
+			viewer.getTable().setSortDirection(SWT.NONE);
+		}
+
+	}
+
+	/*
+	/**
+	 * Back to text.
+
+	@SuppressWarnings("restriction") //$NON-NLS-1$
+	public void backToText() {
+		try {
+			StructuredSelection select = (StructuredSelection) viewer.getSelection();
+			if (select == null) return;
+			Line line = (Line) select.getFirstElement();
+			if (line == null) return;
+
+			StructuralUnit textS = null;
+			textid = ""; //$NON-NLS-1$
+			String baseid = ""; //$NON-NLS-1$
+
+			String projectid = ""; //$NON-NLS-1$
+			try {
+				textS = corpus.getStructuralUnit("text"); //$NON-NLS-1$
+				Property textP = textS.getProperty("id"); //$NON-NLS-1$
+				textid = line.getMatch().getValueForProperty(textP);// get text via text struc property id
+				// Log.info("Corpus' base ("+baseid+") : "+corpus.getParent());
+			} catch (Exception e2) {
+				System.out.println(Messages.ConcordancesEditor_8);
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e2);
+				return;
+			}
+
+			Log.info(Messages.ConcordancesEditor_20);
+
+			final List<String> wordids = concordance.getKeywordsId(
+					textid, getTopLine(), getBottomLine() + 1);
+
+			lineids = null;
+			try {
+				lineids = line.getMatch().getValuesForProperty(
+						corpus.getProperty("id")); //$NON-NLS-1$
+			} catch (Exception e1) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				return;
+			}
+			Log.info(NLS.bind(Messages.ConcordancesEditor_26, 
+					new Object[]{projectid, baseid, textid}));
+
+			Text text = corpus.getMainCorpus().getText(textid);
+			if (text == null) {
+				System.out.println(NLS.bind(Messages.ConcordancesEditor_27, textid));
+				StatusLine.setMessage(NLS.bind(Messages.ConcordancesEditor_27, textid));
+				Log.severe(NLS.bind(Messages.ConcordancesEditor_27, textid));
+				return;
+			}
+
+			Edition edition = text.getEdition(corpus.getMainCorpus().getDefaultEdition()); 
+			if (edition == null) {
+				System.out.println(Messages.ConcordancesEditor_30);
+				StatusLine.setMessage(Messages.ConcordancesEditor_30);
+				Log.severe(Messages.ConcordancesEditor_30);
+				return;
+			}
+
+			String line_wordid = lineids.get(0);
+			if (line_wordid == null) {
+				System.out.println(Messages.ConcordancesEditor_9+edition+Messages.ConcordancesEditor_10);
+				return;				
+			}
+			openedPage = edition.getPageForWordId(line_wordid);
+			if (openedPage != null) {
+				// System.out.println(page.getFile());
+				if (attachedBrowserEditor == null || attachedBrowserEditor.isDisposed()) {
+					attachedBrowserEditor = OpenBrowser.openEdition(openedPage.getFile().getAbsolutePath(), openedPage.getFile().getName());
+					if (attachedBrowserEditor != null) {
+						attachedBrowserEditor.setEdition(edition);
+					} else {
+						System.out.println("Fail to create Edition editor.");
+						return;
+					}
+				}
+
+				if (attachedBrowserEditor != null) {
+					attachedBrowserEditor.showPage(openedPage);
+					attachedBrowserEditor.setWordsIds(wordids, lineids);
+
+					IWorkbenchPage attachedPage = attachedBrowserEditor.getEditorSite().getPage();
+					attachedPage.activate(attachedBrowserEditor);
+				}
+			} else
+				System.out.println(NLS.bind(Messages.ConcordancesEditor_29, wordids.get(0)));
+		} catch (Exception err) {
+			Log.severe(NLS.bind(Messages.ConcordancesEditor_46, err));
+			Log.printStackTrace(err);
+		}
+	}
+	 */
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		//this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return concordance;
+	}
+
+	/**
+	 * Gets the current comparator used for sorting lines.
+	 * @return the currentComparator
+	 */
+	public LineComparator getCurrentComparator() {
+		return currentComparator;
+	}
+
+	/**
+	 * Gets the number of pages.
+	 * @return
+	 */
+	public int getPagesCount()	{
+		return (int) Math.ceil(((double)this.concordance.getNLines() / this.nLinePerPage));
+	}
+
+
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+
+	public void setQuery(String query) {
+		queryWidget.setText(query);
+	}
+
+
+	private static final String BACKTOTEXT_COMMAND_ID = "org.txm.rcp.extensionpoint.backtotext"; //$NON-NLS-1$
+	/**
+	 * Open the edition for the selected line.
+	 * The command used to show the edition is an EditionBackToText Extension
+	 */
+	public boolean backToText() {
+
+		StructuredSelection select = (StructuredSelection) viewer.getSelection();
+		if (select == null) return false;
+		Line line = (Line) select.getFirstElement();
+		if (line == null) return false;
+
+		try {
+			IConfigurationElement[] config = Platform.getExtensionRegistry()
+					.getConfigurationElementsFor(BACKTOTEXT_COMMAND_ID);
+			for (IConfigurationElement e : config) {
+				Object o = e.createExecutableExtension(Messages.ConcordancesEditor_78);
+				if (o instanceof BackToTextCommand) {
+					return ((BackToTextCommand) o).backToText(this, line);
+				}
+			}
+		} catch (CoreException e1) {
+			e1.printStackTrace();
+		}
+
+		// Last resort edition
+		InternalViewEditorInput editorInput = new InternalViewEditorInput(corpus, null);
+
+		IWorkbenchPage page = TXMWindows.getActiveWindow().getActivePage();
+		try {
+			StatusLine.setMessage(Messages.ComputeReferencer_0);
+			InternalViewEditor editor = (InternalViewEditor)page.openEditor(editorInput,"org.txm.rcpapplication.editors.internal.InternalViewEditor"); //$NON-NLS-1$
+			editor.backToText(line);
+			SWTEditorsUtils.addEditor(this, editor, EModelService.ABOVE);
+		} catch (PartInitException e) {
+			System.err.println(Messages.CorporaView_6+ e);
+		}
+
+		return false;
+
+		//		try {
+		//			StructuredSelection select = (StructuredSelection) viewer.getSelection();
+		//			if (select == null) return;
+		//			Line line = (Line) select.getFirstElement();
+		//			if (line == null) return;
+		//			org.txm.rcp.synoptic.commands.BackToText.backToText(line);
+		//		} catch(Exception err) {
+		//			System.out.println("Error while calling backtotext: "+err);
+		//			Log.printStackTrace(err);
+		//		}
+	}
+
+	public boolean isAnnotationEnable() {
+		return annotationArea != null;
+	}
+
+	public void resetColumnWidths() {
+
+		//		tableLayout.setColumnData(referenceColumn, new ColumnWeightData(10, true)); 
+		//		tableLayout.setColumnData(leftContextColumn, new ColumnWeightData(50, true));  
+		//		tableLayout.setColumnData(keywordColumn, new ColumnWeightData(10, true)); 
+		//		tableLayout.setColumnData(rightContextColumn, new ColumnWeightData(50, true));  
+		if (annotationArea != null) {
+			annotationColumn.pack();
+
+			annotationColumn.setResizable(true);
+			//			tableLayout.setColumnData(annotationColumn, new ColumnWeightData(10, true));
+		} else { 
+			annotationColumn.setWidth(0);
+			//			tableLayout.setColumnData(annotationColumn, new ColumnWeightData(0, false));
+		}
+
+		referenceColumn.pack();
+		leftContextColumn.pack();
+		keywordColumn.pack();
+		rightContextColumn.pack();
+
+		//viewer.getTable().layout(true, true);
+	}
+
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return this.corpus.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		ConcordancesEditorInput input = (ConcordancesEditorInput) this.getEditorInput();
+		input.setCorpus(corpus);
+		input.setConcordance(null);
+		initializeEditor();
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ConcordancesEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ReferenceLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ReferenceLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ReferenceLabelProvider.java	(revision 122)
@@ -0,0 +1,102 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.concordances;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReferenceLabelProvider.
+ *
+ * @deprecated @ author mdecorde
+ */
+@Deprecated
+public class ReferenceLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		if (columnIndex != 0)
+			throw new RuntimeException(Messages.LineLabelProvider_1);
+		Line line = (Line) element;
+		return line.getViewRef().toString();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+	 */
+	@Override
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.BaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/concordances/ReferenceLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditorActionBarContributor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditorActionBarContributor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditorActionBarContributor.java	(revision 122)
@@ -0,0 +1,46 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.ui.part.EditorActionBarContributor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SVGGraphicEditorActionBarContributor.
+ */
+public class SVGGraphicEditorActionBarContributor extends
+		EditorActionBarContributor {
+
+	/**
+	 * Instantiates a new sVG graphic editor action bar contributor.
+	 */
+	public SVGGraphicEditorActionBarContributor() {
+		// TODO Auto-generated constructor stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditorActionBarContributor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TxtEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TxtEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TxtEditor.java	(revision 122)
@@ -0,0 +1,180 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import java.io.File;
+
+import org.eclipse.jface.text.TextViewer;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.contexts.IContextActivation;
+import org.eclipse.ui.contexts.IContextService;
+import org.eclipse.ui.editors.text.IEncodingSupport;
+import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.utils.CharsetDetector;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxtEditor.
+ *
+ * @ author mdecorde
+ */
+public class TxtEditor extends TextEditor implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.TxtEditor"; //$NON-NLS-1$
+
+	/** The source. */
+	private Object source;
+
+	/**
+	 * Instantiates a new txt editor.
+	 */
+	public TxtEditor() {
+		super();
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		super.init(site, input);
+
+		setInput(input);
+		
+//		IContextService contextService = (IContextService)PlatformUI.getWorkbench()
+//				.getService(IContextService.class);
+//		IContextActivation activation = contextService.activateContext("org.eclipse.ui.textEditorScope");
+	}
+
+	@Override
+	public void createPartControl(final Composite parent) {
+		super.createPartControl(parent);
+		//guessEditedFileEncoding();
+	}
+
+	/**
+	 * Gets the edited file.
+	 *
+	 * @return the edited file
+	 */
+	public File getEditedFile() {
+		FileStoreEditorInput input = (FileStoreEditorInput) this.getEditorInput();
+		return new File(input.getURI().getPath());
+	}
+
+	public void guessEditedFileEncoding() {
+		File f = getEditedFile();
+		if (f != null && f.length() > CharsetDetector.MINIMALSIZE) {
+			IEncodingSupport encodingSupport = (IEncodingSupport) this.getAdapter(IEncodingSupport.class);
+			String encoding = new CharsetDetector(f).getEncoding();
+			if (encoding != null && encodingSupport != null) {
+				try {
+					encodingSupport.setEncoding(encoding);
+					System.out.println(Messages.TxtEditor_0+f+Messages.TxtEditor_1+encoding);
+				} catch(Throwable e) { }
+
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		StyledText fTextWidget = this.getSourceViewer().getTextWidget();
+		return source;
+	}
+
+	/* (non-Javadoc)
+	 */
+	public TextViewer getTextViewer() {
+		return ((TextViewer) this.getSourceViewer());
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TxtEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TestEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TestEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TestEditor.java	(revision 122)
@@ -0,0 +1,91 @@
+package org.txm.rcpapplication.editors;
+
+
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.CoolBar;
+import org.eclipse.swt.widgets.CoolItem;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.ToolBar;
+import org.eclipse.swt.widgets.ToolItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.swt.custom.StackLayout;
+import org.eclipse.wb.swt.SWTResourceManager;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.graphics.Rectangle;
+
+
+public class TestEditor extends EditorPart {
+
+	public static final String ID = "TestEMEditor"; //$NON-NLS-1$
+	private Button btnParameters;
+
+	public TestEditor() {
+	}
+
+	/**
+	 * Create contents of the editor part.
+	 * @param parent
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		parent.setLayout(null);
+		
+		btnParameters = new Button(parent, SWT.NONE);
+		btnParameters.setBounds(0, 0, 22, 22);
+		//btnParameters.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false, false, 1, 1));
+		btnParameters.setImage(SWTResourceManager.getImage(TestEditor.class, "/org/eclipse/jface/dialogs/images/popup_menu.gif")); //$NON-NLS-1$
+		
+		Composite composite = new Composite(parent, SWT.BORDER);
+		Rectangle rect = parent.getBounds();
+		composite.setBounds(0,0,rect.width,rect.height);
+	}
+
+	@Override
+	public void setFocus() {
+		// Set the focus
+	}
+
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// Do the Save operation
+	}
+
+	@Override
+	public void doSaveAs() {
+		// Do the Save As operation
+	}
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+	}
+
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TestEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableSorter.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableSorter.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableSorter.java	(revision 122)
@@ -0,0 +1,140 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import java.text.Collator;
+import java.util.Locale;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * copied from
+ * http://www.vogella.de/articles/EclipseJFaceTable/article.html#sortcolumns
+ * 
+ * @author sloiseau
+ * 
+ */
+public class TableSorter extends ViewerSorter {
+	
+	/** The locale. */
+	private Locale locale = new Locale("en", "US"); //$NON-NLS-1$ //$NON-NLS-2$
+
+	/** The property index. */
+	private int propertyIndex;
+	
+	/** The Constant DESCENDING. */
+	private static final int DESCENDING = 1;
+
+	/** The direction. */
+	private int direction = DESCENDING;
+	
+	/** The column types. */
+	private String[] columnTypes;
+	
+	/** The collator. */
+	private Collator collator;
+
+	/**
+	 * Instantiates a new table sorter.
+	 */
+	public TableSorter() {
+		this.propertyIndex = 0;
+		direction = DESCENDING;
+		this.collator = Collator.getInstance(locale);
+		this.collator.setStrength(Collator.TERTIARY);
+	}
+
+	/**
+	 * Sets the column types.
+	 *
+	 * @param types the new column types
+	 */
+	public void setColumnTypes(String[] types) {
+		columnTypes = types;
+	}
+
+	/**
+	 * Sets the column.
+	 *
+	 * @param column the new column
+	 */
+	public void setColumn(int column) {
+		if (column == this.propertyIndex) {
+			// Same column as last sort; toggle the direction
+			direction = 1 - direction;
+		} else {
+			// New column; do an ascending sort
+			this.propertyIndex = column;
+			direction = DESCENDING;
+		}
+		if (columnTypes != null && column >= columnTypes.length) {
+			throw new IllegalArgumentException(Messages.TableSorter_0);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	@Override
+	public int compare(Viewer viewer, Object e1, Object e2) {
+		int rc = 0;
+		if (propertyIndex == -1) {
+			return rc;
+		}
+
+		java.util.ArrayList<Object> a1 = (java.util.ArrayList<Object>) e1;
+		java.util.ArrayList<Object> a2 = (java.util.ArrayList<Object>) e2;
+
+		Object o1 = a1.get(this.propertyIndex);
+		Object o2 = a2.get(this.propertyIndex);
+
+		if (o1 instanceof String && o2 instanceof String) {
+			rc = collator.compare(o1, o2);
+		} else if (o1 instanceof Comparable){
+			rc = ((Comparable) o1).compareTo(o2);
+		}
+		if (direction == DESCENDING) {
+			rc = -rc;
+		}
+		return rc;
+	}
+
+	/**
+	 * Sets the locale.
+	 *
+	 * @param locale the new locale
+	 */
+	public void setLocale(Locale locale) {
+		this.locale = locale;
+		this.collator = Collator.getInstance(locale);
+		this.collator.setStrength(Collator.TERTIARY);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableSorter.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineContentProvider.java	(revision 122)
@@ -0,0 +1,81 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.index;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.functions.index.Line;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The IStructuredContentProvider used by the reference and line tables.
+ *
+ * @author jmague
+ */
+public class LineContentProvider implements IStructuredContentProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
+	 * .lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked")
+		List<Line> lines = (List<Line>) inputElement;
+		return lines.toArray();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
+	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/IndexEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/IndexEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/IndexEditor.java	(revision 122)
@@ -0,0 +1,1275 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.index;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.Toolbox;
+import org.txm.functions.index.Index;
+import org.txm.functions.index.Line;
+import org.txm.functions.index.LineComparator.SortMode;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.link.IndexToConcordance;
+import org.txm.rcpapplication.commands.link.IndexToProgression;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.rcpapplication.preferences.UserPreferencePage;
+import org.txm.rcpapplication.swt.widget.AssistedQueryWidget;
+import org.txm.rcpapplication.swt.widget.NavigationWidget;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * display the index parameters and result.
+ *
+ * @author mdecorde
+ */
+public class IndexEditor extends EditorPart implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.index.IndexEditor"; //$NON-NLS-1$
+
+	/** The self. */
+
+	/** The corpus. */
+	protected Corpus corpus;
+
+	/** The partition. */
+	protected Partition partition;
+
+	/** The index. */
+	protected Index index;
+	protected boolean saveIndex = true;
+
+	// params
+	/** The query label. */
+	protected Label queryLabel;
+
+	/** The query widget. */
+	protected AssistedQueryWidget queryWidget;
+
+	/** The go. */
+	protected Button go;
+
+	/** The props area. */
+	protected PropertiesSelector propsArea;
+	// seuils
+	/** The Fmin spinner. */
+	protected Spinner FminSpinner;
+
+	/** The Fmax spinner. */
+	protected Spinner FmaxSpinner;
+
+	/** The Tmax spinner. */
+	protected Spinner TmaxSpinner;
+
+	/** The N ligne p page spinner. */
+	protected Spinner NLignePPageSpinner;
+	// infos
+	/** The navigation area. */
+	protected NavigationWidget navigationArea;
+
+	/** The l fmin info. */
+	protected Label lFminInfo;
+
+	/** The l fmax info. */
+	protected Label lFmaxInfo;
+
+	/** The l v info. */
+	protected Label lVInfo;
+
+	/** The l t info. */
+	protected Label lTInfo;
+	// result
+	/** The line table viewer. */
+	protected TableViewer viewer;
+
+	/** The n column. */
+	protected TableColumn nColumn;
+
+	/** The unit column. */
+	protected TableColumn unitColumn;
+
+	/** The freq column. */
+	protected TableColumn freqColumn;
+
+	/** The separator column. */
+	protected TableColumn separatorColumn;
+
+	/** The top line. */
+	protected int topLine;
+
+	/** The bottom line. */
+	protected int bottomLine;
+
+	/** The nblinesperpage. */
+	protected int nblinesperpage;
+
+	/** The nblinesmax. */
+	protected int nblinesmax;
+
+	/** The prop separator. */
+	protected String propSeparator = "_"; //$NON-NLS-1$
+
+	/** The scroll composite. */
+	private ScrolledComposite scrollComposite;
+
+	/** The head composite. */
+	private Composite headComposite;
+	private Button hideBtn;
+	private boolean isSetupShown;
+	private Point querySize;
+	private Point oldSize;
+	/** The title. */
+	String title;
+
+	/** The source. */
+	private Object source;
+
+	/**
+	 * Instantiates a new index editor.
+	 */
+	public IndexEditor() {
+		super();
+	}
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		this.corpus = ((IndexEditorInput) input).getCorpus();
+		this.partition = ((IndexEditorInput) input).getPartition();
+		this.index = ((IndexEditorInput) input).getIndex();
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Compute index.
+	 */
+	public void compute() {
+		StatusLine.setMessage(Messages.IndexEditor_33);
+		final Query query; // if the query is empty then we put "[]" instead
+		if (queryWidget.isDisposed()) { // lexicon editor
+			query = new Query("[]"); //$NON-NLS-1$
+		} else if (!queryWidget.getQueryString().equals("\"\"")) { //$NON-NLS-1$
+			query = new Query(queryWidget.getQueryString());
+		} else {
+			System.err.println(Messages.IndexEditor_0);
+			return;
+		}
+
+		final int Fmin = Integer.parseInt(FminSpinner.getText());
+		final int Fmax = Integer.parseInt(FmaxSpinner.getText());
+		final int Tmax = Integer.parseInt(this.TmaxSpinner.getText());
+		final List<Property> properties = propsArea.getProperties();
+		//System.out.println("PROPERTIES: "+properties);
+		try {
+			title = NLS.bind(Messages.IndexEditor_2, new Object[]{
+					query.getQueryString(), properties, corpus.getName()});
+			if (partition != null)
+				title = NLS.bind(Messages.IndexEditor_20, new Object[]{
+						query.getQueryString(), properties, corpus.getName()});
+
+			JobHandler jobhandler = new JobHandler(title, go.getParent()) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						JobsTimer.start();
+						Index oldIndex = index;
+
+						System.out.println(title);
+						Log.info("Start computing Index...");
+						if (partition != null) {
+							if (simpleQuery(query, properties)) {
+								index = new Index(partition, query, properties);
+							} else {
+								index = new Index(partition, query, properties);
+							}
+						} else {
+							if (simpleQuery(query, properties)) {
+								index = new Index(corpus, properties.get(0));
+							} else {
+								index = new Index(corpus, query, properties);
+							}
+						}
+
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+
+						if (index == null) {
+							StatusLine.setMessage(Messages.IndexEditor_1);
+							return Status.CANCEL_STATUS;
+						}
+						Log.info("Filtering Fmin="+Fmin+" and Fmax="+Fmax);
+						index.setCurrentMonitor(this);
+						index.filterLines(Fmin, Fmax);
+						Log.info("Sorting...");
+						index.sortLines(SortMode.FREQUNIT, true);
+						Log.info("Cutting Tmax="+Tmax);
+						index.cut(Tmax);
+						Log.info("Index done.");
+
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+
+						this.acquireSemaphore();
+						
+						if (oldIndex != null)
+							if (oldIndex.equals(index))
+								if (index.isComputedWithPartition())
+									partition.removeResult(oldIndex);
+								else
+									corpus.removeResult(oldIndex);
+						if (index.getV() > 0 && saveIndex)
+							if (index.isComputedWithPartition())
+								partition.storeResult(index);
+							else
+								corpus.storeResult(index);
+						this.releaseSemaphore();
+
+						final String message;
+						if (index.getV() == 1)
+							message= (Messages.ConcordancesEditor_52);
+						else if (index.getV() > 0)
+							message= (Messages.bind(Messages.CreatePartition_55, index.getV(), index.getT()));
+						else
+							message= (Messages.IndexEditor_31);
+
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+
+						monitor.worked(95);
+						// refresh ui
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+
+								System.out.println(message);
+								StatusLine.setMessage(message);
+
+								CorporaView.refresh();
+								CorporaView.expand(index.getParent());
+								QueriesView.refresh();
+								RVariablesView.refresh();
+								if (partition != null)
+									setPartName(partition.getName()+": "+index.getName()); //$NON-NLS-1$
+								else
+									setPartName(corpus.getName()+": "+index.getName()); //$NON-NLS-1$
+
+								if (!queryWidget.isDisposed()) queryWidget.memorize();
+								nblinesperpage = NLignePPageSpinner.getSelection();
+								nblinesmax = TmaxSpinner.getSelection();
+								fillDisplayArea(0, NLignePPageSpinner.getSelection());
+
+								viewer.getTable().setFocus();
+							}
+						});
+
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						System.out.println(e.getLocalizedMessage());
+						try {
+							System.out.println(Messages.LastCQPError+Toolbox.getCqiClient().getLastCQPError());
+						} catch (Exception e1) {
+							System.out.println(Messages.IndexEditor_10+e1);
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+						}
+						Log.severe("Error while computing Index with "+query+" query: "+e.getLocalizedMessage());
+					} finally {
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+
+		} catch (Exception e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+		}
+	}
+
+
+
+	/**
+	 * Simple query.
+	 *
+	 * @param query the query
+	 * @param props the props
+	 * @return true, if successful
+	 */
+	private boolean simpleQuery(Query query, List<Property> props) {
+		for(Property p : props) {
+			if(p instanceof StructuralUnitProperty) return false;
+		}
+		String trimed = query.getQueryString().trim();
+		Property p = props.get(0);
+		if (props.size() > 1)
+			return false;
+		else if (trimed.equals("[]")) //$NON-NLS-1$
+			return true;
+		else if (trimed.equals("[" + p.getName() + "=\".*\"]")) //$NON-NLS-1$ //$NON-NLS-2$
+		{
+			return true;
+		} 
+		return false;
+	}
+
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		FormLayout parentLayout = new FormLayout();
+		parent.setLayout(parentLayout);
+
+		//create scrollable area
+		scrollComposite = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.NONE);
+		FormData headLayoutData = new FormData();
+		headLayoutData.top = new FormAttachment(0, 0);
+		headLayoutData.left = new FormAttachment(0);
+		headLayoutData.right = new FormAttachment(100);
+		scrollComposite.setLayoutData(headLayoutData);
+		scrollComposite.setLayout(new FormLayout());
+
+		headComposite = new Composite(scrollComposite, SWT.NONE);
+		headLayoutData = new FormData();
+		headLayoutData.top = new FormAttachment(0);
+		headLayoutData.bottom = new FormAttachment(100);
+		headLayoutData.left = new FormAttachment(0);
+		headLayoutData.right = new FormAttachment(100);
+		headComposite.setLayoutData(headLayoutData);
+		headComposite.setLayout(new FormLayout());
+
+		scrollComposite.setContent(headComposite);
+		scrollComposite.setExpandVertical(true);
+		scrollComposite.setExpandHorizontal(true);
+		scrollComposite.addControlListener(new ControlAdapter() {
+			@Override
+			public void controlResized(ControlEvent e) {
+				Rectangle r = scrollComposite.getClientArea();
+				scrollComposite.setMinSize(headComposite.computeSize(
+						SWT.DEFAULT, SWT.DEFAULT));
+			}
+		});
+
+		final Composite paramArea = new Composite(headComposite, SWT.NONE);
+		FormData paramLayoutData = new FormData();
+		paramLayoutData.top = new FormAttachment(0);
+		paramLayoutData.left = new FormAttachment(0);
+		paramLayoutData.right = new FormAttachment(100);
+		paramArea.setLayoutData(paramLayoutData);
+
+		// info&navigation panel
+		final Composite infosArea = new Composite(headComposite, SWT.NONE);
+		FormData infosLayoutData = new FormData();
+		infosLayoutData.top = new FormAttachment(paramArea, 0);
+		infosLayoutData.left = new FormAttachment(0);
+		infosLayoutData.right = new FormAttachment(100);
+		infosArea.setLayoutData(infosLayoutData);
+
+		Composite resultArea = new Composite(parent, SWT.NONE);
+		FormData resultLayoutData = new FormData();
+		resultLayoutData.top = new FormAttachment(scrollComposite, 0);
+		resultLayoutData.left = new FormAttachment(0);
+		resultLayoutData.right = new FormAttachment(100);
+		resultLayoutData.bottom = new FormAttachment(100);
+		resultArea.setLayoutData(resultLayoutData);
+
+		// compose paramArea
+		FormLayout paramLayout = new FormLayout();
+		paramArea.setLayout(paramLayout);
+
+		// on créé une Query, ici le pivot de la concordance est "[]"
+		// Query Area: query itself + view properties
+		Composite queryArea = new Composite(paramArea, SWT.NONE);
+
+		FormData queryLayoutData = new FormData();
+		queryLayoutData.top = new FormAttachment(0);
+		queryLayoutData.left = new FormAttachment(0);
+		queryLayoutData.right = new FormAttachment(100);
+		queryArea.setLayoutData(queryLayoutData);
+
+		queryArea.setLayout(new GridLayout(4, false));
+
+		// | Query: [ (v)] [Search] |
+		// Query:
+		queryLabel = new Label(queryArea, SWT.NONE);
+		queryLabel.setText(Messages.IndexEditor_3);
+		queryLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false,
+				true));
+
+		// [ (v)]
+		queryWidget = new AssistedQueryWidget(queryArea, SWT.DROP_DOWN,
+				this.corpus);
+		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
+		layoutData.horizontalAlignment = GridData.FILL;
+		layoutData.grabExcessHorizontalSpace = true;
+		queryWidget.setLayoutData(layoutData);
+
+		KeyListener listener = new KeyListener() {
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					compute();
+				}
+			}
+			@Override
+			public void keyReleased(KeyEvent e) {
+			}
+		};
+		queryWidget.addKeyListener(listener);
+
+		// select focus properties
+		propsArea = new PropertiesSelector(queryArea, SWT.NONE);
+		propsArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				false, false));
+		propsArea.setLayout(new GridLayout(3, false));
+		propsArea.addValueChangeListener(new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				if (!initializing && TxmPreferences.getBoolean(UserPreferencePage.AUTO_UPDATE_EDITOR))
+					compute();
+			}
+		});
+
+		//propsArea
+		go = new Button(queryArea, SWT.BOLD);
+		go.setText(Messages.IndexEditor_4);
+
+		Font f = go.getFont();
+		FontData defaultFont = f.getFontData()[0];
+		defaultFont.setStyle(SWT.BOLD);
+		Font newf = new Font(go.getDisplay(), defaultFont);
+		go.setFont(newf);
+
+		layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
+		layoutData.horizontalAlignment = GridData.FILL;
+		layoutData.grabExcessHorizontalSpace = false;
+		go.setLayoutData(layoutData);
+
+		SelectionListener listener2 = new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		};
+		go.addSelectionListener(listener2);
+
+		// | Properties: word_pos [Edit] |
+		/*
+		 * propsArea = new PropertiesSelector(paramArea, SWT.NONE);
+		 * propsArea.setLayout(new GridLayout(3, false));
+		 * //propsArea.setCorpus(this.corpus);
+		 * 
+		 * FormData propsLayoutData = new FormData(); propsLayoutData.top = new
+		 * FormAttachment (queryArea, 0); propsLayoutData.left = new
+		 * FormAttachment (0); propsLayoutData.right = new FormAttachment (100);
+		 * propsArea.setLayoutData(propsLayoutData);
+		 */
+		// Filters
+		Composite filtercontrols = new Composite(paramArea, SWT.NONE);
+		FormData filtersLayoutData = new FormData();
+		filtersLayoutData.top = new FormAttachment(queryArea, 0);
+		filtersLayoutData.bottom = new FormAttachment(100);
+		filtersLayoutData.left = new FormAttachment(0);
+		filtersLayoutData.right = new FormAttachment(100);
+		filtercontrols.setLayoutData(filtersLayoutData);
+
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 9;
+		gridLayout.makeColumnsEqualWidth = false;
+		filtercontrols.setLayout(gridLayout);
+
+		Label tmp = new Label(filtercontrols, SWT.NONE);
+		tmp.setText(Messages.IndexEditor_9);
+		tmp.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+
+		Label lFmin = new Label(filtercontrols, SWT.NONE);
+		lFmin.setText(Messages.IndexEditor_5);
+		lFmin.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+
+		FminSpinner = new Spinner(filtercontrols, SWT.BORDER);
+		FminSpinner.setMinimum(0);
+		FminSpinner.setMaximum(9999999);
+		FminSpinner.setIncrement(1);
+		FminSpinner.setPageIncrement(100);
+		FminSpinner.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_END));
+		FminSpinner.addKeyListener(listener);
+
+		Label lFmax = new Label(filtercontrols, SWT.NONE);
+		lFmax.setText(Messages.IndexEditor_6);
+		lFmax.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+
+		FmaxSpinner = new Spinner(filtercontrols, SWT.BORDER);
+		FmaxSpinner.setMinimum(0);
+		FmaxSpinner.setMaximum(9999999);
+		FmaxSpinner.setIncrement(1);
+		FmaxSpinner.setPageIncrement(100);
+		FmaxSpinner.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_END));
+		FmaxSpinner.addKeyListener(listener);
+
+		Label lVmax = new Label(filtercontrols, SWT.NONE);
+		lVmax.setText(Messages.IndexEditor_7);
+		lVmax.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+
+		TmaxSpinner = new Spinner(filtercontrols, SWT.BORDER);
+		TmaxSpinner.setMinimum(0);
+		TmaxSpinner.setMaximum(9999999);
+		TmaxSpinner.setSelection(9999999);
+		TmaxSpinner.setIncrement(1);
+		TmaxSpinner.setPageIncrement(100);
+		TmaxSpinner.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_END));
+		TmaxSpinner.addKeyListener(listener);
+
+		Label lNLigneppage = new Label(filtercontrols, SWT.NONE);
+		lNLigneppage.setText(Messages.IndexEditor_8);
+		lNLigneppage.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+
+		NLignePPageSpinner = new Spinner(filtercontrols, SWT.BORDER);
+		NLignePPageSpinner.setMinimum(0);
+		NLignePPageSpinner.setMaximum(99999);
+		NLignePPageSpinner.setSelection(100);
+		NLignePPageSpinner.setIncrement(1);
+		NLignePPageSpinner.setPageIncrement(100);
+		NLignePPageSpinner.setLayoutData(new GridData(
+				GridData.VERTICAL_ALIGN_END));
+		NLignePPageSpinner.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				fillDisplayArea(0, NLignePPageSpinner.getSelection());
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+			}
+		});
+
+		// compose infosArea
+		infosArea.setLayout(new GridLayout(6, false));
+
+		navigationArea = new NavigationWidget(infosArea, SWT.NONE);
+		navigationArea.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true,
+				false));
+
+		navigationArea.addFirstListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				fillDisplayArea(0, NLignePPageSpinner.getSelection());
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+			}
+		});
+		navigationArea.addLastListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int i = (index.getV()/NLignePPageSpinner.getSelection());
+				int top = top = i*NLignePPageSpinner.getSelection();
+
+				int bottom = top + NLignePPageSpinner.getSelection();
+				fillDisplayArea(top, bottom);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+			}
+		});
+		navigationArea.addNextListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int top = topLine + NLignePPageSpinner.getSelection();
+				int bottom = top + NLignePPageSpinner.getSelection();
+				fillDisplayArea(top,bottom);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+			}
+		});
+		navigationArea.addPreviousListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int top = topLine - NLignePPageSpinner.getSelection();
+				if (top < 0)
+					top = 0;
+				int bottom = top + NLignePPageSpinner.getSelection();
+				fillDisplayArea(top, bottom);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+			}
+		});
+
+		// Labels
+		lTInfo = new Label(infosArea, SWT.NONE);
+		lTInfo.setText(""); //$NON-NLS-1$
+		lTInfo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+
+		lVInfo = new Label(infosArea, SWT.NONE);
+		lVInfo.setText(""); //$NON-NLS-1$
+		lVInfo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+
+		lFminInfo = new Label(infosArea, SWT.NONE);
+		lFminInfo.setText(""); //$NON-NLS-1$
+		lFminInfo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+
+		lFmaxInfo = new Label(infosArea, SWT.NONE);
+		lFmaxInfo.setText(""); //$NON-NLS-1$
+		lFmaxInfo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+
+		//hide button
+		isSetupShown = true;
+		/*hideBtn = new Button(infosArea, SWT.PUSH);
+		hideBtn.setText("Hide");
+		hideBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (isSetupShown)// must hide
+				{
+					hideBtn.setText("Show");
+					querySize = paramArea.getSize(); // save paramArea size
+//					oldSize = scrollComposite.getSize(); // get head size
+//					scrollComposite.setSize(oldSize.x, oldSize.y - querySize.y); // cut it
+//					FormData data1 = (FormData) scrollComposite.getLayoutData();
+//					data1.height = oldSize.y - querySize.y;
+
+					paramArea.setSize(querySize.x, 0); // set paramArea size to 0
+					FormData data = (FormData) paramArea.getLayoutData();
+					data.height = 0;
+
+					headComposite.layout(true); // refresh layout
+					scrollComposite.layout(true); // refresh layout
+					parent.pack();
+					parent.layout(true);
+					isSetupShown = false;
+				}
+				else // restore the size
+				{
+					hideBtn.setText("Hide");
+    				Point size = scrollComposite.getSize(); // get head size
+//					scrollComposite.setSize(size.x, oldSize.y); // restore original size
+//					FormData data1 = (FormData) scrollComposite.getLayoutData();
+//					data1.height = oldSize.y;
+
+					paramArea.setSize(size.x, querySize.y); // restore original size
+					FormData data = (FormData) paramArea.getLayoutData();
+					data.height = querySize.y;
+
+					headComposite.layout(true); // refresh layout
+					scrollComposite.layout(true); // refresh
+					parent.layout(true);
+					isSetupShown = true;
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {	}
+		});
+		 */
+		// results
+		FormLayout resultLayout = new FormLayout();
+		resultArea.setLayout(resultLayout);
+
+		viewer = new TableViewer(resultArea, SWT.MULTI
+				| SWT.FULL_SELECTION | SWT.BORDER);
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+
+		if (corpus != null && corpus.getFont() != null && corpus.getFont().length() > 0) {
+			Font old = viewer.getTable().getFont();
+			FontData fD = old.getFontData()[0];
+			//Font f = new Font(old.getDevice(), corpus.getFont(), fD.getHeight(), fD.getStyle());
+			Font font = new Font(Display.getCurrent(), corpus.getFont(), fD.getHeight(), fD.getStyle()); 
+			viewer.getTable().setFont(font);
+		}
+
+		FormData tableLayoutData = new FormData();
+		tableLayoutData.top = new FormAttachment(0);
+		tableLayoutData.bottom = new FormAttachment(100);
+		tableLayoutData.left = new FormAttachment(0);
+		tableLayoutData.right = new FormAttachment(100);
+		viewer.getTable().setLayoutData(tableLayoutData);
+
+		viewer.setLabelProvider(new LineLabelProvider());
+		viewer.setContentProvider(new LineContentProvider());
+		viewer.setInput(new ArrayList<Property>());
+
+		viewer.getTable().addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				Point mouseposition = new Point(e.x
+						+ viewer.getTable().getHorizontalBar()
+						.getSelection(), e.y);
+				int col = getPointedColumn(mouseposition);
+				if (col == 1) {
+					IndexToConcordance.link(IndexEditor.this,
+							(IStructuredSelection) viewer
+							.getSelection());
+				} else if (col == 2) {
+					IndexToProgression.link(IndexEditor.this,
+							(IStructuredSelection) viewer
+							.getSelection());
+				}
+			}
+		});
+
+
+		nColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		nColumn.setText(" "); //$NON-NLS-1$
+		nColumn.pack();
+
+		unitColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		unitColumn.setText(Messages.ReferencerEditor_9);
+		unitColumn.setToolTipText(Messages.ReferencerEditor_9);
+		unitColumn.setWidth(200);
+		unitColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.IndexEditor_36);
+				if (viewer.getTable().getSortColumn() != unitColumn) {
+					viewer.getTable().setSortColumn(unitColumn);
+					viewer.getTable().setSortDirection(SWT.UP);
+					index.sortLines(SortMode.UNIT, false);
+				} else {
+					if (viewer.getTable().getSortDirection() == SWT.UP) {
+						viewer.getTable().setSortDirection(SWT.DOWN);
+						index.sortLines(SortMode.UNITFREQ, true);
+					} else {
+						viewer.getTable().setSortDirection(SWT.UP);
+						index.sortLines(SortMode.UNITFREQ, false);
+					}
+				}
+
+				StatusLine.setMessage(Messages.IndexEditor_37);
+				fillDisplayArea(topLine, bottomLine);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		freqColumn = new TableColumn(viewer.getTable(), SWT.RIGHT);
+		try {
+			if(partition != null)
+				freqColumn.setText(Messages.FrequencyListEditorInput_4+" T="+partition.getTotalSize()); //$NON-NLS-1$
+			else
+				freqColumn.setText(Messages.FrequencyListEditorInput_4);
+		} catch (CqiClientException e2) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e2);
+		}
+		freqColumn.setToolTipText(Messages.FrequencyListEditorInput_4);
+		freqColumn.setWidth(100);
+		freqColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (viewer.getTable().getSortColumn() != freqColumn) {
+					viewer.getTable().setSortColumn(freqColumn);
+					viewer.getTable().setSortDirection(SWT.UP);
+					index.sortLines(SortMode.FREQUNIT, false);
+				} else {
+					if (viewer.getTable().getSortDirection() == SWT.UP) {
+						viewer.getTable().setSortDirection(SWT.DOWN);
+						index.sortLines(SortMode.FREQUNIT, true);
+					} else {
+						viewer.getTable().setSortDirection(SWT.UP);
+						index.sortLines(SortMode.FREQUNIT, false);
+					}
+				}
+				StatusLine.setMessage(Messages.IndexEditor_37);
+				fillDisplayArea(topLine, bottomLine);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// rmv/creates parts columns if needed
+		if (this.partition != null) {
+			List<String> partnames = this.partition.getPartNames();
+			if (partnames.size() > 1)
+				if (viewer.getTable().getColumnCount() < partnames
+						.size() + 3) {
+					for (int i = 0; i < partnames.size(); i++) {
+						final TableColumn partColumn = new TableColumn(
+								viewer.getTable(), SWT.RIGHT);
+						try {
+							partColumn.setText(partnames.get(i)+" t="+partition.getParts().get(i).getSize()); //$NON-NLS-1$
+						} catch (CqiClientException e1) {
+							// TODO Auto-generated catch block
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+						}
+						partColumn.setToolTipText(partnames.get(i));
+						partColumn.setWidth(100);
+						//						partColumn.addSelectionListener(new SelectionListener() {
+						//									@Override
+						//									public void widgetSelected(SelectionEvent e) {
+						//										if (viewer.getTable()
+						//												.getSortColumn() != partColumn) {
+						//											viewer.getTable()
+						//													.setSortColumn(partColumn);
+						//											viewer.getTable()
+						//													.setSortDirection(SWT.UP);
+						//											index.sortLines(
+						//													SortMode.FREQUNIT, false);
+						//										} else {
+						//											if (viewer.getTable()
+						//													.getSortDirection() == SWT.UP) {
+						//												viewer.getTable()
+						//														.setSortDirection(
+						//																SWT.DOWN);
+						//												index
+						//														.sortLines(
+						//																SortMode.FREQUNIT,
+						//																true);
+						//											} else {
+						//												viewer.getTable()
+						//														.setSortDirection(
+						//																SWT.UP);
+						//												index.sortLines(
+						//														SortMode.FREQUNIT,
+						//														false);
+						//											}
+						//										}
+						//										fillDisplayArea(topLine, bottomLine);
+						//									}
+						//
+						//									@Override
+						//									public void widgetDefaultSelected(
+						//											SelectionEvent e) {
+						//									}
+						//								});
+					}
+				}
+		}
+		separatorColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		separatorColumn.setText(""); //$NON-NLS-1$
+		separatorColumn.pack();
+
+		initializeFields();
+		createContextMenu(viewer);
+		viewer.getTable().pack();
+		parent.layout(true);
+		//System.out.println("Part control done.");
+	}
+
+	/**
+	 * Gets the pointed column.
+	 *
+	 * @param mouseposition the mouseposition
+	 * @return the pointed column
+	 */
+	public int getPointedColumn(Point mouseposition) {
+		int x = mouseposition.x; // + lineTableViewer.getTable().get;
+		int sumWidthColumn = this.nColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 0;
+
+		sumWidthColumn += this.unitColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 1;
+
+		sumWidthColumn += this.freqColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 2;
+
+		return 2;
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	boolean initializing = false; // prevent properties widget listener to activate when adding new properties (and refresh the result)
+	/**
+	 * Initialize fields.
+	 */
+	public void initializeFields() {
+		initializing = true;
+		if (this.index != null) {
+			// query
+			this.queryWidget.memorize(index.getQuery().getQueryString());
+			// props
+			ArrayList<Property> availables = new ArrayList<Property>();
+			try {
+				for (Property p : index.getCorpus().getOrderedProperties())
+					if (!index.getProperties().contains(p))
+						availables.add(p);
+			} catch (CqiClientException e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				initializing = false;
+			}
+			ArrayList<Property> props = new ArrayList<Property>();
+			props.addAll(index.getProperties());
+			this.propsArea.setProperties(availables, props);
+			// min, max
+			this.FminSpinner.setSelection(index.getFilterFmin());
+			this.FmaxSpinner.setSelection(index.getFilterFmax());
+
+			if (index.getPartition() != null)
+				setPartName(index.getPartition().getName()+": "+index.getName()); //$NON-NLS-1$
+			else
+				setPartName(index.getCorpus().getName()+": "+index.getName()); //$NON-NLS-1$
+			queryWidget.setFocus();
+
+			index.filterLines(index.getFilterFmin(), index
+					.getFilterFmax());
+			index.sortLines(SortMode.FREQUNIT, true);
+
+			fillDisplayArea(0, NLignePPageSpinner.getSelection());
+		} else if (this.corpus != null) {
+			// no query
+			queryWidget.setText(""); //$NON-NLS-1$
+			// props
+			this.propsArea.setCorpus(corpus);
+			// min, max
+			this.FminSpinner.setSelection(1);
+			this.FmaxSpinner.setSelection(9999999);
+
+			if (partition != null)
+				setPartName(Messages.ObjectExplorer_9 + partition.getName());
+			else
+				setPartName(Messages.ObjectExplorer_9 + corpus.getName());
+			queryWidget.setFocus();
+		} else {
+			System.err.println(Messages.IndexEditor_22);
+		}
+		initializing = false;
+	}
+
+	/**
+	 * Fill display area.
+	 *
+	 * @param from the from
+	 * @param to the to
+	 */
+	public void fillDisplayArea(int from, int to) {
+		// System.out.println("call fill from "+from+" to "+to);
+		from = Math.max(from, 0);
+		to = Math.min(to, index.getV());
+		List<Line> lines = null;
+		if (index.getV() > 0) {
+			lines = index.getLines(from, to);
+		} else
+			lines = new ArrayList<Line>();
+
+		navigationArea.setInfoLineText(""+(from + 1), //$NON-NLS-1$
+				"-" + (to) + " / " + index.getV()); //$NON-NLS-1$ //$NON-NLS-2$
+		navigationArea.setPreviousEnabled(from > 0);
+		navigationArea.setFirstEnabled(from > 0);
+		navigationArea.setNextEnabled(to < index.getV());
+		navigationArea.setLastEnabled(to < index.getV());
+
+		lFminInfo.setText(Messages.IndexEditor_25 + index.getFmin());
+		lFmaxInfo.setText(Messages.IndexEditor_26 + index.getFmax());
+		lTInfo.setText(Messages.IndexEditor_27 + index.getT());
+		lVInfo.setText(Messages.IndexEditor_28 + index.getV());
+
+		lVInfo.getParent().layout();
+
+		String unitColumnHeader = ""; //$NON-NLS-1$
+		for (Property p : index.getProperties())
+			unitColumnHeader += p.toString() + propSeparator;
+		if (unitColumnHeader.length() > 0)
+			unitColumnHeader = unitColumnHeader.substring(0, unitColumnHeader
+					.length() - 1);
+		unitColumn.setText(unitColumnHeader);
+
+		viewer.setInput(lines);
+		viewer.refresh();
+		// System.out.println("table refreshed from "+from+" to "+to+" with : "+lines);
+		topLine = from;
+		bottomLine = to;
+		for (TableColumn col : viewer.getTable().getColumns()) {
+			col.pack();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#getTitleToolTip()
+	 */
+	@Override
+	public String getTitleToolTip() {
+		if (index != null) {
+			String str;
+
+			if (partition != null)
+				str = NLS.bind(Messages.IndexEditor_17,
+						new Object[]{partition.getName(), index.getQuery().getQueryString(), index.getProperties(), index.getFmin(), index.getFmax()});
+			else
+				str = NLS.bind(Messages.IndexEditor_18,
+						new Object[]{corpus.getName(), index.getQuery().getQueryString(), index.getProperties(), index.getFmin(), index.getFmax()});
+
+			return str;
+		}
+		return ""; //$NON-NLS-1$
+	}
+
+	/**
+	 * Sets the focus.
+	 *
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		if (!this.queryWidget.isDisposed())
+			this.queryWidget.setFocus();
+		StatusLine.setMessage(Messages.IndexEditor_29);
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return this.corpus;
+	}
+
+	/**
+	 * Gets the partition.
+	 *
+	 * @return the partition
+	 */
+	public Partition getPartition() {
+		return this.partition;
+	}
+
+	/**
+	 * Sets the focus.
+	 *
+	 * @param query the new focus
+	 */
+	public void setFocus(String query) {
+		this.queryWidget.setText(query);
+	}
+
+	/**
+	 * Gets the index.
+	 *
+	 * @return the index
+	 */
+	public Object getIndex() {
+		return this.index;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return index;
+	}
+
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+
+	public Query getQuery() {
+		return queryWidget.getQuery();
+	}
+
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return this.corpus.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/IndexEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Index editor</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineLabelProvider.java	(revision 122)
@@ -0,0 +1,103 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.index;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.functions.index.Line;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LineLabelProvider.
+ */
+public class LineLabelProvider implements ITableLabelProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		Line line = (Line) element;
+		switch (columnIndex) {
+		case 0:
+			return ""; //$NON-NLS-1$
+		case 1:
+			return line.toString();
+		case 2:
+			return "" + line.getFrequency(); //$NON-NLS-1$
+		default:
+			if (line.getFrequencies().length > 1
+					&& columnIndex - 3 < line.getFrequencies().length)
+				return "" + line.getFrequency(columnIndex - 3); //$NON-NLS-1$
+			else
+				return "";//$NON-NLS-1$
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+	 */
+	@Override
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/index/LineLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/progression/ProgressionForm.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/progression/ProgressionForm.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/progression/ProgressionForm.java	(revision 122)
@@ -0,0 +1,237 @@
+package org.txm.rcpapplication.editors.progression;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+
+
+public class ProgressionForm extends Composite {
+	SashForm sashForm;
+	
+	private Table table;
+	private Text scaleTextEdit;
+	private Text regTextEdit;
+	
+	Button btnSupprimer;
+	Button cumulBtn;
+	Button densiBtn;
+	
+	Combo structCombo;
+	Combo propCombo;
+	private Button styleRadio;
+	private Button repeatRadio;
+	private Button NBRadio;
+	private Button btnNewButton;
+
+	/**
+	 * Create the composite.
+	 * @param parent
+	 * @param style
+	 */
+	public ProgressionForm(Composite parent, int style) {
+		super(parent, style);
+		setLayout(new GridLayout(1, true));
+		
+		sashForm = new SashForm(this, SWT.VERTICAL);
+		sashForm.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+		
+		ScrolledComposite scrolledComposite_1 = new ScrolledComposite(sashForm, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
+		scrolledComposite_1.setExpandHorizontal(true);
+		scrolledComposite_1.setExpandVertical(true);
+		
+		Composite composite_1 = new Composite(scrolledComposite_1, SWT.NONE);
+		composite_1.setLayout(new FillLayout(SWT.VERTICAL));
+		
+		Composite composite = new Composite(composite_1, SWT.NONE);
+		composite.setLayout(new GridLayout(5, false));
+		
+		Label label = new Label(composite, SWT.NONE);
+		GridData gd_label = new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1);
+		gd_label.widthHint = 29;
+		label.setLayoutData(gd_label);
+		label.setText(Messages.ProgressionForm_0);
+		
+		cumulBtn = new Button(composite, SWT.RADIO);
+		cumulBtn.setText(Messages.ProgressionForm_1);
+		cumulBtn.setSelection(true);
+		
+		densiBtn = new Button(composite, SWT.RADIO);
+		densiBtn.setText(Messages.ProgressionForm_2);
+		
+		Label lblEchelle = new Label(composite, SWT.NONE);
+		lblEchelle.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
+		lblEchelle.setText(Messages.ProgressionForm_3);
+		
+		scaleTextEdit = new Text(composite, SWT.BORDER);
+		scaleTextEdit.setText("1.0"); //$NON-NLS-1$
+		
+		Label lblOptionsDaffichage = new Label(composite, SWT.NONE);
+		lblOptionsDaffichage.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 4, 1));
+		lblOptionsDaffichage.setText(Messages.ProgressionForm_5);
+		new Label(composite, SWT.NONE);
+		
+		Label label_6 = new Label(composite, SWT.NONE);
+		label_6.setText(Messages.ProgressionForm_6);
+		
+		structCombo = new Combo(composite, SWT.NONE);
+		
+		Label label_5 = new Label(composite, SWT.NONE);
+		label_5.setText(Messages.ProgressionForm_7);
+		
+		propCombo = new Combo(composite, SWT.NONE);
+		propCombo.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
+		new Label(composite, SWT.NONE);
+		new Label(composite, SWT.NONE);
+		
+		Label label_7 = new Label(composite, SWT.NONE);
+		label_7.setText(Messages.ProgressionForm_8);
+		
+		regTextEdit = new Text(composite, SWT.BORDER);
+		regTextEdit.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
+		new Label(composite, SWT.NONE);
+		
+		styleRadio = new Button(composite, SWT.CHECK);
+		styleRadio.setText(Messages.ProgressionForm_9);
+		styleRadio.setSelection(true);
+		
+		repeatRadio = new Button(composite, SWT.CHECK);
+		repeatRadio.setText(Messages.ProgressionForm_10);
+		
+		NBRadio = new Button(composite, SWT.CHECK);
+		NBRadio.setText(Messages.ProgressionForm_11);
+		new Label(composite, SWT.NONE);
+	
+		Composite composite_2 = new Composite(composite_1, SWT.NONE);
+		composite_2.setLayout(new GridLayout(1, false));
+		
+		Composite composite_3 = new Composite(composite_2, SWT.NONE);
+		composite_3.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
+		composite_3.setLayout(new FillLayout(SWT.HORIZONTAL));
+		
+		Label lblRequetes = new Label(composite_3, SWT.NONE);
+		lblRequetes.setText(Messages.ProgressionForm_12);
+		
+		btnNewButton = new Button(composite_3, SWT.NONE);
+		btnNewButton.setText(Messages.ProgressionForm_13);
+		
+		btnSupprimer = new Button(composite_3, SWT.NONE);
+		btnSupprimer.setText(Messages.ProgressionForm_14);
+		scrolledComposite_1.setContent(composite_1);
+		scrolledComposite_1.setMinSize(composite_1.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+		
+//		table = new Table(sashForm, SWT.BORDER | SWT.FULL_SELECTION);
+//		table.setHeaderVisible(true);
+//		table.setLinesVisible(true);
+//		sashForm.setWeights(new int[] {215, 334});
+	}
+	
+	public void setTable(Table table) {
+		this.table = table;
+		//table = new Table(sashForm, SWT.BORDER | SWT.FULL_SELECTION);
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		sashForm.setWeights(new int[] {215, 334});
+	}
+	
+	@Override
+	protected void checkSubclass() {
+		// Disable the check that prevents subclassing of SWT components
+	}
+
+	public SashForm getSash() {
+		return sashForm;
+	}
+	
+	/**
+	 * @return the table
+	 */
+	public Table getTable() {
+		return table;
+	}
+
+	/**
+	 * @return the scaleTextEdit
+	 */
+	public Text getScaleTextEdit() {
+		return scaleTextEdit;
+	}
+
+	/**
+	 * @return the regTextEdit
+	 */
+	public Text getRegTextEdit() {
+		return regTextEdit;
+	}
+
+	/**
+	 * @return the btnSupprimer
+	 */
+	public Button getBtnSupprimer() {
+		return btnSupprimer;
+	}
+
+	/**
+	 * @return the cumulBtn
+	 */
+	public Button getCumulBtn() {
+		return cumulBtn;
+	}
+
+	/**
+	 * @return the densiBtn
+	 */
+	public Button getDensiBtn() {
+		return densiBtn;
+	}
+
+	/**
+	 * @return the structCombo
+	 */
+	public Combo getStructCombo() {
+		return structCombo;
+	}
+
+	/**
+	 * @return the propCombo
+	 */
+	public Combo getPropCombo() {
+		return propCombo;
+	}
+
+	/**
+	 * @return the styleRadio
+	 */
+	public Button getStyleRadio() {
+		return styleRadio;
+	}
+
+	/**
+	 * @return the repeatRadio
+	 */
+	public Button getRepeatRadio() {
+		return repeatRadio;
+	}
+
+	/**
+	 * @return the nBRadio
+	 */
+	public Button getNBRadio() {
+		return NBRadio;
+	}
+
+	/**
+	 * @return the btnNewButton
+	 */
+	public Button getBtnNewButton() {
+		return btnNewButton;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/progression/ProgressionForm.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/GenericMultiPageEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/GenericMultiPageEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/GenericMultiPageEditor.java	(revision 122)
@@ -0,0 +1,172 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput;
+// TODO: Auto-generated Javadoc
+/**
+ * A GenericMultiPageEditor is a MultiPageEditor whose content and behavior is
+ * determined on the fly by an EditorInput implementing the.
+ *
+ * {@link IProvidingMultiPageEditorInput} interface.
+ * @author Sylvain Loiseau
+ */
+public class GenericMultiPageEditor extends MultiPageEditorPart {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.GenericMultiPageEditor"; //$NON-NLS-1$
+
+	/** The LAS t_ edito r_ used. */
+	protected static int LAST_EDITOR_USED = 0;
+	
+	/** The editors. */
+	protected List<EditorPart> editors;
+	
+	/** The inputs. */
+	protected List<IEditorInput> inputs;
+	
+	/** The names. */
+	protected List<String> names;
+
+	/**
+	 * Instantiates a new generic multi page editor.
+	 */
+	public GenericMultiPageEditor() {
+		// TODO Auto-generated constructor stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
+	 */
+	@Override
+	protected void createPages() {
+
+		IEditorInput input = getEditorInput();
+		if (!(input instanceof IProvidingMultiPageEditorInput)) {
+			throw new IllegalArgumentException(NLS.bind(
+					Messages.GenericMultiPageEditor_1, input.getName()));
+		}
+
+		editors = ((IProvidingMultiPageEditorInput) input).getEditors();
+		inputs = ((IProvidingMultiPageEditorInput) input).getEditorInputs();
+		names = ((IProvidingMultiPageEditorInput) input).getNames();
+
+		if (editors.size() != inputs.size()) {
+			throw new IllegalArgumentException(NLS.bind(
+					Messages.GenericMultiPageEditor_3, editors.size(), inputs.size()));
+		}
+
+		for (int i = 0; i < editors.size(); i++) {
+
+			int editorIndex = 0;
+			try {
+				
+				editorIndex = addPage(editors.get(i), inputs.get(i));
+			} catch (PartInitException e) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+			setPageText(editorIndex, names.get(i));
+		}
+		setPartName(getEditorInput().getName());
+
+		setActivePage(LAST_EDITOR_USED);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#pageChange(int)
+	 */
+	@Override
+	public void pageChange(int index) {
+		super.pageChange(index);
+		LAST_EDITOR_USED = index;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#dispose()
+	 */
+	@Override
+	public void dispose() {
+		for (int i = 0; i < editors.size(); i++) {
+			editors.get(i).dispose();
+		}
+		super.dispose();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.MultiPageEditorPart#getAdapter(java.lang.Class)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public Object getAdapter(Class type) {
+		return null;
+	}
+
+	/**
+	 * @return the editors
+	 */
+	public List<EditorPart> getEditors() {
+		return editors;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/GenericMultiPageEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/internal/InternalViewEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/internal/InternalViewEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/internal/InternalViewEditor.java	(revision 122)
@@ -0,0 +1,773 @@
+package org.txm.rcpapplication.editors.internal;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.Toolbox;
+import org.txm.functions.concordances.Line;
+import org.txm.functions.internal.InternalView;
+import org.txm.progression.rcp.dialogs.ProgressionDialog;
+import org.txm.progression.rcp.handlers.ComputeProgression;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.rcpapplication.editors.input.InternalViewEditorInput;
+import org.txm.rcpapplication.swt.widget.NavigationWidget;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+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.query.Match;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.logger.Log;
+
+public class InternalViewEditor extends EditorPart implements CustomizableEditor {
+
+	public static final String ID = "org.txm.rcpapplication.editors.internal.InternalViewEditor"; //$NON-NLS-1$
+	Corpus corpus;
+	//StructuralUnit struct;
+	//ArrayList<String> properties;
+	InternalView internalView;
+
+	Combo structCombo;
+	List<StructuralUnit> availableStructs;
+	PropertiesSelector propSelector;
+	PropertiesSelector structSelector;
+	List<Property> availables;
+	List<Property> selected;
+	TableViewer viewer;
+	Table table;
+	NavigationWidget navigation;
+	HashMap<Property, List<String>> line;
+
+	Label structInfos;
+	private Composite formPanel;
+	private Composite navigationPanel;
+	private Composite resultPanel;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		InternalViewEditorInput vinput = (InternalViewEditorInput) input;
+		this.corpus = vinput.getCorpus();
+		this.internalView = vinput.getInternalView();
+		if (this.corpus == null) 
+			this.corpus = this.internalView.getCorpus();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public boolean compute() {
+		final StructuralUnit s = this.availableStructs.get(this.structCombo.getSelectionIndex());
+		final  List<Property> p = propSelector.getProperties();
+		final List<Property> sup = structSelector.getProperties();
+
+		JobHandler jobhandler = new JobHandler(Messages.InternalViewEditor_1) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				JobsTimer.start();
+				monitor.beginTask(Messages.InternalViewEditor_2, 100);
+				try {
+					// remove previous InternalView
+					//InternalView previous = internalView;
+					internalView = new InternalView(corpus,p , s, sup);
+					if (internalView != null) { // TEMP
+//						int idx = corpus.getResults().indexOf(previous);
+//						if (idx >= 0) {
+//							corpus.storeResult(idx, internalView);
+//							corpus.removeResult(idx+1);
+//						} else {
+//							corpus.storeResult(internalView);
+//						}
+						line = internalView.getFirst();
+						monitor.beginTask(Messages.InternalViewEditor_3, 100);
+						this.syncExec(new Runnable() {
+							@Override
+							public void run() {
+								try {
+									fillDisplayArea();
+									CorporaView.refresh();
+								} catch (CqiClientException e) {
+									// TODO Auto-generated catch block
+									org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+								}
+							}
+						});
+					}
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch(Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.schedule();
+		return true;
+	}
+
+	public void fillDisplayArea() throws CqiClientException
+	{
+		initColumns();
+		viewer.setInput(line);
+		viewer.refresh();
+
+		navigation.setInfoLineText(""+(internalView.getCurrentSegmentNo()+1), internalView.getLocationTail()); //$NON-NLS-1$
+		structInfos.setText(internalView.getStructInfos());
+
+		int current = internalView.getCurrentSegmentNo();
+		int total = internalView.getNSegment();
+		navigation.setFirstEnabled(current > 0);
+		navigation.setPreviousEnabled(current > 0);
+		navigation.setNextEnabled(total > 1 && current < total);
+		navigation.setLastEnabled(total > 1 && current < total);
+
+		navigationPanel.layout();
+		this.setPartName(internalView.getDetails());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		this.setIcon(IImageKeys.getImage(IImageKeys.ACTION_INTERNALVIEW));
+		parent.setLayout(new GridLayout(1,true));
+
+		formPanel = new Composite(parent, SWT.NONE);
+		formPanel.setLayout(new GridLayout(5,false));
+		formPanel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+		navigationPanel = new Composite(parent, SWT.NONE);
+		navigationPanel.setLayout(new GridLayout(4,false));
+		navigationPanel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+		resultPanel = new Composite(parent, SWT.NONE);
+		resultPanel.setLayout(new GridLayout(1,true));
+		resultPanel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+
+		Label structComboLabel = new Label(formPanel, SWT.NONE);
+		structComboLabel.setText(Messages.InternalViewEditor_4);
+		structComboLabel.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true));
+		structCombo = new Combo(formPanel, SWT.NONE);
+		structCombo.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true));
+		propSelector = new PropertiesSelector(formPanel, SWT.NONE);
+		propSelector.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true));
+		propSelector.setLayout(new GridLayout(3, false));
+		propSelector.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				internalView.setProperties(propSelector.getProperties());
+				try {
+					line = internalView.getSegment(internalView.getCurrentSegmentNo());
+					fillDisplayArea();
+				} catch (CqiClientException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {}
+		});
+
+		structSelector = new PropertiesSelector(formPanel, SWT.NONE);
+		structSelector.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, true));
+		structSelector.setLayout(new GridLayout(3, false));
+		structSelector.setText(Messages.InternalViewEditor_5);
+		structSelector.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				internalView.setStructProperties(structSelector.getProperties());
+				try {
+					line = internalView.getSegment(internalView.getCurrentSegmentNo());
+					fillDisplayArea();
+				} catch (CqiClientException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {}
+		});
+
+		try { // init combos
+			availables = new ArrayList<Property>(corpus.getOrderedProperties());
+			selected = new ArrayList<Property>();
+			availableStructs = corpus.getStructuralUnits();
+
+			if (internalView != null) {
+				selected = internalView.getProperties();
+				availables.removeAll(selected);
+				propSelector.setProperties(availables, selected);
+			} else {
+				availables.remove(corpus.getProperty("word")); //$NON-NLS-1$
+				selected.add(corpus.getProperty("word")); //$NON-NLS-1$
+				propSelector.setCorpus(corpus);
+			}
+
+			for(StructuralUnit struct : availableStructs)
+				structCombo.add(struct.toString());
+			if (availableStructs.size() > 0) {
+				int hasS = -1;
+				int hasP = -1;
+				for (int i = 0 ; i < availableStructs.size() ; i++) {
+					if (availableStructs.get(i).getName().equals("s")) hasS = i; //$NON-NLS-1$
+					else if (availableStructs.get(i).getName().equals("p")) hasP = i; //$NON-NLS-1$
+				}
+				
+				if (hasS > 0) { 
+					structCombo.select(hasS);
+				} else if (hasP > 0) {
+					structCombo.select(hasP);
+				} else {
+					structCombo.select(0);
+				}	
+
+				structCombo.addSelectionListener(new SelectionListener() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						reloadStructuralUnitProperties();
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+				reloadStructuralUnitProperties();
+			}
+		} catch (CqiClientException e) {
+			System.out.println(Messages.InternalViewEditor_10);
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		Button ok = new Button(formPanel, SWT.PUSH);
+		ok.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false));
+		ok.setText(Messages.Explorer_6);
+		ok.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// TODO Auto-generated method stub
+			}
+		});
+
+		navigation = new NavigationWidget(navigationPanel, SWT.NONE);
+		navigation.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, true));
+		navigation.addGoToKeyListener(new KeyListener() {
+			@Override
+			public void keyReleased(KeyEvent e) { }
+			
+			@Override
+			public void keyPressed(KeyEvent e) {
+				// TODO Auto-generated method stub
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					int next = navigation.getCurrent();
+					if (next >= 0 && next < internalView.getNSegment())
+						try {
+							goToSegment(next);
+						} catch (CqiClientException e1) {
+							// TODO Auto-generated catch block
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+						}
+				}
+			}
+		});
+		navigation.addFirstListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (internalView != null) {
+					try {
+						line = internalView.getFirst();
+						fillDisplayArea(); // one segment at time
+
+						navigation.setFirstEnabled(false);
+						navigation.setPreviousEnabled(false);
+						navigation.setNextEnabled(true);
+						navigation.setLastEnabled(true);
+					} catch (CqiClientException e1) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		navigation.addPreviousListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (internalView != null) {
+					try {
+						line = internalView.getPrevious();
+						fillDisplayArea(); // one segment at time
+
+						navigation.setFirstEnabled(true);
+						navigation.setPreviousEnabled(!internalView.isFirst());
+						navigation.setNextEnabled(true);
+						navigation.setLastEnabled(true);
+					} catch (CqiClientException e1) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		navigation.addNextListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (internalView != null) {
+					try {
+						line = internalView.getNext();
+						fillDisplayArea(); // one segment at time
+
+						navigation.setFirstEnabled(true);
+						navigation.setPreviousEnabled(true);
+						navigation.setNextEnabled(!internalView.isLast());
+						navigation.setLastEnabled(true);
+					} catch (CqiClientException e1) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		navigation.addLastListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (internalView != null) {
+					try {
+						line = internalView.getLast();
+						fillDisplayArea(); // one segment at time
+
+						navigation.setFirstEnabled(true);
+						navigation.setPreviousEnabled(true);
+						navigation.setNextEnabled(false);
+						navigation.setLastEnabled(false);
+					} catch (CqiClientException e1) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+
+		structInfos = new Label(navigationPanel, SWT.NONE);
+		structInfos.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, true));
+		structInfos.setText(""); //$NON-NLS-1$
+
+		//		Button style = new Button(navigationPanel, SWT.RADIO);
+		//		style.setText("table");
+
+		viewer = new TableViewer(resultPanel);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+		table = viewer.getTable();
+		table.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+		viewer.setContentProvider(new IStructuredContentProvider() {
+
+			@Override
+			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+			@Override
+			public void dispose() { }
+
+			@Override
+			public Object[] getElements(Object inputElement) {
+				int nlines = internalView.getSegmentLength();
+				List<Property> props = internalView.getProperties();
+
+				ArrayList<Object[]> lines = new ArrayList<Object[]>();
+				for (int i = 0 ; i < nlines ; i++) {
+					lines.add(new String[props.size()]);
+				}
+				if (inputElement instanceof HashMap<?,?>) {
+					HashMap<Property, List<String>> l = (HashMap<Property, List<String>>) inputElement;
+					for(int i = 0 ; i < props.size() ; i++) {
+						Property prop = props.get(i);
+						List<String> data = l.get(prop);
+						for (int j = 0 ; j < nlines ; j++) {
+							lines.get(j)[i] = data.get(j);
+						}
+					}
+				}
+				return lines.toArray();
+			}
+		});
+		initColumns();
+		firstDisplay();
+		createContextMenu();
+	}
+
+	protected boolean goToSegment(int next) throws CqiClientException {
+		line = internalView.getSegment(next);
+		fillDisplayArea(); // one segment at time
+
+		if (next == 0) {
+			navigation.setFirstEnabled(false);
+			navigation.setPreviousEnabled(false);
+		} else {
+			navigation.setFirstEnabled(true);
+			navigation.setFirstEnabled(true);
+		}
+		
+		if (next == internalView.getNSegment() -1) {
+			navigation.setNextEnabled(false);
+			navigation.setLastEnabled(false);
+		} else { 
+			navigation.setNextEnabled(true);
+			navigation.setLastEnabled(true);
+		}
+		return true;
+	}
+
+	private boolean firstDisplay() {
+		if (internalView != null) {
+			try {
+				line = internalView.getFirst();
+				fillDisplayArea();
+				return true;
+			} catch (CqiClientException e1) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+		} else {
+			compute();
+		}
+		return false;
+	}
+
+	private void reloadStructuralUnitProperties() {
+		StructuralUnit struct = availableStructs.get(structCombo.getSelectionIndex());
+		ArrayList<Property> availables = new ArrayList<Property>(struct.getOrderedProperties());
+		for (int i = 0 ; i < availables.size() ; i++) {
+			String name = availables.get(i).getName();
+			if (name.equals("base") || name.equals("project")) //$NON-NLS-1$ //$NON-NLS-2$
+				availables.remove(i--);
+		}
+		ArrayList<Property> selected = new ArrayList<Property>();
+		if (availables.size() > 0) {
+			selected.add(availables.remove(0));
+		}
+		structSelector.setProperties(availables, selected);
+	}
+
+	HashMap<Property, TableViewerColumn> columns = new HashMap<Property, TableViewerColumn>();
+	HashMap<TableViewerColumn, Integer> columnsOrder = new HashMap<TableViewerColumn, Integer>();
+	private void initColumns() {
+
+		for( TableViewerColumn col : columns.values()) {
+			col.getColumn().dispose();
+		}
+		columnsOrder = new HashMap<TableViewerColumn, Integer>();
+		columns = new HashMap<Property, TableViewerColumn>();
+
+		if (internalView == null) {
+			//System.out.println("REMOVE NON USED COLUMNS");
+		} else {
+			int c = 0;
+
+			for (final Property prop : internalView.getProperties()) {
+				if (!columns.containsKey(prop)) {
+					final TableViewerColumn col = new TableViewerColumn(viewer, SWT.NONE);
+					col.getColumn().setWidth(100);
+					col.getColumn().setText(prop.toString());
+					col.setLabelProvider(new ColumnLabelProvider() {
+						@Override
+						public String getText(Object element) {
+							if (element instanceof Object[]) {
+								Integer idx = columnsOrder.get(col);
+								return ""+((Object[])element)[idx]; //$NON-NLS-1$
+							}
+							return Messages.InternalViewEditor_16;
+						}
+					});
+					columns.put(prop, col);
+
+				}
+				TableViewerColumn col = columns.get(prop);
+				columnsOrder.put(col, c++);
+			}
+		}
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu() {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(viewer.getTable());
+
+		// Set the MenuManager
+		viewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, viewer);
+		// Make the selection available
+		getSite().setSelectionProvider(viewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return internalView;
+	}
+
+	public String buildQuery() {
+		TableColumn[] cols = viewer.getTable().getColumns();
+		TableItem[] items = viewer.getTable().getItems();
+		int[] indexes = viewer.getTable().getSelectionIndices();
+		if (indexes.length == 0 ) return ""; //$NON-NLS-1$
+
+		StringBuffer query = new StringBuffer("["); //$NON-NLS-1$
+		for (int icol = 0 ; icol < cols.length ; icol++) {
+			TableColumn col = cols[icol];
+			if (icol > 0)
+				query.append(" & " +col.getText()+"=\""); //$NON-NLS-1$ //$NON-NLS-2$
+			else
+				query.append(col.getText()+"=\""); //$NON-NLS-1$
+			HashSet<String> values = new HashSet<String>();
+			for (int i = 0 ; i < indexes.length ; i++) {
+				int idx = indexes[i];
+				values.add(Query.addBackSlash(items[idx].getText(icol)));
+			}
+			boolean firstValue = true;
+			for (String value : values) {
+				if (firstValue) {
+					query.append(value);
+					firstValue = false;
+				} else {
+					query.append("|"+value); //$NON-NLS-1$
+				}
+			}
+			query.append("\""); //$NON-NLS-1$
+		}
+		query.append("]"); //$NON-NLS-1$
+		System.out.println(Messages.InternalViewEditor_25+query);
+		return query.toString();
+	}
+
+	@Override
+	public Object toConcordance(){
+		String query = buildQuery();
+		if (query == null) return null;
+
+		ConcordancesEditorInput editorInput = new ConcordancesEditorInput(corpus, null);
+		IWorkbenchPage page = this.getSite().getPage();
+		try {
+			ConcordancesEditor conceditor = (ConcordancesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			conceditor.setQuery(query);
+			conceditor.compute();
+			return conceditor;
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+		return null;
+	}
+
+	@Override
+	public Object toIndex() {
+		String query = buildQuery();
+		if (query == null) return null;
+
+		IndexEditorInput editorInput = new IndexEditorInput(corpus);
+		IWorkbenchPage page = this.getSite().getPage();
+		try {
+			IndexEditor voceditor = (IndexEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+			voceditor.setFocus(query);
+			voceditor.compute();
+			return voceditor;
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+		return null;
+	}
+
+	@Override
+	public Object toProgression() {
+		String query = buildQuery();
+		List<Query> queries = Arrays.asList(new Query(query));
+		if (query == null) return null;
+
+		final ProgressionDialog d = new ProgressionDialog(this.formPanel.getShell(), corpus,
+				queries);
+		int code = d.open();
+		if (code == Window.OK) {
+			return ComputeProgression.computeProgression(d);
+		}
+		return null;
+	}
+
+	public boolean backToText(Line line) {
+		Match m = line.getMatch();
+		internalView.getCurrentSegmentNo();
+		int[] cpos= {m.getStart()};
+		int[] n;
+		try {
+			StructuralUnitProperty sup = null;
+			for (StructuralUnitProperty s : internalView.getStructuralUnit().getProperties()) {
+				sup = s;
+				break;
+			}
+			n = Toolbox.getCqiClient().cpos2Struc(sup.getQualifiedName(), cpos);
+			return goToSegment(n[0]);
+		} catch (Exception e) {
+			System.out.println("Error while internal view go back to "+line);
+			Log.printStackTrace(e);
+		} 
+		return false;
+	}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return this.corpus.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/internal/InternalViewEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableEditor.java	(revision 122)
@@ -0,0 +1,229 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.input.FrequencyListEditorInput;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+// TODO: Auto-generated Javadoc
+/**
+ * Generic editor of tableable objects.
+ *
+ * @author sloiseau
+ */
+public class TableEditor extends EditorPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.editors.TableEditor"; //$NON-NLS-1$
+	
+	/** The viewer. */
+	private TableViewer viewer;
+	
+	/** The i editor input. */
+	private IEditorInput iEditorInput;
+
+	/** The table sorter. */
+	private TableSorter tableSorter;
+
+	/**
+	 * Linking with the OutlineView.
+	 *
+	 * @param monitor the monitor
+	 */
+	// private OverviewOutlinePage overviewOutlinePage;
+
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+		this.iEditorInput = input;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		parent.setLayout(new FillLayout());
+
+		viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL
+				| SWT.MULTI | SWT.FULL_SELECTION | SWT.VIRTUAL);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		Table table = viewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+
+		if (!(iEditorInput instanceof Tablable)) {
+			throw new IllegalArgumentException(Messages.TableEditor_0);
+		}
+
+		Tablable tableInput = (Tablable) iEditorInput;
+
+		String[] titles = tableInput.getColumnTitles();
+
+		for (int i = 0; i < titles.length; i++) {
+			final int index = i;
+			final TableViewerColumn column = new TableViewerColumn(viewer,
+					SWT.NONE);
+
+			column.getColumn().setText(titles[i]);
+			column.getColumn().setWidth(100);
+			column.getColumn().setResizable(true);
+			column.getColumn().setMoveable(true);
+
+			column.getColumn().addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					tableSorter.setColumn(index);
+					int dir = viewer.getTable().getSortDirection();
+					if (viewer.getTable().getSortColumn() == column.getColumn()) {
+						dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+					} else {
+						dir = SWT.DOWN;
+					}
+					viewer.getTable().setSortDirection(dir);
+					viewer.getTable().setSortColumn(column.getColumn());
+					viewer.refresh();
+				}
+			});
+		}
+
+		viewer.setContentProvider(tableInput.getContentProvider());
+		viewer.setLabelProvider(tableInput.getLabelProvider());
+		viewer.setInput(tableInput.getInput());
+
+		tableSorter = new TableSorter();
+		tableSorter.setColumnTypes(tableInput.getColumnTypes());
+		if (this.iEditorInput instanceof FrequencyListEditorInput) {
+			FrequencyListEditorInput ed = (FrequencyListEditorInput) this.iEditorInput;
+			tableSorter.setLocale(ed.getLexicon().getCorpus().getLocale());
+		}
+		else if (this.iEditorInput instanceof LexicalTableEditorInput) {
+			LexicalTableEditorInput ed = (LexicalTableEditorInput) this.iEditorInput;
+			tableSorter.setLocale(ed.getLexicalTable().getPartition().getCorpus().getLocale());
+		}
+		viewer.setSorter(tableSorter);
+
+		createContextMenu(viewer);
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/**
+	 * Gets the table sorter.
+	 *
+	 * @return the table sorter
+	 */
+	public TableSorter getTableSorter() {
+		return tableSorter;
+	}
+
+	/**
+	 * Gets the table viewer.
+	 *
+	 * @return the table viewer
+	 */
+	public TableViewer getTableViewer() {
+		return viewer;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		viewer.getControl().setFocus();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/LexicalTableEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/LexicalTableEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/LexicalTableEditor.java	(revision 122)
@@ -0,0 +1,205 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.searchengine.cqp.corpus.Property;
+
+/**
+ * The Class LexicalTableEditor.
+ */
+public class LexicalTableEditor extends EditorPart {
+
+	/**
+	 * Instantiates a new lexical table editor.
+	 */
+	public LexicalTableEditor() {
+		// TODO Auto-generated constructor stub
+	}
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.LexicalTableEditor"; //$NON-NLS-1$
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		GridLayout parentLayout = new GridLayout(1, false);
+		parent.setLayout(parentLayout);
+
+		Lexicon lexicon = null; // ((LexicalTableEditorInput)getEditorInput()).getLexicon();
+		Property property = ((LexicalTableEditorInput) getEditorInput())
+				.getProperty();
+
+		Composite corpusInfo = new Composite(parent, SWT.NONE);
+		GridLayout corpusInfoLayout = new GridLayout(1, false);
+		corpusInfo.setLayout(corpusInfoLayout);
+
+		Label propertyLabel = new Label(corpusInfo, SWT.NONE);
+		propertyLabel.setText(Messages.LexicalTable_1 + property.getName());
+		propertyLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		Label numberOfTypeLabel = new Label(corpusInfo, SWT.NONE);
+		//numberOfTypeLabel.setText(Messages.bind(Messages.LexicalTable_2, lexicon.nbrOfType()));
+		numberOfTypeLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+
+		Label numberOfTokenLabel = new Label(corpusInfo, SWT.NONE);
+//		int numberOfToken = lexicon.nbrOfToken();
+//		numberOfTokenLabel.setText(Messages.LexicalTable_3 + numberOfToken);
+		numberOfTokenLabel.setLayoutData(new GridData(GridData.END,
+				GridData.CENTER, false, false));
+
+		TableViewer viewer = new TableViewer(parent, SWT.VIRTUAL | SWT.BORDER
+				| SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		Table table = viewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+		/*TableColumn nameColumn = new TableColumn(table, SWT.LEFT);
+		nameColumn.setText(Messages.IndexEditor_27
+				+ lexicon.getProperty().toString());
+		nameColumn.setWidth(320);
+		TableColumn sizeColumn = new TableColumn(table, SWT.RIGHT);
+		sizeColumn.setText(Messages.FrequencyListEditorInput_4);
+		sizeColumn.setWidth(80);
+		int[] freqs = lexicon.getFreq();
+		String[] types = lexicon.getForms();
+		for (int i = 0; i < lexicon.nbrOfType(); i++) {
+			TableItem item = new TableItem(table, SWT.NONE);
+			item.setText(new String[] { types[i], String.valueOf(freqs[i]) });
+		}
+		*/
+		createContextMenu(viewer);
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/**
+	 * Sets the focus.
+	 *
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/LexicalTableEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineContentProvider.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.referencer;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.functions.referencer.Referencer;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The IStructuredContentProvider used by the reference and line tables.
+ *
+ * @author mdecorde
+ */
+public class LineContentProvider implements IStructuredContentProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
+	 * .lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked")
+		List<Referencer.Line> lines = (List<Referencer.Line>) inputElement;
+		return lines.toArray();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
+	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineLabelProvider.java	(revision 122)
@@ -0,0 +1,105 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.referencer;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.functions.referencer.Referencer;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LineLabelProvider.
+ */
+public class LineLabelProvider implements ITableLabelProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		Referencer.Line line = (Referencer.Line) element;
+		switch (columnIndex) {
+		case 0:
+			return ""; //$NON-NLS-1$
+		case 1:
+			return line.getPropValue();
+		case 2:
+			StringBuffer str = new StringBuffer();
+			for(String ref : line.getReferences())
+			{
+				str.append(", "+ref+"("+line.getCount(ref)+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			}
+			return str.substring(2); 
+		default:
+			return ""; //$NON-NLS-1$
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void addListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
+	 */
+	@Override
+	public boolean isLabelProperty(Object element, String property) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	@Override
+	public void removeListener(ILabelProviderListener listener) {
+		// TODO Auto-generated method stub
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/LineLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/ReferencerEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/ReferencerEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/ReferencerEditor.java	(revision 122)
@@ -0,0 +1,756 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.referencer;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.referencer.Referencer.Line;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.link.ReferencerToConc;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.ReferencerEditorInput;
+import org.txm.rcpapplication.preferences.ReferencerPreferencePage;
+import org.txm.rcpapplication.swt.widget.NavigationWidget;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.rcpapplication.swt.widget.QueryWidget;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReferencerEditor.
+ */
+public class ReferencerEditor extends EditorPart implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.referencer.ReferencerEditor"; //$NON-NLS-1$
+	
+	/** The corpus. */
+	Corpus corpus;
+	
+	/** The referencer. */
+	Referencer referencer;
+
+	/** The querywidget. */
+	QueryWidget querywidget;
+	
+	/** The props area. */
+	protected PropertiesSelector propsArea;
+	
+	/** The pattern area. */
+	protected PropertiesSelector patternArea;
+	
+	/** The navigation area. */
+	NavigationWidget navigationArea;
+
+	/** The line table viewer. */
+	protected TableViewer viewer;
+	
+	/** The n column. */
+	protected TableColumn nColumn;
+	
+	/** The unit column. */
+	protected TableColumn unitColumn;
+	
+	/** The freq column. */
+	protected TableColumn freqColumn;
+	
+	/** The separator column. */
+	protected TableColumn separatorColumn;
+
+	/** The lineperpage. */
+	int lineperpage = 100;
+	
+	/** The top line. */
+	int topLine=0;
+	
+	/** The bottom line. */
+	int bottomLine;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+	throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		this.corpus = ((ReferencerEditorInput) input).getCorpus();
+		this.referencer = ((ReferencerEditorInput) input).getReferencer();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+	
+	/** The mess. */
+	String mess;
+	
+	/** The source. */
+	private Object source;
+	
+	/**
+	 * Compute.
+	 *
+	 * @return true, if successful
+	 */
+	public boolean compute()
+	{
+		mess = NLS.bind(Messages.ReferencerEditor_0, 
+			new Object[]{querywidget.getQuery(), corpus, propsArea.getProperties().get(0), 
+				patternArea.getProperties()})+ "\n"; //$NON-NLS-1$
+		
+		final Query query = querywidget.getQuery();
+		final List<Property> queryprops = propsArea.getProperties();
+		final List<Property> refs = patternArea.getProperties();
+		
+		System.out.println(NLS.bind(Messages.ReferencerEditor_5, query));
+		JobHandler jobhandler = new JobHandler(mess) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					JobsTimer.start();
+					monitor.beginTask(mess, 100);
+					boolean docompute = false;
+					if (referencer != null) {
+						if (referencer.getQuery().equals(query)) 
+						{	
+							boolean clean = false;
+							if (!referencer.getProperty().toString().equals(queryprops.get(0).toString()))
+							{
+								referencer.setProperty(propsArea.getProperties().get(0));
+								clean = true;
+							}
+
+							if (!referencer.getPattern().toString().equals(refs.toString()))
+							{
+								ArrayList<Property> pattern = new ArrayList<Property>(refs);
+								referencer.setPattern(pattern);
+								clean = true;
+							}
+
+							if (clean)
+							{
+								referencer.clearAllLines();
+								docompute = true;
+							}
+							
+						}
+						else
+							docompute = true;
+					}
+					else
+						docompute = true;
+
+					if (docompute) {
+						Property p = queryprops.get(0);
+						ArrayList<Property> pattern = new ArrayList<Property>(refs);
+						boolean hierarchicSort = TxmPreferences.getBoolean(ReferencerPreferencePage.SORTBYFREQ);
+						referencer = new Referencer(corpus, query, p, pattern, hierarchicSort);
+						this.acquireSemaphore();
+						corpus.storeResult(referencer);
+						this.releaseSemaphore();
+					}
+
+					try  {
+						if (query.getQueryString().equals("")) //$NON-NLS-1$
+							return Status.CANCEL_STATUS;
+
+						monitor.subTask(Messages.ReferencerEditor_8);
+						if (!referencer.getQueryMatches())
+						{
+							System.out.println(Messages.ReferencerEditor_7);
+							return Status.CANCEL_STATUS;
+						}
+						
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+						
+						monitor.subTask(Messages.ReferencerEditor_10);
+						if (!referencer.getQueryindexes())
+							return Status.CANCEL_STATUS;
+						
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+						
+						monitor.subTask(Messages.ReferencerEditor_12);
+						if (!referencer.groupPositionsbyId())
+							return Status.CANCEL_STATUS;
+						
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+						
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+					
+					if (monitor.isCanceled())
+						return Status.CANCEL_STATUS;
+					
+					monitor.worked(50);
+
+					monitor.subTask(Messages.ReferencerEditor_13);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							fillDisplayArea(0, lineperpage);
+							CorporaView.refresh();
+							CorporaView.expand(corpus);
+							QueriesView.refresh();
+							RVariablesView.refresh();
+							setPartName(corpus.getName()+":"+referencer.getName()); //$NON-NLS-1$
+							
+							viewer.getTable().setFocus();
+							System.out.println(NLS.bind(Messages.CreatePartition_5, referencer.getNLines(), referencer.getV()));
+						}
+					});
+
+					monitor.worked(100);
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite arg0) {
+		arg0.setLayout(new GridLayout(1,true));
+		Composite paramArea = new Composite(arg0, SWT.NONE);
+		paramArea.setLayout(new GridLayout(3, false));
+		paramArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+
+		Composite resultArea = new Composite(arg0, SWT.NONE);
+		resultArea.setLayout(new GridLayout(1, false));
+		resultArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, true));
+		// [Query
+		querywidget = new QueryWidget(paramArea, SWT.None);
+		querywidget.setLayoutData(new GridData(GridData.FILL, GridData.CENTER,
+				true, false));
+		querywidget.addKeyListener(new KeyListener() {
+			@Override
+			public void keyReleased(KeyEvent e) {}
+
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR)
+				{
+					compute();
+				}
+			}
+		});
+
+		// [Edit]
+		propsArea = new PropertiesSelector(paramArea, SWT.NONE);
+		propsArea.setMaxPropertyNumber(1);
+		propsArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				false, false));
+		propsArea.setLayout(new GridLayout(3, false));
+		ArrayList<Property> availables = new ArrayList<Property>();
+		try {
+			availables = new ArrayList<Property>(corpus.getOrderedProperties());
+		} catch (CqiClientException e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+		}
+
+		ArrayList<Property> selectedProps = new ArrayList<Property>();
+		if (referencer != null) {
+			selectedProps.add(referencer.getProperty());
+			availables.remove(referencer.getProperty());
+			this.propsArea.setProperties(availables, selectedProps);
+		} else {
+			this.propsArea.setCorpus(corpus);
+		}
+
+		// [Search]
+		Button go = new Button(paramArea, SWT.PUSH);
+		go.setText(Messages.IndexEditor_4);
+		go.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				false, false));
+		Font f = go.getFont();
+		FontData defaultFont = f.getFontData()[0];
+		defaultFont.setStyle(SWT.BOLD);
+		Font newf = new Font(go.getDisplay(), defaultFont);
+		go.setFont(newf);
+
+		go.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+		go.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				compute();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// [pattern : ... ]
+		patternArea = new PropertiesSelector(paramArea, SWT.NONE);
+		patternArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false,3,1));
+		patternArea.setLayout(new GridLayout(3, false));
+		patternArea.setText(Messages.ReferencerEditor_6);
+		availables = new ArrayList<Property>();
+		try {
+			availables = new ArrayList<Property>(corpus.getStructuralUnitProperties());
+			Collections.sort(availables);
+		} catch (CqiClientException e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			return;
+		}
+
+		selectedProps = new ArrayList<Property>();
+		if (referencer != null) {
+			for(Property p : referencer.getPattern()) {
+				selectedProps.add(p);
+				availables.remove(p);
+			}
+		}
+		
+		if (selectedProps.size() == 0) { // no referencer result was selected
+			for (int i = 0 ; i < availables.size() ; i++) {
+				Property p = availables.get(i);
+				if (p.getQualifiedName().endsWith("text_id")) {
+					selectedProps.add(availables.get(i));
+					availables.remove(i);
+				}
+			}
+		}
+
+		this.patternArea.setProperties(availables, selectedProps);
+
+		//pagination
+		navigationArea = new NavigationWidget(paramArea, SWT.None);
+		navigationArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,	true, false,3 ,1));
+
+		navigationArea.addFirstListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ReferencerEditor_17);
+				fillDisplayArea(0, lineperpage);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+		});
+		navigationArea.addLastListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ReferencerEditor_19);
+				fillDisplayArea(referencer.getNLines()
+						- lineperpage, referencer.getNLines());
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+		});
+		navigationArea.addNextListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ReferencerEditor_21);
+				fillDisplayArea(topLine + lineperpage,
+						bottomLine + lineperpage);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+		});
+		navigationArea.addPreviousListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.ReferencerEditor_23);
+				fillDisplayArea(topLine - lineperpage,
+						bottomLine - lineperpage);
+				viewer.getTable().select(0);
+				viewer.getTable().showSelection();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+		});
+		//result
+
+		viewer = new TableViewer(resultArea, SWT.MULTI
+				| SWT.FULL_SELECTION | SWT.BORDER);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		if (corpus != null && corpus.getFont() != null && corpus.getFont().length() > 0) {
+			Font old = viewer.getTable().getFont();
+			FontData fD = old.getFontData()[0];
+			//Font f = new Font(old.getDevice(), corpus.getFont(), fD.getHeight(), fD.getStyle());
+			Font font = new Font(Display.getCurrent(), corpus.getFont(), fD.getHeight(), fD.getStyle()); 
+			viewer.getTable().setFont(font);
+		}
+		
+		createContextMenu(viewer);
+		viewer.getTable().setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, true));
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+
+		viewer.setLabelProvider(new LineLabelProvider());
+		viewer.setContentProvider(new LineContentProvider());
+		viewer.setInput(new ArrayList<Property>());
+
+		viewer.getTable().addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				
+				Point mouseposition = new Point(e.x
+						+ viewer.getTable().getHorizontalBar()
+						.getSelection(), e.y);
+				int col = getPointedColumn(mouseposition);
+				if (col == 1) {
+					StatusLine.setMessage(Messages.ReferencerEditor_25);
+					sendSelectionToConc();
+				} else if (col == 2) {
+					//System.out.println("Send to edition ?"); //$NON-NLS-1$
+				}
+			}
+		});
+
+		nColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		nColumn.setText(" "); //$NON-NLS-1$
+		nColumn.pack();
+
+		unitColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		unitColumn.setText(Messages.ReferencerEditor_9);
+		unitColumn.setToolTipText(Messages.ReferencerEditor_9);
+		unitColumn.setWidth(200);
+		unitColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		freqColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
+		freqColumn.setText(Messages.ReferencerEditor_11);
+		freqColumn.setToolTipText(Messages.ReferencerEditor_11);
+		freqColumn.setWidth(100);
+		freqColumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		
+		if (referencer != null)
+		{
+			this.fillDisplayArea(0, referencer.getNLines());
+			this.setPartName(referencer.getCorpus()+ ": "+referencer.getName()); //$NON-NLS-1$
+			this.querywidget.setText(referencer.getQuery().getQueryString());
+		}
+		
+		
+	}
+	
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/**
+	 * Send selection to conc.
+	 */
+	protected void sendSelectionToConc() {
+		ReferencerToConc.link(this, this.viewer.getSelection());
+	}
+
+	/**
+	 * Fill display area.
+	 *
+	 * @param from the from
+	 * @param to the to
+	 */
+	public void fillDisplayArea(int from, int to)
+	{
+		from = Math.max(from, 0);
+		to = Math.min(to, referencer.getNLines());
+		List<Line> lines = null;
+		if (referencer.getNLines() > 0) {
+			try {
+				lines = referencer.getLines(from, to);
+			} catch (Exception e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				lines = new ArrayList<Line>();
+			}
+		} else
+			lines = new ArrayList<Line>();
+
+		navigationArea.setInfoLineText(""+(from + 1), //$NON-NLS-1$
+				"-" + (to) + " / " + referencer.getNLines()); //$NON-NLS-1$ //$NON-NLS-2$
+		navigationArea.setPreviousEnabled(from > 0);
+		navigationArea.setFirstEnabled(from > 0);
+		navigationArea.setNextEnabled(to < referencer.getNLines() - 1);
+		navigationArea.setLastEnabled(to < referencer.getNLines() - 1);
+
+		unitColumn.setText(referencer.getProperty().toString());
+
+		String unitColumnHeader = ""; //$NON-NLS-1$
+		for (Property p : referencer.getPattern())
+			unitColumnHeader += p.toString() + ", "; //$NON-NLS-1$
+		if (unitColumnHeader.length() > 0)
+			unitColumnHeader = unitColumnHeader.substring(0, unitColumnHeader
+					.length() - 2);
+		freqColumn.setText(unitColumnHeader);
+
+		viewer.setInput(lines);
+		viewer.refresh();
+		// System.out.println("table refreshed from "+from+" to "+to+" with : "+lines);
+		topLine = from;
+		bottomLine = to;
+		for (TableColumn col : viewer.getTable().getColumns())
+			col.pack();
+	}
+
+	/**
+	 * Gets the pointed column.
+	 *
+	 * @param mouseposition the mouseposition
+	 * @return the pointed column
+	 */
+	public int getPointedColumn(Point mouseposition) {
+		int x = mouseposition.x; // + lineTableViewer.getTable().get;
+		int sumWidthColumn = this.nColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 0;
+
+		sumWidthColumn += this.unitColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 1;
+
+		sumWidthColumn += this.freqColumn.getWidth();
+		if (x < sumWidthColumn)
+			return 2;
+
+		return 2;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		querywidget.setFocus();
+	}
+
+	/**
+	 * Gets the referencer.
+	 *
+	 * @return the referencer
+	 */
+	public Referencer getReferencer() {
+		return this.referencer;
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return this.corpus;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return referencer;
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return this.corpus.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/referencer/ReferencerEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/dictionnary/DictionnaryEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/dictionnary/DictionnaryEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/dictionnary/DictionnaryEditor.java	(revision 122)
@@ -0,0 +1,97 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.dictionnary;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+// TODO: Auto-generated Javadoc
+/**
+ * extends the index editor to set : the number of property to 1 hide the
+ * query field @ author mdecorde.
+ */
+public class DictionnaryEditor extends IndexEditor {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.index.IndexEditor#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		super.createPartControl(parent);
+		this.propsArea.setMaxPropertyNumber(1);
+		this.queryWidget.setText("[]"); //$NON-NLS-1$
+		this.queryWidget.setEnabled(false);
+		this.queryWidget.setVisible(false);
+		this.queryWidget.setSize(0, 0);
+		this.queryWidget.dispose();
+		this.queryLabel.setVisible(false);
+		this.queryLabel.dispose();
+		saveIndex = false;
+	}
+	
+	private void generateName() {
+		if (this.getPartition() == null)
+			this.setPartName(this.getCorpus().getName()+": "+this.index.getProperties().get(0).getName()); //$NON-NLS-1$
+		else
+			this.setPartName(this.getPartition().getName()+": "+this.index.getProperties().get(0).getName()); //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.index.IndexEditor#getTitleToolTip()
+	 */
+	@Override
+	public String getTitleToolTip() {
+		if (index != null) {
+			String str;
+
+			if (partition != null)
+				str = NLS.bind(Messages.DictionnaryEditor_1, 
+						new Object[]{partition.getName(), index.getQuery().getQueryString(), 
+						index.getProperties(), index.getFmin(), index.getFmax()});
+			else
+				str = NLS.bind(Messages.DictionnaryEditor_3, 
+						new Object[]{corpus.getName(), index.getQuery().getQueryString(), 
+						index.getProperties(), index.getFmin(), index.getFmax()});
+			return str;
+		}
+		return ""; //$NON-NLS-1$
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.index.IndexEditor#getSource()
+	 */
+	@Override
+	public Object getSource()
+	{
+		return index.getLexicon();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/dictionnary/DictionnaryEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/___FactorialMapEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/___FactorialMapEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/___FactorialMapEditor.java	(revision 122)
@@ -0,0 +1,347 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.ca;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.Toolbox;
+import org.txm.functions.ca.CA;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.input.CorrespondanceAnalysisEditorInput;
+import org.txm.rcpapplication.perspective.LabPerspective;
+import org.txm.rcpapplication.svg.SVGComposite;
+import org.txm.stat.StatException;
+// TODO: Auto-generated Javadoc
+/**
+ * Show the svg file of the factorial map user can choose which dimension use @
+ * author mdecorde.
+ */
+@Deprecated
+// FIXME : this class is no longer in use, to remove when Charts Engine will be validated
+public class ___FactorialMapEditor extends EditorPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.editors.ca.FactorialMapEditor"; //$NON-NLS-1$
+	
+	/** The ca. */
+	private CA ca;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+		CorrespondanceAnalysisEditorInput ii = (CorrespondanceAnalysisEditorInput) input;
+		ca = ii.getCA();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/** The plans. */
+	Combo plans;
+	
+	/** The show individuals. */
+	Button showIndividuals;
+	
+	/** The show variables. */
+	Button showVariables;
+	
+	/** The redraw. */
+	Button redraw;
+	
+	/** The reset. */
+	Button reset;
+	
+	Text colFilterText;
+	Text rowFilterText;
+	Text cexText;
+	
+	/** The graph. */
+	SVGComposite graph;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		Composite mainPanel = new Composite(parent, SWT.NONE);
+		mainPanel.setLayout(new FormLayout());
+
+		// System.out.println(parent.getLayout());
+		Composite paramPanel = new Composite(mainPanel, SWT.NONE);
+		Composite svgPanel = graph = new SVGComposite(mainPanel, SWT.EMBEDDED | SWT.NO_BACKGROUND);
+
+		FormData fdata = new FormData();
+		fdata.top = new FormAttachment(0);
+		fdata.left = new FormAttachment(0);
+		fdata.right = new FormAttachment(100);
+		paramPanel.setLayoutData(fdata);
+
+		fdata = new FormData();
+		fdata.top = new FormAttachment(paramPanel);
+		fdata.left = new FormAttachment(0);
+		fdata.right = new FormAttachment(100);
+		fdata.bottom = new FormAttachment(100);
+		svgPanel.setLayoutData(fdata);
+
+		// fill param Area
+		RowLayout layout = new RowLayout();
+		layout.wrap = true;
+		layout.center = true;
+		paramPanel.setLayout(layout);
+
+		Label dimLabel = new Label(paramPanel, SWT.NONE);
+		dimLabel.setText(Messages.FactorialMapEditor_0);
+
+		plans = new Combo(paramPanel, SWT.READ_ONLY);
+		
+		ArrayList<String> couples = null;
+		try {
+			int nbsv = ca.getSingularValues().length;
+			couples = new ArrayList<String>();
+			for(int i = 1 ; i < nbsv ; i ++)
+				for(int j = i ; j < nbsv ; j++)
+					if(i != j)
+						couples.add("("+i+","+j+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (StatException e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+		}
+		
+		String items[] = { "(1,2)", "(1,3)", "(2,3)" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+//		commented because the infos panel is not ready to manage more axes
+//		if(couples != null && couples.size() > 3)
+//			items = couples.toArray(new String[couples.size()]);
+
+		plans.setItems(items);
+		plans.select(0);
+
+		Label showLabel = new Label(paramPanel, SWT.NONE);
+		showLabel.setText(Messages.FactorialMapEditor_4);
+
+		showIndividuals = new Button(paramPanel, SWT.CHECK);
+		showIndividuals.setText(Messages.FactorialMapEditor_5);
+		showIndividuals.setSelection(true);
+		showVariables = new Button(paramPanel, SWT.CHECK);
+		showVariables.setText(Messages.FactorialMapEditor_6);
+		
+		if (LabPerspective.isActive()) {
+			showLabel = new Label(paramPanel, SWT.NONE);
+			showLabel.setText("Col&&Row filters: ");
+			
+			colFilterText = new Text(paramPanel, SWT.SINGLE | SWT.BORDER);
+			colFilterText.setText(ca.getColFilter());
+			rowFilterText = new Text(paramPanel, SWT.SINGLE | SWT.BORDER);
+			rowFilterText.setText(ca.getRowFilter());
+			
+			showLabel = new Label(paramPanel, SWT.NONE);
+			showLabel.setText("labels&&points size: ");
+			
+			cexText = new Text(paramPanel, SWT.SINGLE | SWT.BORDER);
+			cexText.setText(Float.toString(ca.getCex()));
+		}
+		
+		redraw = new Button(paramPanel, SWT.PUSH);
+		redraw.setText(Messages.ComplexSubcorpusPanel_5);
+		redraw.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.FactorialMapEditor_8);
+				ca.setShown(showIndividuals.getSelection(), showVariables.getSelection());
+				
+				if (cexText != null) {
+					float fcex = 0.7f;
+					try {
+						fcex = Float.parseFloat(cexText.getText());
+					} catch(Exception ecex) {
+						System.out.println("Malforme size value: "+cexText.getText());
+					}
+					ca.displayOptions(colFilterText.getText(), rowFilterText.getText(), fcex);
+				}
+				
+				int dim1 = 1;
+				int dim2 = 2;
+				String str = plans.getItem(plans.getSelectionIndex());
+				str = str.substring(1, str.length() -1); // remove ( and )
+				String[] split = str.split(","); // 2 items //$NON-NLS-1$
+				if(split.length != 2)
+				{
+					System.out.println(Messages.FactorialMapEditor_10);
+					return;
+				}
+				dim1 = Integer.parseInt(split[0]);
+				dim2 = Integer.parseInt(split[1]);
+				ca.setDimensions(dim1, dim2);
+				reloadGraph();
+				StatusLine.setMessage("" ); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		reset = new Button(paramPanel, SWT.PUSH);
+		reset.setText(Messages.FactorialMapEditor_11);
+		reset.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.FactorialMapEditor_13);
+				graph.resetZoom();
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// fill svgPanel
+		
+		// graph = new Mif Canvas(svgPanel);
+
+		reloadGraph();
+		// createContextMenu(viewer);
+	}
+
+	/**
+	 * Reload graph.
+	 */
+	private void reloadGraph() {
+		try {
+			// System.out.println("redraw1");
+			String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+			File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
+			resultDir.mkdirs();
+			File file = File.createTempFile("TXMCAMAP", ".svg", resultDir); //$NON-NLS-1$ //$NON-NLS-2$
+			if(file.canWrite()) {
+				ca.toSVGFactorialMap(file);
+			} else {
+				System.out.println(NLS.bind(Messages.CorporaView_9, file));
+				return;
+			}
+			/*
+			 * DocumentBuilderFactory dbf =
+			 * DocumentBuilderFactory.newInstance(); DocumentBuilder db; db =
+			 * dbf.newDocumentBuilder(); Document doc = db.parse(file);
+			 * graph.showSVGGraph(doc);
+			 */
+			
+			graph.setSVGFile(file.toURI().toURL());
+			graph.layout();
+			graph.redraw();
+			// System.out.println("redraw2");
+		} catch (Exception e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+		}
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/___FactorialMapEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CaEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CaEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CaEditor.java	(revision 122)
@@ -0,0 +1,356 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.editors.ca;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Sash;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.functions.ca.CA;
+import org.txm.rcp.chartsengine.base.___SWTChartsComponentProvider;
+import org.txm.rcp.chartsengine.base.___editors.___ChartEditorPart;
+import org.txm.rcp.chartsengine.base.events.___EventCallBackHandler;
+import org.txm.rcp.chartsengine.base.events.ca.CAPointSelectionCallBack;
+import org.txm.rcp.chartsengine.base.events.ca.CASelectionListener;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.GenericMultiPageEditor;
+import org.txm.rcpapplication.editors.SVGGraphicEditor;
+import org.txm.rcpapplication.editors.input.CorrespondanceAnalysisEditorInput;
+import org.txm.rcpapplication.editors.input.IProvidingMultiPageEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * extends the GenericMultipage editor, and put the first tab next to the left
+ * of the TabFolder @ author mdecorde.
+ */
+public class CaEditor extends GenericMultiPageEditor implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.ca.CaEditor"; //$NON-NLS-1$
+
+	/** The self. */
+	CaEditor self;
+
+	/** The ca. */
+	private CA ca;
+
+	/** The source. */
+	private Object source;
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.GenericMultiPageEditor#createPages()
+	 */
+	@Override
+	protected void createPages() {
+		self = this;
+		Composite container = this.getContainer();
+		final Composite parentContainer = container.getParent();
+
+		// System.out.println("parent container layout : "+parentContainer.getLayout());
+
+		parentContainer.setLayout(new FormLayout());// change layout
+		final Sash sash = new Sash(parentContainer, SWT.VERTICAL);
+
+		Composite AFCgraph = new Composite(parentContainer, SWT.NONE);
+
+		FormData containerData = new FormData();
+		containerData.left = new FormAttachment(sash, 0);
+		containerData.right = new FormAttachment(100, 0);
+		containerData.top = new FormAttachment(0, 0);
+		containerData.bottom = new FormAttachment(100, 0);
+		container.setLayoutData(containerData);// set new layout data
+
+		final FormData sashData = new FormData();
+		sashData.left = new FormAttachment(70, 0);
+		sashData.top = new FormAttachment(0, 0);
+		sashData.bottom = new FormAttachment(100, 0);
+		sash.setLayoutData(sashData);
+		sash.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event e) {
+				Rectangle sashRect = sash.getBounds();
+				Rectangle shellRect = parentContainer.getClientArea();
+				int right = shellRect.width - sashRect.width;
+				e.x = Math.max(Math.min(e.x, right), 0);
+				if (e.x != sashRect.x) {
+					sashData.left = new FormAttachment(0, e.x);
+					parentContainer.layout();
+				}
+			}
+		});
+
+		FormData AFCgraphData = new FormData();
+		AFCgraphData.left = new FormAttachment(0, 0);
+		AFCgraphData.right = new FormAttachment(sash, 0);
+		AFCgraphData.top = new FormAttachment(0, 0);
+		AFCgraphData.bottom = new FormAttachment(100, 0);
+		AFCgraph.setLayoutData(AFCgraphData);// set new layout data
+		AFCgraph.setLayout(new FillLayout());
+		// /////////////////////
+
+		IEditorInput input = getEditorInput();
+		if (!(input instanceof IProvidingMultiPageEditorInput)) {
+			throw new IllegalArgumentException(NLS.bind(
+					Messages.GenericMultiPageEditor_1, input.getName()));
+		}
+
+		editors = ((IProvidingMultiPageEditorInput) input).getEditors();
+		inputs = ((IProvidingMultiPageEditorInput) input).getEditorInputs();
+		names = ((IProvidingMultiPageEditorInput) input).getNames();
+
+		if (editors.size() != inputs.size()) {
+			throw new IllegalArgumentException(NLS.bind(
+					Messages.GenericMultiPageEditor_3, editors.size(), inputs.size()));
+		}
+
+		// put first editor in the left panel
+		try {
+			IEditorSite site = createSite(editors.get(0));
+			// call init first so that if an exception is thrown, we have
+			// created no
+			// new widgets
+			editors.get(0).init(site, inputs.get(0));
+
+			// Set the parent multi pages editor of the CA factorial map editor to activate it from the child editor
+			((___ChartEditorPart)editors.get(0)).setParentMultiPagesEditor(this);
+
+			editors.get(0).createPartControl(AFCgraph);
+			editors.get(0).addPropertyListener(new IPropertyListener() {
+				@Override
+				public void propertyChanged(Object source, int propertyId) {
+					self.handlePropertyChange(propertyId);
+				}
+			});
+		} catch (Exception e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			System.out.println(Messages.CaEditor_0+e1);
+			return;
+		}
+
+		for (int i = 1; i < editors.size(); i++) {
+			int editorIndex = 0;
+			try {
+				editorIndex = addPage(editors.get(i), inputs.get(i));
+			} catch (PartInitException e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				System.out.println(Messages.CaEditor_0+e);
+				return;
+			}
+			setPageText(editorIndex, names.get(i));
+		}
+
+
+		// Add selection listener to rows table to link editor with factorial map chart
+		this.getRowsInfosEditor().getViewer().addSelectionChangedListener(new CASelectionListener(this.getChartEditor(), CASelectionListener.HIGHLIGHT_ROW_POINTS));
+		// Add selection listener to cols table to link editor with factorial map chart
+		this.getColsInfosEditor().getViewer().addSelectionChangedListener(new CASelectionListener(this.getChartEditor(), CASelectionListener.HIGHLIGHT_COLUMN_POINTS));
+
+		// Add listener to column to link chart items selection order with table sorting order
+		for(int i = 0; i < this.getRowsInfosEditor().getViewer().getTable().getColumnCount(); i++) {
+			this.getRowsInfosEditor().getViewer().getTable().getColumn(i).addSelectionListener(new CASelectionListener(this.getChartEditor(), CASelectionListener.SET_CHART_ITEMS_SELECTION_ORDER));
+		}
+		// Add listener to column to link chart items selection order with table sorting order
+		for(int i = 0; i < this.getColsInfosEditor().getViewer().getTable().getColumnCount(); i++) {
+			this.getColsInfosEditor().getViewer().getTable().getColumn(i).addSelectionListener(new CASelectionListener(this.getChartEditor(), CASelectionListener.SET_CHART_ITEMS_SELECTION_ORDER));
+		}
+
+		// Initialize the default chart items selection order on descendant label order
+		this.getChartEditor().getSWTChartComponentsProvider().getChartsEngine().updateChartCAFactorialMapSetLabelItemsSelectionOrder(this.getChartEditor().getChart(),
+				this.getRowsInfosEditor().getOrdererLabels(), this.getColsInfosEditor().getOrdererLabels());
+		
+		
+		// Registers mouse handling call backs
+		___EventCallBackHandler mouseHandler = this.getChartEditor().getComposite().getMouseCallBackHandler();
+		if(mouseHandler != null)	 {
+			// Register mouse single click call back handler to manage the selection of SWT table rows from the charts engine TBX level
+			mouseHandler.registerEventCallBack(new CAPointSelectionCallBack(this.getChartEditor(), this.getRowsInfosEditor().getViewer(), this.getColsInfosEditor().getViewer()));
+		}
+		
+		// Registers keyboard handling call backs
+		___EventCallBackHandler keyHandler = this.getChartEditor().getComposite().getKeyCallBackHandler();
+		if(keyHandler != null)	 {
+			// Register mouse single click call back handler to manage the selection of SWT table rows from the charts engine TBX level
+			keyHandler.registerEventCallBack(new CAPointSelectionCallBack(this.getChartEditor(), this.getRowsInfosEditor().getViewer(), this.getColsInfosEditor().getViewer()));
+		}
+		
+
+		// Sets the parent multi pages editor of the singular values barplot to activate it from the child editor
+		((___ChartEditorPart)editors.get(4)).setParentMultiPagesEditor(this);
+
+		// initialize the default shared context menus as Export, etc. for the singular values barplot
+		___SWTChartsComponentProvider.initDefaultContextMenus(((___ChartEditorPart)editors.get(4)).getComposite());
+
+		
+
+		CorrespondanceAnalysisEditorInput cainput = (CorrespondanceAnalysisEditorInput) getEditorInput();
+		this.ca = cainput.getCA();
+
+		if (cainput.getCA().getPartition() != null)
+		setPartName(cainput.getCA().getPartition().getName() + ":" //$NON-NLS-1$
+				+ cainput.getCA().getAnalysisProperty());
+
+		setActivePage(LAST_EDITOR_USED);
+		this.setTitleImage(IImageKeys.getImage(IImageKeys.ACTION_CORRESPONDANCE_ANALYSIS));
+	}
+
+	/**
+	 * Refresh graph editor.
+	 */
+	@Deprecated
+	public void refreshGraphEditor() {
+		for (EditorPart editor : this.editors) {
+			if (editor instanceof SVGGraphicEditor) {
+				((SVGGraphicEditor) editor).resetView();
+			}
+		}
+	}
+
+	@Deprecated
+	// FIXME : used by the ExportSVG command. Need to implement the abstract chart export system
+	public SVGGraphicEditor getSVGGraphicEditor() {
+		for (EditorPart editor : this.editors) {
+			if (editor instanceof SVGGraphicEditor) {
+				return (SVGGraphicEditor) editor;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Gets the cA.
+	 *
+	 * @return the cA
+	 */
+	public CA getCA() {
+		return this.ca;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return ca;
+	}
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+
+
+	/**
+	 * Gets the rows information editor.
+	 * @return
+	 */
+	public ColsRowsInfosEditor getRowsInfosEditor()	{
+		return (ColsRowsInfosEditor) this.editors.get(2);
+	}
+
+	/**
+	 * Gets the columns information editor.
+	 * @return
+	 */
+	public ColsRowsInfosEditor getColsInfosEditor()	{
+		return (ColsRowsInfosEditor) this.editors.get(3);
+	}
+
+	
+	/**
+	 * Gets the chart factorial map chart editor.
+	 * @return
+	 */
+	public ___ChartEditorPart getChartEditor()	{
+		return (___ChartEditorPart) this.editors.get(0);
+	}
+	
+	
+
+	@Override
+	public void setFocus()	{
+		// Give the focus to the CA factorial map ChartEditorPart instead of the parent MultiPageEditorPart
+		editors.get(0).setFocus();
+		// FIXME: the problem here is that we need to give the focus to the singular values chart editor when clicking in it
+	//	System.err.println("CaEditor.setFocus(): " + this.getActivePage());
+//		editors.get(4).setFocus();
+	}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		if (ca != null && ca.getCorpus() != null) 
+			return ca.getCorpus().getName().equals(corpus.getName());
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CaEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/SingularValuesEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/SingularValuesEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/SingularValuesEditor.java	(revision 122)
@@ -0,0 +1,275 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.editors.ca;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.Tablable;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.TableSorter;
+// TODO: Auto-generated Javadoc
+/**
+ * show the singular values and compute some stats.
+ *
+ * @author mdecorde
+ */
+public class SingularValuesEditor extends EditorPart {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.editors.TableEditor"; //$NON-NLS-1$
+
+	/** The viewer. */
+	private TableViewer viewer;
+
+	/** The i editor input. */
+	private IEditorInput iEditorInput;
+
+	/** The table input. */
+	private Tablable tableInput;
+
+	/** The columns. */
+	List<TableViewerColumn> columns = new ArrayList<TableViewerColumn>();
+
+	/** The table sorter. */
+	private TableSorter tableSorter;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+		this.iEditorInput = input;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		parent.setLayout(new FillLayout());
+
+		if (!(iEditorInput instanceof Tablable)) {
+			throw new IllegalArgumentException(Messages.SingularValuesEditor_0);
+		}
+		tableInput = (Tablable) iEditorInput;
+
+		viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL
+				| SWT.MULTI | SWT.FULL_SELECTION);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+
+		Table table = viewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+
+		String[] titles = tableInput.getColumnTitles();
+
+		for (int i = 0; i < titles.length; i++) {
+			final int index = i;
+			final TableViewerColumn column;
+
+			int alignment = SWT.RIGHT;
+			// Align the bar plot to the left
+			if(i == 4)	{
+				alignment = SWT.LEFT;
+			}
+
+			column = new TableViewerColumn(viewer, alignment);
+
+			column.getColumn().setText(titles[i]);
+			column.getColumn().setWidth(100);
+			column.getColumn().setResizable(true);
+			column.getColumn().setMoveable(true);
+			columns.add(column);
+
+			column.getColumn().addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e)
+				{
+					StatusLine.setMessage(Messages.IndexEditor_36);
+					tableSorter.setColumn(index);
+					int dir = viewer.getTable().getSortDirection();
+					if (viewer.getTable().getSortColumn() == column.getColumn()) {
+						dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+					} else {
+						dir = SWT.DOWN;
+					}
+					viewer.getTable().setSortDirection(dir);
+					viewer.getTable().setSortColumn(column.getColumn());
+					viewer.refresh();
+					StatusLine.setMessage(Messages.IndexEditor_37);
+				}
+			});
+		}
+
+
+		// To draw the bar plot column
+		viewer.getTable().addListener(SWT.EraseItem, new Listener() {
+		      public void handleEvent(Event event) {
+
+		    	   if(event.index == 4)	{
+		    		   int itemIndex = viewer.getTable().indexOf((TableItem)event.item);
+		    		   double percent = Double.parseDouble(((ArrayList)viewer.getElementAt(itemIndex)).get(2).toString().replaceAll(",",".")); // comma replacement according to the locale //$NON-NLS-1$ //$NON-NLS-2$
+
+		    		   int maxPercentItemIndex = 0;
+		    		   double maxPercent = Double.parseDouble(viewer.getTable().getItem(0).getText(2).replaceAll(",",".")); //$NON-NLS-1$ //$NON-NLS-2$
+		    		   double tmpMaxPercent;
+
+		    		   // Get the max percent despite of the current row sorting
+		    		   for(int i = 0; i < viewer.getTable().getItemCount(); i++) {
+		    			   tmpMaxPercent =  Double.parseDouble(viewer.getTable().getItem(i).getText(2).replaceAll(",",".")); //$NON-NLS-1$ //$NON-NLS-2$
+		    			   if(tmpMaxPercent > maxPercent)	{
+		    				   maxPercent = tmpMaxPercent;
+		    				   maxPercentItemIndex = i;
+		    			   }
+		    		   }
+
+		    		   event.gc.setBackground(viewer.getTable().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
+		    		   event.gc.fillRectangle(event.x, event.y, (int) (event.width * percent / Double.parseDouble(viewer.getTable().getItem(maxPercentItemIndex).getText(2).replaceAll(",","."))), event.height); //$NON-NLS-1$ //$NON-NLS-2$
+		    	   }
+		      }
+		    });
+
+
+
+		viewer.setContentProvider(tableInput.getContentProvider());
+		viewer.setLabelProvider(tableInput.getLabelProvider());
+		viewer.setInput(tableInput.getInput());
+
+		tableSorter = new TableSorter();
+		tableSorter.setColumnTypes(tableInput.getColumnTypes());
+		viewer.setSorter(tableSorter);
+
+		viewer.refresh();
+		createContextMenu(viewer);
+
+		tableSorter.setColumn(0);
+		int dir = viewer.getTable().getSortDirection();
+		if (viewer.getTable().getSortColumn() == columns.get(0).getColumn()) {
+			dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+		} else {
+			dir = SWT.DOWN;
+		}
+		viewer.getTable().setSortDirection(dir);
+		viewer.getTable().setSortColumn(columns.get(0).getColumn());
+		viewer.refresh();
+
+		// Pack the columns except the bar plot column
+		for(int i = 0; i < viewer.getTable().getColumnCount(); i++)	{
+			if(i != 4)	{
+				viewer.getTable().getColumn(i).pack();
+			}
+		}
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		viewer.getControl().setFocus();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/SingularValuesEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CAFactorialMapChartEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CAFactorialMapChartEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CAFactorialMapChartEditor.java	(revision 122)
@@ -0,0 +1,185 @@
+package org.txm.rcpapplication.editors.ca;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.ToolItem;
+import org.txm.functions.ca.CA;
+import org.txm.rcp.chartsengine.base.___SWTChartsComponentProvider;
+import org.txm.rcp.chartsengine.base.___editors.___ChartEditorPart;
+import org.txm.rcp.chartsengine.base.___editors.inputs.___ChartEditorInput;
+import org.txm.rcp.chartsengine.base.events.ca.CASelectionListener;
+import org.txm.rcp.chartsengine.base.messages.___SWTComponentsProviderMessages;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.searchengine.cqp.corpus.Partition;
+
+/**
+ * Correspondence analysis factorial map chart editor.
+ * @author sjacquot
+ *
+ */
+public class CAFactorialMapChartEditor extends ___ChartEditorPart {
+
+
+	/**
+	 * The <code>EditorPart</code> ID constant.
+	 */
+	protected static final String ID = CAFactorialMapChartEditor.class.getCanonicalName();
+
+
+	/**
+	 * The show/hide columns button.
+	 */
+	protected ToolItem showColumns;
+
+
+	/**
+	 * The show/hide rows button.
+	 */
+	protected ToolItem showRows;
+
+	/**
+	 * The factors selection combo box.
+	 */
+	protected Combo plans;
+
+	/**
+	 *
+	 * @param editorInput
+	 */
+	public CAFactorialMapChartEditor(___ChartEditorInput editorInput) {
+		this.setInput(editorInput);
+		// Override the editor input name
+		Partition partition = this.getResultData().getPartition();
+		if (partition != null)
+			editorInput.setName(partition.getName() + ":" + this.getResultData().getAnalysisProperty()); //$NON-NLS-1$
+		else {
+			editorInput.setName(""+this.getResultData().getCorpus() + ":" + this.getResultData().getAnalysisProperty()); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+
+	@Override
+	public void createPartControl(Composite parent) {
+
+		super.createPartControl(parent);
+
+		// Extend the chart editor tool bar
+		ToolItem separator = new ToolItem(this.toolBar, SWT.SEPARATOR);
+
+		// Show/hide columns
+		this.showColumns = new ToolItem(this.toolBar, SWT.CHECK);
+		// FIXME: keep this for offering an option "large icons" with text in buttons ?
+		//this.showColumns.setText(SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_LABEL);
+		this.showColumns.setToolTipText(___SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_COLUMS_TOOLTIP);
+		this.showColumns.setImage(IImageKeys.getImage(IImageKeys.CHARTS_CA_SHOW_COLUMNS));
+		// FIXME: this code should be restored when the charts rendering prefs will be moved outside of the CA object
+		//this.showColumns.setSelection(TxmPreferences.getBoolean(CAPreferencePage.SHOWINDIVIDUALS));
+		this.showColumns.setSelection(this.getResultData().isShowIndividuals());
+		this.showColumns.addSelectionListener(new CASelectionListener(this, CASelectionListener.SHOW_HIDE_COLUMNS));
+
+		// Show/hide rows
+		this.showRows = new ToolItem(this.toolBar, SWT.CHECK);
+		// FIXME: keep this for offering an option "large icons" with text in buttons ?
+		//this.showRows.setText(SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_LABEL);
+		this.showRows.setToolTipText(___SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_BUTTON_SHOW_ROWS_TOOLTIP);
+		this.showRows.setImage(IImageKeys.getImage(IImageKeys.CHARTS_CA_SHOW_ROWS));
+		// FIXME: this code should be restored when the charts rendering prefs will be moved outside of the CA object
+		//this.showRows.setSelection(TxmPreferences.getBoolean(CAPreferencePage.SHOWVARIABLES));
+		this.showRows.setSelection(this.getResultData().isShowVariables());
+		this.showRows.addSelectionListener(new CASelectionListener(this, CASelectionListener.SHOW_HIDE_ROWS));
+
+//
+		// Factors selection
+		ToolItem itemSeparator = new ToolItem(this.toolBar, SWT.SEPARATOR);
+		CLabel factorsLabel = new CLabel(this.toolBar, SWT.CENTER);
+		factorsLabel.setText(___SWTComponentsProviderMessages.SWTChartsComponentProvider_CA_TOOLBAR_AXES_SELECTION_COMBO_BOX_LABEL);
+		factorsLabel.pack();
+		itemSeparator.setWidth(factorsLabel.getBounds().width);
+	    itemSeparator.setControl(factorsLabel);
+
+		this.plans = new Combo(this.toolBar, SWT.READ_ONLY);
+
+		// FIXME: commented because the infos panel is not ready to manage more axes
+//		ArrayList<String> planes = null;
+//		try {
+//			int nbsv = ((CA) editorPart.getResultData()).getSingularValues().length;
+//			planes = new ArrayList<String>();
+//			for(int i = 1 ; i < nbsv ; i ++)	{
+//				for(int j = i ; j < nbsv ; j++)	{
+//					if(i != j)	{
+//						planes.add("("+i+","+j+")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+//					}
+//				}
+//			}
+//		}
+//		catch (StatException e1) {
+//			// TODO Auto-generated catch block
+//			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+//		}
+//		String [] items = planes.toArray(new String[planes.size()]);
+
+		String items[] = { "(1,2)", "(1,3)", "(2,3)" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+		// TODO : commented because the infos panel is not ready to manage more axes
+		//		if(couples != null && couples.size() > 3)	{
+		//			items = couples.toArray(new String[couples.size()]);
+		//}
+
+
+		this.plans.setItems(items);
+
+		// Preselect the plan from the CA data
+		if(this.getResultData().getFirstDimension() == 2)	{
+			this.plans.select(2);
+		}
+		else if(this.getResultData().getSecondDimension() == 3)	{
+			this.plans.select(1);
+		}
+		else	{
+			this.plans.select(0);
+		}
+
+
+		ToolItem comboItem = new ToolItem(this.toolBar, SWT.SEPARATOR);
+		comboItem.setControl(this.plans);
+		this.plans.pack();
+		comboItem.setWidth(this.plans.getBounds().width);
+		this.plans.addSelectionListener(new CASelectionListener(this, CASelectionListener.CHANGE_FACTORS));
+		
+		
+		// initialize the default shared context menus as Export, etc.
+		___SWTChartsComponentProvider.initDefaultContextMenus(this.getComposite());
+	}
+
+
+	@Override
+	public String getID() {
+		return CAFactorialMapChartEditor.ID;
+	}
+
+
+	@Override
+	public CA getResultData()	{
+		return (CA) super.getResultData();
+	}
+
+
+	/**
+	 * @return the showColumns
+	 */
+	public ToolItem getShowColumns() {
+		return showColumns;
+	}
+
+
+	/**
+	 * @return the showRows
+	 */
+	public ToolItem getShowRows() {
+		return showRows;
+	}
+
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/CAFactorialMapChartEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColRowInfosLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColRowInfosLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColRowInfosLabelProvider.java	(revision 122)
@@ -0,0 +1,166 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.editors.ca;
+
+import java.text.DecimalFormat;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ColRowInfosLabelProvider.
+ */
+public class ColRowInfosLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/** The names. */
+	String[] names;
+
+	/** The qualitypattern. */
+	DecimalFormat qualitypattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/** The masspattern. */
+	DecimalFormat masspattern = new DecimalFormat("0.00");//%% //$NON-NLS-1$
+
+	/** The distpattern. */
+	DecimalFormat distpattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/** The chipattern. */
+	DecimalFormat chipattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/** The contribpattern. */
+	DecimalFormat contribpattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/** The cos2pattern. */
+	DecimalFormat cos2pattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/** The coordpattern. */
+	DecimalFormat coordpattern = new DecimalFormat("0.00"); //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new col row infos label provider.
+	 *
+	 * @param names the names
+	 */
+	public ColRowInfosLabelProvider(String[] names) {
+		super();
+		this.names = names;
+		for (int i = 0; i < names.length; i++) {
+			if (names[i].startsWith(Messages.CorrespondanceAnalysisEditorInput_26)) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.MASSDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					masspattern = new DecimalFormat(pattern);
+			} else if (names[i].startsWith(Messages.ColRowInfosLabelProvider_9)) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.DISTDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					chipattern = new DecimalFormat(pattern);
+			} else if (names[i]
+					.startsWith(Messages.CorrespondanceAnalysisEditorInput_27)) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.DISTDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					distpattern = new DecimalFormat(pattern);
+			} else if (names[i]
+					.startsWith(Messages.CorrespondanceAnalysisEditorInput_30)) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.COS2DISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					cos2pattern = new DecimalFormat(pattern);
+			} else if (names[i].startsWith("c") && names[i].length() == 2) //$NON-NLS-1$
+			{
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.COORDDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					coordpattern = new DecimalFormat(pattern);
+			} else if (names[i]
+					.startsWith(Messages.CorrespondanceAnalysisEditorInput_29)) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.CONTRIBDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					contribpattern = new DecimalFormat(pattern);
+			} else if (names[i].startsWith(Messages.ColRowInfosLabelProvider_19)
+					&& names[i].length() == 3) {
+				String pattern = TxmPreferences
+						.get(CAPreferencePage.QUALITYDISPLAY);
+				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
+					qualitypattern = new DecimalFormat(pattern);
+			}
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	public String getColumnText(Object element, int columnIndex) {
+		// names[columnIndex] = Rows,Q12,Q13,Q23,Mass,Chi²,Contrib,Cos²,c1,c2,c3
+
+		Object o = ((List<Object>) element).get(columnIndex);
+		if (o instanceof Double || o instanceof Float) {
+			DecimalFormat f;
+			String name = names[columnIndex];
+			f = new DecimalFormat("###.00"); //$NON-NLS-1$
+			if (name.startsWith(Messages.CorrespondanceAnalysisEditorInput_26)) {
+				f = masspattern;
+			} else if (name.startsWith(Messages.ColRowInfosLabelProvider_9)) {
+				f = chipattern;
+			} else if (name.startsWith(Messages.CorrespondanceAnalysisEditorInput_27)) {
+				f = distpattern;
+			} else if (name.startsWith(Messages.CorrespondanceAnalysisEditorInput_30)) {
+				f = cos2pattern;
+			} else if (name.startsWith("c") && name.length() == 2) //$NON-NLS-1$
+			{
+				f = coordpattern;
+			} else if (name.startsWith(Messages.CorrespondanceAnalysisEditorInput_29)) {
+				f = contribpattern;
+			} else if (name.startsWith(Messages.ColRowInfosLabelProvider_19)
+					&& name.length() == 3) {
+				f = qualitypattern;
+			}
+			return f.format(o);
+		} else
+			return o.toString();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColRowInfosLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColsRowsInfosEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColsRowsInfosEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColsRowsInfosEditor.java	(revision 122)
@@ -0,0 +1,236 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.ca;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.Tablable;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.TableSorter;
+// TODO: Auto-generated Javadoc
+/**
+ * Used to display rows and cols informations such as contribution, inertia,
+ * mass, coord... @ author mdecorde
+ * 
+ */
+public class ColsRowsInfosEditor extends EditorPart {
+	
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.editors.ca.ColsrowsInfosEditor"; //$NON-NLS-1$
+
+	/** The viewer. */
+	private TableViewer viewer;
+	
+	/** The i editor input. */
+	private IEditorInput iEditorInput;
+	
+	/** The table input. */
+	private Tablable tableInput;
+
+	/** The table sorter. */
+	private TableSorter tableSorter;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+		this.iEditorInput = input;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		parent.setLayout(new FillLayout());
+
+		if (!(iEditorInput instanceof Tablable)) {
+			throw new IllegalArgumentException(Messages.ColsRowsInfosEditor_0);
+		}
+		tableInput = (Tablable) iEditorInput;
+		viewer = new TableViewer(parent, SWT.H_SCROLL | SWT.V_SCROLL
+				| SWT.MULTI | SWT.FULL_SELECTION);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		Table table = viewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+
+		String[] titles = tableInput.getColumnTitles();
+		String[] types = tableInput.getColumnTypes();
+		for (int i = 0; i < titles.length; i++) {
+			final int index = i;
+			final TableViewerColumn column;
+			if (index == 0)
+				column = new TableViewerColumn(viewer, SWT.LEFT);
+			else
+				column = new TableViewerColumn(viewer, SWT.RIGHT);
+			column.getColumn().setText(titles[i]);
+			if (types[i].equals("SEPARATOR")) //$NON-NLS-1$
+				column.getColumn().setResizable(false);
+			else
+				column.getColumn().setResizable(true);
+
+			// column.getColumn().setMoveable(true);
+
+			column.getColumn().addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					StatusLine.setMessage(Messages.IndexEditor_36 );
+					tableSorter.setColumn(index);
+					int dir = viewer.getTable().getSortDirection();
+					if (viewer.getTable().getSortColumn() == column.getColumn()) {
+						dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
+					} else {
+						dir = SWT.DOWN;
+					}
+					viewer.getTable().setSortDirection(dir);
+					viewer.getTable().setSortColumn(column.getColumn());
+					viewer.refresh();
+					StatusLine.setMessage(Messages.IndexEditor_37);
+				}
+			});
+		}
+
+		viewer.setContentProvider(tableInput.getContentProvider());
+		viewer.setLabelProvider(tableInput.getLabelProvider());
+		viewer.setInput(tableInput.getInput());
+
+		tableSorter = new TableSorter();
+		tableSorter.setColumnTypes(tableInput.getColumnTypes());
+		viewer.setSorter(tableSorter);
+
+		this.setContentDescription(NLS.bind(Messages.ColsRowsInfosEditor_2, titles[0]));
+		createContextMenu(viewer);
+		viewer.refresh();
+		for (TableColumn col : viewer.getTable().getColumns())
+			col.pack();
+	}
+
+	/**
+	 * Gets the ordered labels according to the current table sort.
+	 * @return
+	 */
+	public String[] getOrdererLabels()	{
+		
+		TableItem[] items = this.viewer.getTable().getItems();
+		String[] labels = new String[items.length];
+		for(int i = 0; i < items.length; i++) {
+			labels[i] = items[i].getText();
+		}
+		
+		return labels;
+	}
+	
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+
+		// Set the MenuManager
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		// Make the selection available
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		viewer.getControl().setFocus();
+	}
+
+	/**
+	 * @return the viewer
+	 */
+	public TableViewer getViewer() {
+		return viewer;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/ca/ColsRowsInfosEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditor.java	(revision 122)
@@ -0,0 +1,299 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+
+package org.txm.rcpapplication.editors;
+
+import java.io.File;
+import java.net.MalformedURLException;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.svg.SVGComposite;
+import org.txm.searchengine.cqp.corpus.Corpus;
+// TODO: Auto-generated Javadoc
+/**
+ * Test the use of the SVGComposite view from Batik_UI_Plugin Show a SVG file in
+ * a single panel.
+ *
+ * @author Sylvain Loiseau
+ */
+public class SVGGraphicEditor extends EditorPart implements CustomizableEditor{
+
+	/** Linking with the OutlineView. */
+	// private OverviewOutlinePage overviewOutlinePage;
+
+	private SVGComposite svgComp;
+	
+	/** The svg path. */
+	private IPath svgPath;
+	
+	/** The input. */
+	private IEditorInput input;
+	
+	/** The svgfile. */
+	private File svgfile;
+	
+	/** The parent. */
+	private Composite parent;
+	
+	/** The source. */
+	private Object source;
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.SVGGraphicEditor"; //$NON-NLS-1$
+
+	/**
+	 * Gets the sVG composite.
+	 *
+	 * @return the sVG composite
+	 */
+	public SVGComposite getSVGComposite() {
+		return svgComp;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source) {
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return source;
+	}
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		this.input = input;
+		setSite(site);
+		setInput(input);
+		setPartName(input.getName());
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		this.parent = parent;
+
+		svgComp = new SVGComposite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
+		if (svgPath == null) {
+			if (input instanceof SVGGraphicable) {
+				//svgPath = ((SVGGraphicable) input).getIPath().toFile().toURI().toURL().toString();
+				try {
+					svgComp.setSVGFile(((SVGGraphicable) input).getIPath().toFile().toURI().toURL());
+					svgfile = ((SVGGraphicable) input).getIPath().toFile();
+				} catch (MalformedURLException e) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				}
+				
+			} else {
+				throw new IllegalArgumentException(Messages.SVGGraphicEditor_1);
+			}
+		}
+		svgComp.resetZoom();
+		createContextMenu();
+	}
+
+	/**
+	 * Sets the focus.
+	 *
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		svgComp.setFocus();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
+	 */
+	@Override
+	public void dispose() {
+		svgComp.dispose();
+		super.dispose();
+	}
+
+	/**
+	 * Gets the sVG file.
+	 *
+	 * @return the sVG file
+	 */
+	public File getSVGFile() {
+		return svgfile;
+	}
+
+	/**
+	 * Creates the context menu.
+	 */
+	private void createContextMenu() {
+		/*
+		 * Menu menu = new Menu(parent.getShell()); MenuItem item = new MenuItem
+		 * (menu, SWT.PUSH); item.setText ("Popup"); svgComp.setMenu (menu);
+		 */
+
+		/*
+		 * // Set the MenuManager getSite().registerContextMenu(menuManager,
+		 * svgComp); // Make the selection available
+		 * getSite().setSelectionProvider(svgComp);
+		 */
+	}
+
+	// TODO : check the good one.
+	// public Object getAdapter(Class type) {
+	// if (type == IContentOutlinePage.class) {
+	// return getOverviewOutlinePage();
+	// } else if (type.getClass().getName().equals("IContentOutlinePage")) {
+	// return getOverviewOutlinePage();
+	// } else if (type.getClass().equals(IContentOutlinePage.class.getClass()))
+	// {
+	// return getOverviewOutlinePage();
+	// }
+	// return super.getAdapter(type);
+	// }
+	//
+	// private OverviewOutlinePage getOverviewOutlinePage() {
+	// if (null == overviewOutlinePage) {
+	// overviewOutlinePage = new OverviewOutlinePage();
+	// }
+	// return overviewOutlinePage;
+	// }
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image titleImage) {
+		this.setTitleImage(titleImage);
+	}
+
+	/**
+	 * Reset view.
+	 */
+	public void resetView() {
+		svgComp.resetZoom();
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/SVGGraphicEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/Tablable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/Tablable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/Tablable.java	(revision 122)
@@ -0,0 +1,79 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.ui.IEditorInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * An {@link IEditorInput} implementing this interface may be displayed as a
+ * table by the {@link TableEditor}.
+ * 
+ * @author sloiseau
+ * 
+ */
+public interface Tablable extends IEditorInput {
+
+	/**
+	 * Gets the content provider.
+	 *
+	 * @return the content provider
+	 */
+	public IStructuredContentProvider getContentProvider();
+
+	/**
+	 * Gets the label provider.
+	 *
+	 * @return the label provider
+	 */
+	public LabelProvider getLabelProvider();
+
+	/**
+	 * Gets the input.
+	 *
+	 * @return the input
+	 */
+	public Object getInput();
+
+	/**
+	 * Gets the column titles.
+	 *
+	 * @return the column titles
+	 */
+	public String[] getColumnTitles();
+
+	/**
+	 * Gets the column types.
+	 *
+	 * @return the column types
+	 */
+	public String[] getColumnTypes();
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/Tablable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableKeyListener.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableKeyListener.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableKeyListener.java	(revision 122)
@@ -0,0 +1,115 @@
+package org.txm.rcpapplication.editors;
+
+import java.util.ArrayList;
+import java.util.regex.Pattern;
+
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+import org.txm.rcpapplication.Messages;
+import org.txm.utils.logger.Log;
+
+public class TableKeyListener implements KeyListener {
+	TableViewer viewer;
+
+	public TableKeyListener(TableViewer viewer) {
+		this.viewer = viewer;
+	}
+
+	@Override
+	public void keyReleased(KeyEvent e) {
+
+	}
+
+	@Override
+	public void keyPressed(KeyEvent e) {
+		//System.out.println("key code: "+e.keyCode);
+		if ((e.stateMask & SWT.CTRL) != 0 && e.keyCode == 99 ) { // CTRL + C
+			copyLines();
+		} else if ((e.stateMask & SWT.CTRL) != 0 && e.keyCode == 102 ) { // CTRL + F
+			searchInLines();
+		} else if ((e.stateMask & SWT.COMMAND) != 0 && e.keyCode == 99 ) { // CMD + C
+			copyLines();
+		} else if ((e.stateMask & SWT.COMMAND) != 0 && e.keyCode == 102 ) { // CMD + F
+			searchInLines();
+		}
+	}
+
+	public void searchInLines() {
+		TableItem[] items = viewer.getTable().getItems();
+		//System.out.println("search in tablein items: "+Arrays.toString(items));
+
+		TableColumn[] cols = viewer.getTable().getColumns();
+		InputDialog dialog = new InputDialog(viewer.getTable().getShell(), Messages.CooccurrencesEditor_2, Messages.TableKeyListener_1, "", null);  //$NON-NLS-1$
+		if (dialog.open() == Window.OK) {
+			String reg = dialog.getValue();
+			Pattern p = Pattern.compile(reg);
+			// TODO: useless ?
+			//ArrayList<TableItem> matchingItem = new ArrayList<TableItem>();
+			ArrayList<Integer> matchingIndexes = new ArrayList<Integer>();
+			for (int l = 0 ; l < items.length ; l++) {
+				TableItem item = items[l];
+				for (int i = 0 ; i < cols.length ; i++) {
+					if (p.matcher(item.getText(i)).matches()) {
+						// TODO: useless
+						//matchingItem.add(item);
+						matchingIndexes.add(l);
+						break; // next line
+					}
+				}
+			}
+			Log.info(Messages.TableKeyListener_0 + matchingIndexes);
+
+			// TODO: useless ?
+//			int[] indexes = new int[matchingIndexes.size()];
+//			TableItem[] mitems = new TableItem[matchingItem.size()];
+//			int i = 0;
+//			for(int index : matchingIndexes) {
+//				indexes[i++] = index;
+//			}
+//			i = 0;
+//			for(TableItem item : matchingItem) {
+//				mitems[i++] = item;
+//			}
+
+			// TODO: old version which doesn't trigger selection event
+//			if (mitems.length > 0) {
+//				viewer.getTable().showItem(mitems[0]); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
+//				viewer.getTable().deselectAll(); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
+//				viewer.getTable().select(indexes); // useless: viewer.getTable().setSelection(indexes) can replace these 3 lines of code
+			
+			// trigger selection event on viewer
+			if (matchingIndexes.size() > 0) {
+				ArrayList elements = new ArrayList(matchingIndexes.size());
+				for(int j = 0; j < matchingIndexes.size(); j++) {
+					elements.add(viewer.getElementAt(matchingIndexes.get(j)));
+				}
+				viewer.setSelection(new StructuredSelection(elements), true);
+			}
+		}
+	}
+
+	public void copyLines() {
+		TableItem[] items = viewer.getTable().getSelection();
+		String str = ""; //$NON-NLS-1$
+		TableColumn[] cols = viewer.getTable().getColumns();
+		for (int l = 0 ; l < items.length ; l++) {
+			TableItem item = items[l];
+			if (l > 0) str += "\n"; //$NON-NLS-1$
+			for (int i = 0 ; i < cols.length ; i++) {
+				if (cols[i].getText().trim().length() >0) {
+					if (i > 0) str += "\t"; //$NON-NLS-1$
+					str += item.getText(i);
+				}
+			}
+		}
+		org.txm.rcpapplication.utils.IOClipboard.write(str);
+		System.out.println(Messages.TableKeyListener_6+str);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TableKeyListener.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusReferenceDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusReferenceDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusReferenceDialog.java	(revision 122)
@@ -0,0 +1,177 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.parabrowser;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CorpusReferenceDialog.
+ */
+public class CorpusReferenceDialog extends Dialog {
+
+	/** The available reference items. */
+	private List<Property> availableReferenceItems;
+	
+	/** The selected reference items. */
+	private List<Property> selectedReferenceItems;
+
+	/**
+	 * Instantiates a new corpus reference dialog.
+	 *
+	 * @param iWorkbenchPartSite the i workbench part site
+	 * @param availableReferenceItems the available reference items
+	 */
+	public CorpusReferenceDialog(IWorkbenchPartSite iWorkbenchPartSite,
+			List<Property> availableReferenceItems) {
+		super(iWorkbenchPartSite);
+		this.availableReferenceItems = availableReferenceItems;
+		this.selectedReferenceItems = new ArrayList<Property>();
+	}
+
+	/**
+	 * Gets the selectesd reference items.
+	 *
+	 * @return the selectesd reference items
+	 */
+	public List<Property> getSelectesdReferenceItems() {
+		return selectedReferenceItems;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+
+		Composite mainArea = new Composite(parent, SWT.NONE);
+		mainArea.setLayout(new GridLayout(4, false));
+
+		final org.eclipse.swt.widgets.List availbleItems = new org.eclipse.swt.widgets.List(
+				mainArea, SWT.BORDER | SWT.V_SCROLL);
+		for (Property property : availableReferenceItems) {
+			if (property instanceof StructuralUnitProperty) {
+				StructuralUnitProperty sProperty = (StructuralUnitProperty) property;
+				availbleItems.add(sProperty.getStructuralUnit().getName()
+						+ ": " + property.getName()); //$NON-NLS-1$
+			} else {
+				availbleItems.add(property.getName());
+			}
+		}
+		GridData gridData = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		Point size = availbleItems.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		gridData.widthHint = size.x;
+		availbleItems.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		final org.eclipse.swt.widgets.List selectedItems = new org.eclipse.swt.widgets.List(
+				mainArea, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+		selectedItems.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(mainArea, SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = availbleItems.getSelectionIndex();
+				selectedItems.add(availbleItems.getItem(ind));
+				availbleItems.remove(ind);
+				selectedReferenceItems.add(availableReferenceItems.get(ind));
+				availableReferenceItems.remove(ind);
+				availbleItems.setSelection(ind);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				availbleItems.add(selectedItems.getItem(ind));
+				selectedItems.remove(ind);
+				availableReferenceItems.add(selectedReferenceItems.get(ind));
+				selectedReferenceItems.remove(ind);
+				selectedItems.setSelection(ind);
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind > 0) {
+					selectedItems.add(selectedItems.getItem(ind), ind - 1);
+					selectedItems.remove(ind + 1);
+					selectedReferenceItems.add(selectedReferenceItems
+							.get(ind - 1));
+					selectedReferenceItems.remove(ind + 1);
+					selectedItems.setSelection(ind - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int ind = selectedItems.getSelectionIndex();
+				if (ind < selectedItems.getItemCount() - 1) {
+					selectedItems.add(selectedItems.getItem(ind), ind + 2);
+					selectedItems.remove(ind);
+					selectedReferenceItems.add(selectedReferenceItems
+							.get(ind + 2));
+					selectedReferenceItems.remove(ind);
+					selectedItems.setSelection(ind + 2);
+				}
+			}
+		});
+
+		return mainArea;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusReferenceDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/ParaBrowserEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/ParaBrowserEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/ParaBrowserEditor.java	(revision 122)
@@ -0,0 +1,808 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.parabrowser;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.functions.parabrowser.ParaBrowser;
+import org.txm.functions.ReferencePattern;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.concordances.DefineViewReferencePattern;
+import org.txm.rcpapplication.editors.input.ParaBrowserEditorInput;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.QueryResult;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.utils.Pair;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ParaBrowserEditor.
+ */
+public class ParaBrowserEditor extends EditorPart {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor"; //$NON-NLS-1$
+
+	/** The display area. */
+	private Composite displayArea;
+	
+	/** The define reference pattern action. */
+	protected Action defineReferencePatternAction;
+	
+	/** The define order corpus action. */
+	protected Action defineOrderCorpusAction;
+
+	/** The corpus text areas. */
+	private Map<MainCorpus, StyledText> corpusTextAreas;
+	
+	/** The corpus ref areas. */
+	private Map<MainCorpus, Label> corpusRefAreas;
+	
+	/** The corpus query result areas. */
+	private Map<MainCorpus, QueryResult> corpusQueryResultAreas;
+
+	/** The selected structural unit. */
+	private StructuralUnit selectedStructuralUnit;
+	
+	/** The selected structural unit para id. */
+	private StructuralUnitProperty selectedStructuralUnitParaId;
+	
+	/** The selected value. */
+	private String selectedValue;
+
+	/** The structural units combo. */
+	private Combo structuralUnitsCombo;
+	
+	/** The structural units final. */
+	private List<StructuralUnit> structuralUnitsFinal;
+	
+	/** The para id combo. */
+	private Combo paraIdCombo;
+
+	/** The reference pattern. */
+	private ReferencePattern referencePattern = new ReferencePattern();
+	
+	/** The selected reference. */
+	private String selectedReference = ""; //$NON-NLS-1$
+
+	/** The selected view corpus. */
+	private List<MainCorpus> selectedViewCorpus;
+	
+	/** The available view corpus. */
+	private List<MainCorpus> availableViewCorpus;
+
+	/** The available view properties. */
+	private List<StructuralUnit> availableViewProperties;
+	
+	/** The selected view properties. */
+	private List<StructuralUnit> selectedViewProperties;
+	
+	private ParaBrowser paraBrowser = new ParaBrowser();
+	
+	/** The next. */
+	private Button next;
+	
+	/** The prev. */
+	private Button prev;
+
+	/**
+	 * Instantiates a new para browser editor.
+	 */
+	public ParaBrowserEditor() {
+	}
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		this.selectedViewCorpus = ((ParaBrowserEditorInput) input)
+				.getCorpusList();
+		List<MainCorpus> tempView = new ArrayList<MainCorpus>();
+		availableViewCorpus = new ArrayList<MainCorpus>();
+		if (selectedViewCorpus.size() > 3) {
+			int i = 0;
+			for (MainCorpus corpus : selectedViewCorpus) {
+				if (i < 4) {
+					tempView.add(corpus);
+				} else {
+					availableViewCorpus.add(corpus);
+				}
+				++i;
+			}
+			selectedViewCorpus = tempView;
+		}
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		corpusTextAreas = new HashMap<MainCorpus, StyledText>();
+		corpusRefAreas = new HashMap<MainCorpus, Label>();
+		corpusQueryResultAreas = new HashMap<MainCorpus, QueryResult>();
+
+		parent.setLayout(new GridLayout(1, false));
+
+		Composite controlArea = new Composite(parent, SWT.BORDER);
+		controlArea
+				.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));// FILL,
+		composeControlArea(controlArea);
+
+		displayArea = new Composite(parent, SWT.NONE);
+		displayArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));// 2ème
+																				// arg
+																				// :
+																				// true
+		composeDisplayArea(displayArea);
+		reloadTexts();
+	}
+
+	/**
+	 * Compose display area.
+	 *
+	 * @param displayArea the display area
+	 */
+	private void composeDisplayArea(Composite displayArea) {
+
+		if (selectedViewCorpus != null) {
+			displayArea.setLayout(new GridLayout(selectedViewCorpus.size(),
+					true));
+
+			for (int i = 0; i < selectedViewCorpus.size(); ++i) {
+				composeSingleTextDisplayArea(displayArea, selectedViewCorpus
+						.get(i), selectedViewCorpus.size());
+			}
+		} else {
+			displayArea.setLayout(new GridLayout(1, false));
+
+			selectedViewCorpus = new ArrayList<MainCorpus>();
+			selectedViewCorpus.add(selectedViewCorpus.get(0));
+			composeSingleTextDisplayArea(displayArea,
+					selectedViewCorpus.get(0), 1);
+		}
+
+	}
+
+	/**
+	 * Compose single text display area.
+	 *
+	 * @param displayArea the display area
+	 * @param displayedCorpus the displayed corpus
+	 * @param nbtextDisplayAreas the nbtext display areas
+	 */
+	private void composeSingleTextDisplayArea(Composite displayArea,
+			MainCorpus displayedCorpus, int nbtextDisplayAreas) {
+		Composite singleCorpusArea = new Composite(displayArea, SWT.NONE);
+		singleCorpusArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
+				true));
+		GridLayout layout = new GridLayout(1, false);
+		singleCorpusArea.setLayout(layout);
+
+		// Corpus name Label
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		Label nameCorpusLabel = new Label(singleCorpusArea, SWT.NONE);
+		nameCorpusLabel.setText(displayedCorpus.getName());
+		nameCorpusLabel.setLayoutData(new GridData(GridData.FILL,
+				GridData.FILL, true, false));
+
+		// Text
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		StyledText corpusTextArea = new StyledText(singleCorpusArea, SWT.WRAP
+				| SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER); // SWT.BORDER
+		corpusTextArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, true));
+		// String text = displayedCorpus.getTextRegion(selectedStructuralUnit,
+		// selectedStructuralUnitParaId, selectedValue);
+		corpusTextArea.setText(""); //$NON-NLS-1$
+		corpusTextAreas.put(displayedCorpus, corpusTextArea);
+
+		// Reference Label
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		Label referenceLabel = new Label(singleCorpusArea, SWT.NONE);
+		referenceLabel.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		if (referencePattern != null) {
+			// selectedStructuralUnit.getName()
+			List<Property> references = referencePattern.getProperties();
+			for (Property property : references) {
+				selectedReference += property.getName() + "/"; //$NON-NLS-1$
+			}
+		}
+		referenceLabel.setText(Messages.ParaBrowserEditor_3 + selectedReference);
+		corpusRefAreas.put(displayedCorpus, referenceLabel);
+	}
+
+	/**
+	 * Compose control area.
+	 *
+	 * @param controlArea the control area
+	 */
+	private void composeControlArea(Composite controlArea) {
+		controlArea.setLayout(new GridLayout(6, false));
+		// composeCorpusDisplay(controlArea);
+		composeStructuralNavigation(controlArea);
+		composeNavigation(controlArea);
+
+		createActions();
+
+		MenuManager menuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
+		menuManager.setRemoveAllWhenShown(true);
+		menuManager.addMenuListener(new IMenuListener() {
+			@Override
+			public void menuAboutToShow(IMenuManager manager) {
+				manager.add(defineReferencePatternAction);
+				manager.add(defineOrderCorpusAction);
+			}
+		});
+		controlArea.setMenu(menuManager.createContextMenu(controlArea));
+		getSite().registerContextMenu(menuManager,
+				this.getSite().getSelectionProvider());
+	}
+
+	/*
+	 * private void composeCorpusDisplay(Composite controlArea){ //Manager for
+	 * corpus display Button buttonManager = new Button(controlArea, SWT.PUSH);
+	 * buttonManager.setText("manage view"); buttonManager.addMouseListener(new
+	 * MouseListener() {
+	 * 
+	 * @Override public void mouseUp(MouseEvent e) {
+	 * launchCorpusSelectionManager(); }
+	 * 
+	 * @Override public void mouseDown(MouseEvent e) {
+	 * launchCorpusSelectionManager(); }
+	 * 
+	 * @Override public void mouseDoubleClick(MouseEvent e) { // TODO
+	 * Auto-generated method stub
+	 * 
+	 * } });
+	 * 
+	 * //Manager to build reference Button buttonReference = new
+	 * Button(controlArea, SWT.PUSH); buttonReference.setText("reference");
+	 * buttonReference.addMouseListener(new MouseListener() {
+	 * 
+	 * @Override public void mouseUp(MouseEvent e) {
+	 * launchCorpusReferenceManager(); }
+	 * 
+	 * @Override public void mouseDown(MouseEvent e) {
+	 * launchCorpusReferenceManager(); }
+	 * 
+	 * @Override public void mouseDoubleClick(MouseEvent e) { // TODO
+	 * Auto-generated method stub
+	 * 
+	 * } }); }
+	 */
+
+	/**
+	 * Compose navigation.
+	 *
+	 * @param controlArea the control area
+	 */
+	private void composeNavigation(Composite controlArea) {
+		Composite navigationArea = new Composite(controlArea, SWT.NONE);
+		navigationArea.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false,
+				false));// false, false
+		navigationArea.setLayout(new GridLayout(2, false));
+		// [<] [>]
+
+		// [<]
+		prev = new Button(navigationArea, SWT.PUSH);
+		prev.setText(Messages.ConcordancesEditor_12);
+		prev.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				nextorpreviousText(false);
+			}
+		});
+		prev.setEnabled(true);
+
+		// [>]
+		next = new Button(navigationArea, SWT.PUSH);
+		next.setText(Messages.ConcordancesEditor_13);
+		next.addListener(SWT.Selection, new Listener() {
+			@Override
+			public void handleEvent(Event event) {
+				nextorpreviousText(true);
+			}
+		});
+		next.setEnabled(true);
+
+	}
+
+	/**
+	 * Compose structural navigation.
+	 *
+	 * @param controlArea the control area
+	 */
+	private void composeStructuralNavigation(Composite controlArea) {
+		// StructuralUnit
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		Button refButton = new Button(controlArea, SWT.PUSH);
+		refButton.setText(Messages.ParaBrowserEditor_4);
+		refButton
+				.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, true));
+		refButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				defineReferencePatternAction.run();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		Label structureLabel = new Label(controlArea, SWT.NONE);
+		structureLabel.setText(Messages.ParaBrowserEditor_5); // LEFT
+		structureLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+
+		structuralUnitsCombo = new Combo(controlArea, SWT.READ_ONLY);
+
+		List<StructuralUnit> structuralUnits = null;
+		if (selectedViewCorpus.size() > 0) {
+			try {
+				// same structure in all corpus, therefore use the first in the
+				// list
+				structuralUnits = selectedViewCorpus.get(0)
+						.getOrderedStructuralUnits();
+			} catch (CqiClientException e) {
+				System.err
+						.println(Messages.ObjectExplorer_9);
+				return;
+			}
+		}
+		structuralUnitsFinal = new ArrayList<StructuralUnit>();
+		if (structuralUnits != null) {
+			for (StructuralUnit unit : structuralUnits) {
+				if (unit.getOrderedProperties() != null
+						&& unit.getOrderedProperties().size() != 0) {
+					structuralUnitsCombo.add(unit.getName());
+					structuralUnitsFinal.add(unit);
+				}
+			}
+		}
+
+		if (structuralUnitsCombo.getItemCount() == 0) {
+			// this.getButton(IDialogConstants.OK_ID).setEnabled(false);
+		} else {
+			structuralUnitsCombo.select(0);
+			selectedStructuralUnit = structuralUnitsFinal.get(0);
+		}
+
+		// StructuralUnitParaId
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		Label paraIdLabel = new Label(controlArea, SWT.NONE);
+		paraIdLabel.setText("paraid"); //$NON-NLS-1$
+		paraIdLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+
+		paraIdCombo = new Combo(controlArea, SWT.READ_ONLY);
+		paraIdCombo
+				.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, true));
+
+		structuralUnitsCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				reloadIds();
+			}
+		});
+
+		for (StructuralUnitProperty property : structuralUnitsFinal.get(0)
+				.getOrderedProperties()) {
+			if (property.getName().equals("id")) { //$NON-NLS-1$
+				selectedStructuralUnitParaId = property;
+				try {
+					for (String value : property.getValues()) {
+						paraIdCombo.add(value);
+					}
+				} catch (CqiClientException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+			}
+		}
+		paraIdCombo.select(0);
+		try {
+			if (selectedStructuralUnitParaId != null)
+				selectedValue = selectedStructuralUnitParaId.getValues().get(0);
+		} catch (CqiClientException e1) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+		}
+
+		paraIdCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				// selectedStructuralUnitParaId =
+				// selectedStructuralUnit.getProperties().get(paraIdCombo.getSelectionIndex());
+				if (selectedStructuralUnitParaId != null) {
+					try {
+						List<String> values = selectedStructuralUnitParaId
+								.getValues();
+						Collections.sort(values);
+						selectedValue = values.get(paraIdCombo
+								.getSelectionIndex());
+						// System.out.println("Selection of id = "+selectedValue);
+					} catch (CqiClientException e) {
+						// TODO Auto-generated catch block
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				reloadTexts();
+				reloadReferences();
+			}
+		});
+	}
+
+	/**
+	 * Creates the actions.
+	 */
+	private void createActions() {
+		defineReferencePatternAction = new DefineViewReferencePattern(getSite()
+				.getWorkbenchWindow(), this);
+		defineOrderCorpusAction = new CorpusSelection(getSite()
+				.getWorkbenchWindow(), this);
+	}
+
+	/**
+	 * Reload display.
+	 */
+	private void reloadDisplay() {
+		if (selectedViewCorpus != null) {
+			displayArea.setLayout(new GridLayout(selectedViewCorpus.size(),
+					true));
+
+			for (int i = 0; i < selectedViewCorpus.size(); ++i) {
+				composeSingleTextDisplayArea(displayArea, selectedViewCorpus
+						.get(i), selectedViewCorpus.size());
+			}
+		} else {
+			displayArea.setLayout(new GridLayout(1, false));
+
+			selectedViewCorpus = new ArrayList<MainCorpus>();
+			selectedViewCorpus.add(selectedViewCorpus.get(0));
+			composeSingleTextDisplayArea(displayArea,
+					selectedViewCorpus.get(0), 1);
+		}
+		displayArea.layout();
+		displayArea.pack(true);
+	}
+
+	/**
+	 * Reload texts.
+	 */
+	private void reloadTexts() {
+		Set keys = corpusTextAreas.keySet();
+		Iterator<MainCorpus> it = keys.iterator();
+		while (it.hasNext()) {
+			MainCorpus corpus = it.next();
+			StyledText textArea = corpusTextAreas.get(corpus);
+			Pair<String, QueryResult> pair = paraBrowser.getTextRegion(corpus,
+					selectedStructuralUnit, selectedStructuralUnitParaId,
+					selectedValue);
+			// corpusQueryResultAreas.put(corpus, pair.getSecond());
+			textArea.setText(pair.getFirst());
+			// Label ref = corpusRefAreas.get(corpus);
+			// ref.setText("Ref: ...");
+		}
+	}
+
+	/**
+	 * Reload ids.
+	 */
+	private void reloadIds() {
+		selectedStructuralUnit = structuralUnitsFinal.get(structuralUnitsCombo
+				.getSelectionIndex());
+		paraIdCombo.removeAll();
+
+		for (StructuralUnitProperty property : structuralUnitsFinal.get(
+				structuralUnitsCombo.getSelectionIndex()).getOrderedProperties()) {
+			if (property.getName().equals("id")) { //$NON-NLS-1$
+				selectedStructuralUnitParaId = property;
+				try {
+					List<String> values = property.getValues();
+					Collections.sort(values);
+					for (String value : values) {
+						paraIdCombo.add(value);
+					}
+				} catch (CqiClientException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+			}
+		}
+
+		if (paraIdCombo.getItemCount() > 0) {
+			paraIdCombo.select(0);
+			try {
+				if (selectedStructuralUnitParaId != null) {
+					List<String> values = selectedStructuralUnitParaId
+							.getValues();
+					Collections.sort(values);
+					selectedValue = values.get(0);
+					reloadTexts();
+					reloadReferences();
+				}
+			} catch (CqiClientException e1) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+			// selectedStructuralUnitParaId =
+			// selectedStructuralUnit.getProperties().get(0);
+		}
+	}
+
+	/**
+	 * Reload references.
+	 */
+	private void reloadReferences() {
+		Set<MainCorpus> keys = corpusRefAreas.keySet();
+		Iterator<MainCorpus> it = keys.iterator();
+		while (it.hasNext()) {
+			MainCorpus corpus = it.next();
+
+			// get all reference values of all lines
+			/*
+			 * List<Integer> beginingOfKeywordsPositions = new
+			 * ArrayList<Integer>(j-i); Map<Property, List<List<String>>>
+			 * refValues = new HashMap<Property, List<List<String>>>(); for
+			 * (Property property : referencePattern){
+			 * refValues.put(property,cache
+			 * .get(property).getData(beginingOfKeywordsPositions,
+			 * Collections.nCopies(beginingOfKeywordsPositions.size(), 1))); }
+			 */
+
+			Label refArea = corpusRefAreas.get(corpus);
+			refArea.setText(NLS.bind(Messages.ParaBrowserEditor_9, corpus.getName(), selectedReference));
+		}
+
+	}
+
+	/**
+	 * Nextorprevious text.
+	 *
+	 * @param findNext the find next
+	 */
+	public void nextorpreviousText(boolean findNext) {
+		// get Property
+		System.out.println(NLS.bind(Messages.ParaBrowserEditor_11, 
+			new Object[]{findNext, selectedStructuralUnit, selectedStructuralUnitParaId, selectedValue}));
+		if (selectedStructuralUnit != null) {
+			// Multiple Query, as many as there are corpuses displayed
+			Set keys = corpusTextAreas.keySet();
+			Iterator<MainCorpus> it = keys.iterator();
+			String newValue = ""; //$NON-NLS-1$
+			for (int i = 0; it.hasNext(); ++i) {
+				// if (i==0){
+				MainCorpus corpus = it.next();
+				System.out.println("CORPUS ################### " //$NON-NLS-1$
+						+ corpus.getName());
+				newValue = paraBrowser.getNextOrPrevious(corpus, selectedStructuralUnit,
+						selectedStructuralUnitParaId, selectedValue, findNext);
+				// }
+			}
+			if (!newValue.equals("")) { //$NON-NLS-1$
+				System.out.println(Messages.ParaBrowserEditor_18 + newValue);
+				int index = paraIdCombo.indexOf(newValue);
+				if (index != -1) {
+					selectedValue = newValue;
+					paraIdCombo.select(index);
+				}
+			} else {
+				System.out.println(Messages.ParaBrowserEditor_19 + newValue);
+			}
+			reloadTexts();
+			reloadReferences();
+		}
+	}
+
+	/**
+	 * Sets the reference pattern.
+	 *
+	 * @param referencePattern the new reference pattern
+	 */
+	public void setReferencePattern(ReferencePattern referencePattern) {
+		this.referencePattern = referencePattern;
+		selectedReference = Messages.ObjectExplorer_9;
+		if (referencePattern != null) {
+			// selectedStructuralUnit.getName()
+			List<Property> references = referencePattern.getProperties();
+			for (Property property : references) {
+				selectedReference += property.getName() + Messages.ParaBrowserEditor_21;
+			}
+		}
+		reloadReferences();
+	}
+
+	/**
+	 * Sets the focus.
+	 *
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+		StatusLine.setMessage(Messages.ParaBrowserEditor_22);
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public MainCorpus getCorpus() {
+		if (selectedViewCorpus.size() > 0) {
+			return selectedViewCorpus.get(0);
+		} else
+			return null;
+	}
+
+	/**
+	 * Gets the selected corpus.
+	 *
+	 * @return the selected corpus
+	 */
+	public List<MainCorpus> getSelectedCorpus() {
+		return selectedViewCorpus;
+	}
+
+	/**
+	 * Sets the selected corpus.
+	 *
+	 * @param corpus the corpus
+	 * @param corpusAvailable the corpus available
+	 */
+	public void setSelectedCorpus(List<MainCorpus> corpus,
+			List<MainCorpus> corpusAvailable) {
+		selectedViewCorpus = corpus;
+		availableViewCorpus = corpusAvailable;
+		reloadDisplay();
+	}
+
+	/**
+	 * Gets the available corpus.
+	 *
+	 * @return the available corpus
+	 */
+	public List<MainCorpus> getAvailableCorpus() {
+		if (availableViewCorpus == null) {
+			availableViewCorpus = new ArrayList<MainCorpus>();
+		}
+		return availableViewCorpus;
+	}
+
+	/**
+	 * Gets the selected references.
+	 *
+	 * @return the selected references
+	 */
+	public List<Property> getSelectedReferences() {
+		return referencePattern.getProperties();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/ParaBrowserEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusSelection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusSelection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusSelection.java	(revision 122)
@@ -0,0 +1,320 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.parabrowser;
+
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CorpusSelection.
+ */
+public class CorpusSelection extends Action implements IWorkbenchAction {
+
+	/** The Constant ID. */
+	private static final String ID = "org.txm.rcpapplication.editors.parabrowser.corpusselection"; //$NON-NLS-1$
+	
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The para browser editor. */
+	private ParaBrowserEditor paraBrowserEditor;
+
+	/**
+	 * Instantiates a new corpus selection.
+	 *
+	 * @param window the window
+	 * @param paraBrowserEditor the para browser editor
+	 */
+	public CorpusSelection(IWorkbenchWindow window,
+			ParaBrowserEditor paraBrowserEditor) {
+		this.window = window;
+		this.paraBrowserEditor = paraBrowserEditor;
+		setId(ID);
+		setText("Définir les corpus à l'affichage"); //$NON-NLS-1$
+		setToolTipText("Corpus à l'affichage"); //$NON-NLS-1$
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.actions.ActionFactory.IWorkbenchAction#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.action.Action#run()
+	 */
+	@Override
+	public void run() {
+		if (paraBrowserEditor != null) {
+			List<MainCorpus> selectedCorpus = paraBrowserEditor
+					.getSelectedCorpus();
+			List<MainCorpus> availableCorpus = paraBrowserEditor
+					.getAvailableCorpus();
+
+			CorpusSelectionDialog d = new CorpusSelectionDialog(window
+					.getShell(), availableCorpus, selectedCorpus);
+			if (d.open() == Window.OK) {
+				if (paraBrowserEditor == null) {
+					paraBrowserEditor.setSelectedCorpus(d.getSelectedCorpus(),
+							d.getAvailableCorpus());
+				}
+			}
+		}
+	}
+
+	/**
+	 * The Class CorpusSelectionDialog.
+	 */
+	private class CorpusSelectionDialog extends Dialog {
+
+		/** The available corpus. */
+		final private List<MainCorpus> availableCorpus;
+		
+		/** The selected corpus. */
+		final private List<MainCorpus> selectedCorpus;
+
+		/** The available corpus view. */
+		org.eclipse.swt.widgets.List availableCorpusView;
+		
+		/** The selected corpus view. */
+		org.eclipse.swt.widgets.List selectedCorpusView;
+
+		/**
+		 * Instantiates a new corpus selection dialog.
+		 *
+		 * @param parentShell the parent shell
+		 * @param availableCorpus the available corpus
+		 * @param selectedCorpus the selected corpus
+		 */
+		protected CorpusSelectionDialog(Shell parentShell,
+				List<MainCorpus> availableCorpus,
+				List<MainCorpus> selectedCorpus) {
+			super(parentShell);
+			this.availableCorpus = availableCorpus;
+			this.selectedCorpus = selectedCorpus;
+			// TODO Auto-generated constructor stub
+		}
+
+		/**
+		 * Gets the selected corpus.
+		 *
+		 * @return the selected corpus
+		 */
+		public List<MainCorpus> getSelectedCorpus() {
+			return selectedCorpus;
+		}
+
+		/**
+		 * Gets the available corpus.
+		 *
+		 * @return the available corpus
+		 */
+		public List<MainCorpus> getAvailableCorpus() {
+			return availableCorpus;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			// parent.setLayout(new FormLayout());
+			Composite mainArea = new Composite(parent, SWT.NONE);
+			mainArea
+					.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+			// 4 columns
+			GridLayout layout = new GridLayout(4, false);
+			mainArea.setLayout(layout);
+
+			availableCorpusView = new org.eclipse.swt.widgets.List(mainArea,
+					SWT.BORDER | SWT.V_SCROLL);
+			GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+			availableCorpusView.setLayoutData(gridData);
+
+			Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+			selectionButtons.setLayout(new GridLayout(1, false));
+			Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+			Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+			selectedCorpusView = new org.eclipse.swt.widgets.List(mainArea,
+					SWT.BORDER | SWT.MULTI | SWT.V_SCROLL);
+			gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+			selectedCorpusView.setLayoutData(gridData);
+
+			Composite orderButtons = new Composite(mainArea, SWT.NONE);
+			orderButtons.setLayout(new GridLayout(1, false));
+			Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+			Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+			select.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int index = availableCorpusView.getSelectionIndex();
+
+					selectedCorpus.add(availableCorpus.get(index));
+					availableCorpus.remove(index);
+
+					reload();
+					availableCorpusView.setSelection(index);
+				}
+			});
+
+			unselect.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (selectedCorpus.size() > 1) {
+						int index = selectedCorpusView.getSelectionIndex();
+
+						availableCorpus.add(selectedCorpus.get(index));
+						selectedCorpus.remove(index);
+
+						reload();
+						selectedCorpusView.setSelection(index);
+					}
+				}
+			});
+
+			up.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int index = selectedCorpusView.getSelectionIndex();
+					if (index > 0) {
+						MainCorpus selectedC = selectedCorpus.get(index);
+						MainCorpus upperC = selectedCorpus.get(index - 1);
+
+						selectedCorpus.set(index, upperC);
+						selectedCorpus.set(index - 1, selectedC);
+
+						reload();
+						selectedCorpusView.setSelection(index - 1);
+					}
+				}
+			});
+
+			down.addSelectionListener(new SelectionAdapter() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					int index = selectedCorpusView.getSelectionIndex();
+					if (index < selectedCorpus.size() - 1) {
+						MainCorpus selectedC = selectedCorpus.get(index);
+						MainCorpus bellowC = selectedCorpus.get(index + 1);
+
+						selectedCorpus.set(index, bellowC);
+						selectedCorpus.set(index + 1, selectedC);
+
+						reload();
+						selectedCorpusView.setSelection(index + 1);
+					}
+				}
+			});
+
+			availableCorpusView.addMouseListener(new MouseAdapter() {
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					int index = selectedCorpusView.getSelectionIndex();
+
+					selectedCorpus.add(availableCorpus.get(index));
+					availableCorpus.remove(index);
+
+					reload();
+					availableCorpusView.setSelection(index);
+				}
+			});
+
+			selectedCorpusView.addMouseListener(new MouseAdapter() {
+				@Override
+				public void mouseDoubleClick(MouseEvent e) {
+					if (selectedCorpus.size() > 1) {
+						int index = selectedCorpusView.getSelectionIndex();
+
+						availableCorpus.add(selectedCorpus.get(index));
+						selectedCorpus.remove(index);
+
+						reload();
+						selectedCorpusView.setSelection(index);
+					}
+				}
+			});
+
+			reload();
+			return mainArea;
+		}
+
+		/**
+		 * Reload.
+		 */
+		public void reload() {
+			System.out
+					.println("CorpusSelectionDialog.reload() => availableCorpus[" //$NON-NLS-1$
+							+ availableCorpus.size()
+							+ "] / selectedCorpus[" //$NON-NLS-1$
+							+ selectedCorpus.size() + "]"); //$NON-NLS-1$
+			availableCorpusView.removeAll();
+			for (MainCorpus corpus : availableCorpus) {
+				if (!corpus.getName().equals("id")) //$NON-NLS-1$
+					availableCorpusView.add(corpus.getName());
+			}
+			selectedCorpusView.removeAll();
+			for (MainCorpus corpus : selectedCorpus) {
+				if (!corpus.getName().equals("id")) //$NON-NLS-1$
+					selectedCorpusView.add(corpus.getName());
+			}
+
+			availableCorpusView.getParent().layout();
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			if (selectedCorpus.size() != 0)
+				super.okPressed();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/parabrowser/CorpusSelection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildLabelProvider.java	(revision 122)
@@ -0,0 +1,76 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.objects.TxmObject;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectChildLabelProvider.
+ */
+public class TxmObjectChildLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/** The titles. */
+	List<String> titles;
+
+	/**
+	 * Instantiates a new txm object child label provider.
+	 *
+	 * @param titles the titles
+	 */
+	TxmObjectChildLabelProvider(List<String> titles) {
+		super();
+		this.titles = titles;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		TxmObject object = (TxmObject) element;
+		if (columnIndex > 0)
+			return object.getAttribute(titles.get(columnIndex)).toString();
+		else
+			return object.getName();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>TXMObject properties viewer (for now)</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildrenCellEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildrenCellEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildrenCellEditor.java	(revision 122)
@@ -0,0 +1,98 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.io.Serializable;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.txm.objects.TxmObject;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectChildrenCellEditor.
+ */
+public class TxmObjectChildrenCellEditor extends EditingSupport {
+	
+	/** The editor. */
+	private CellEditor editor;
+	
+	/** The column name. */
+	private String columnName;
+
+	/**
+	 * Instantiates a new txm object children cell editor.
+	 *
+	 * @param viewer the viewer
+	 * @param columnName the column name
+	 */
+	public TxmObjectChildrenCellEditor(ColumnViewer viewer, String columnName) {
+		super(viewer);
+		this.columnName = columnName;
+		editor = new TextCellEditor(((TableViewer) viewer).getTable());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
+	 */
+	@Override
+	protected boolean canEdit(Object element) {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object)
+	 */
+	@Override
+	protected CellEditor getCellEditor(Object element) {
+		return editor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
+	 */
+	@Override
+	protected Object getValue(Object element) {
+		TxmObject object = (TxmObject) element;
+		return object.getAttribute(columnName);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	protected void setValue(Object element, Object value) {
+		TxmObject object = (TxmObject) element;
+		object.setAttribute(columnName, (Serializable) value);
+		getViewer().update(element, null);
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildrenCellEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesContentProvider.java	(revision 122)
@@ -0,0 +1,66 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.txm.objects.*;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectPropertiesContentProvider.
+ */
+public class TxmObjectPropertiesContentProvider implements
+		IStructuredContentProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked")
+		TxmObject object = (TxmObject) inputElement;
+		return object.getMetadatas().entrySet().toArray();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesCellEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesCellEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesCellEditor.java	(revision 122)
@@ -0,0 +1,101 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.io.Serializable;
+import java.util.Map.Entry;
+
+import org.eclipse.jface.viewers.CellEditor;
+import org.eclipse.jface.viewers.ColumnViewer;
+import org.eclipse.jface.viewers.EditingSupport;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TextCellEditor;
+import org.txm.objects.Property;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectPropertiesCellEditor.
+ */
+public class TxmObjectPropertiesCellEditor extends EditingSupport {
+	
+	/** The editor. */
+	private CellEditor editor;
+	
+	/** The column index. */
+	private int columnIndex;
+
+	/**
+	 * Instantiates a new txm object properties cell editor.
+	 *
+	 * @param viewer the viewer
+	 * @param columnIndex the column index
+	 */
+	public TxmObjectPropertiesCellEditor(ColumnViewer viewer, int columnIndex) {
+		super(viewer);
+		this.columnIndex = columnIndex;
+		editor = new TextCellEditor(((TableViewer) viewer).getTable());
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang.Object)
+	 */
+	@Override
+	protected boolean canEdit(Object element) {
+		return true;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object)
+	 */
+	@Override
+	protected CellEditor getCellEditor(Object element) {
+		return editor;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#getValue(java.lang.Object)
+	 */
+	@Override
+	protected Object getValue(Object element) {
+		Entry<String, Serializable> object = (Entry<String, Serializable>) element;
+		if (columnIndex == 0)
+			return object.getKey();
+		else
+			return ((Property) object.getValue()).getValue();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.EditingSupport#setValue(java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	protected void setValue(Object element, Object value) {
+		Entry<String, Serializable> object = (Entry<String, Serializable>) element;
+		((Property) object.getValue()).setValue((Serializable) value);
+		getViewer().update(element, null);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesCellEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/ObjectExplorer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/ObjectExplorer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/ObjectExplorer.java	(revision 122)
@@ -0,0 +1,445 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.objects.TxmObject;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.ObjectExplorerEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+// TODO: Auto-generated Javadoc
+/**
+ * Editor to set/delete TXMObject attributes @ author mdecorde.
+ */
+public class ObjectExplorer extends EditorPart implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.ObjectExplorer"; //$NON-NLS-1$
+	
+	/** The txm object. */
+	TxmObject txmObject;
+
+	/** The parent. */
+	Composite parent;
+	
+	/** The objectviewer. */
+	TableViewer objectviewer;
+	
+	/** The viewer. */
+	TableViewer viewer;
+	
+	/** The columns name. */
+	List<String> columnsName;
+	
+	/** The source. */
+	private Object source;
+
+	/**
+	 * Instantiates a new object explorer.
+	 */
+	public ObjectExplorer() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		if (input instanceof ObjectExplorerEditorInput) {
+			setSite(site);
+			setInput(input);
+			ObjectExplorerEditorInput iinput = (ObjectExplorerEditorInput) input;
+			txmObject = iinput.getTxmObject();
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+
+		this.parent = parent;
+		parent.setLayout(new GridLayout(2, true));
+		this.setPartName(NLS.bind(Messages.ObjectExplorer_0, txmObject.getName())); 
+
+		// headers
+		Button addcolumnObject = new Button(parent, SWT.PUSH);
+		addcolumnObject.setText(Messages.ObjectExplorer_3);
+		addcolumnObject.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				InputDialog dlg = new InputDialog(Display.getCurrent()
+						.getActiveShell(), Messages.ObjectExplorer_4,
+						Messages.ObjectExplorer_5, Messages.ObjectExplorer_7,
+						null);
+				if (dlg.open() == Window.OK) {
+					if (!dlg.getValue().matches("")) //$NON-NLS-1$
+					{
+						// System.out.println("add ok");
+						txmObject.setAttribute(dlg.getValue(),
+								Messages.ObjectExplorer_9);
+						/*
+						 * objectviewer.getTable().dispose(); objectviewer =
+						 * null; createObjectTableViewer();
+						 */
+						objectviewer.refresh();
+					}
+				}
+
+			}
+		});
+
+		Button rmvcolumnObject = new Button(parent, SWT.PUSH);
+		rmvcolumnObject.setText(Messages.ObjectExplorer_10);
+		rmvcolumnObject.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				InputDialog dlg = new InputDialog(Display.getCurrent()
+						.getActiveShell(), Messages.ObjectExplorer_10,
+						Messages.ObjectExplorer_12, "", null); //$NON-NLS-1$ 
+				if (dlg.open() == Window.OK) {
+					if (!dlg.getValue().matches("")) //$NON-NLS-1$
+					{
+						// System.out.println("rmv ok");
+						txmObject.removeProperty(dlg.getValue());
+						objectviewer.refresh();
+					}
+				}
+			}
+		});
+
+		// table of metadata of the TxmObject
+		createObjectTableViewer();
+
+		Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
+		GridData griddata = new GridData(GridData.FILL, GridData.FILL, true,
+				false);
+		griddata.horizontalSpan = 2;
+		separator.setLayoutData(griddata);
+
+		Button addcolumn = new Button(parent, SWT.PUSH);
+		addcolumn.setText(Messages.ObjectExplorer_15);
+		addcolumn.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				InputDialog dlg = new InputDialog(Display.getCurrent()
+						.getActiveShell(), Messages.ObjectExplorer_4,
+						Messages.ObjectExplorer_5, Messages.ObjectExplorer_7,
+						null);
+				if (dlg.open() == Window.OK) {
+					if (!dlg.getValue().matches("")) //$NON-NLS-1$
+					{
+						// System.out.println("add ok");
+						for (TxmObject o : txmObject.getChildren()) {
+							if (!o.getMetadatas().keySet().contains(
+									dlg.getValue()))
+								o.setAttribute(dlg.getValue(),
+										Messages.ObjectExplorer_9);
+						}
+
+						viewer.getTable().dispose();
+						viewer = null;
+						createChildTableViewer();
+					}
+				}
+
+			}
+		});
+
+		Button rmvcolumn = new Button(parent, SWT.PUSH);
+		rmvcolumn.setText(Messages.ObjectExplorer_21);
+		rmvcolumn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				InputDialog dlg = new InputDialog(Display.getCurrent()
+						.getActiveShell(), Messages.ObjectExplorer_10,
+						Messages.ObjectExplorer_12, "", null); //$NON-NLS-1$ 
+				if (dlg.open() == Window.OK) {
+					if (!dlg.getValue().matches("")) //$NON-NLS-1$
+					{
+						// System.out.println("rmv ok");
+						for (TxmObject o : txmObject.getChildren()) {
+							o.removeProperty(dlg.getValue());
+						}
+						int columnindex = columnsName.indexOf(dlg.getValue());
+						columnsName.remove(columnindex);
+						viewer.getTable().getColumns()[columnindex].dispose();
+						viewer.refresh();
+					}
+				}
+			}
+		});
+
+		createChildTableViewer();
+	}
+
+	/**
+	 * Creates the child table viewer.
+	 */
+	private void createChildTableViewer() {
+		// create editable table with shared props of its childs
+		viewer = new TableViewer(this.parent, SWT.MULTI | SWT.H_SCROLL
+				| SWT.V_SCROLL | SWT.FULL_SELECTION);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		GridData griddata = new GridData(GridData.FILL, GridData.FILL, true,
+				true);
+		griddata.horizontalSpan = 2;
+		viewer.getTable().setLayoutData(griddata);
+
+		createChildColumns(viewer);
+		viewer.setContentProvider(new TxmObjectChildContentProvider());
+		viewer.setLabelProvider(new TxmObjectChildLabelProvider(columnsName));
+		viewer.setInput(txmObject.getChildren());
+		parent.layout();
+	}
+
+	// This will create the columns for the table
+	/**
+	 * Creates the child columns.
+	 *
+	 * @param viewer the viewer
+	 */
+	private void createChildColumns(TableViewer viewer) {
+
+		if (txmObject.getChildren().size() == 0)
+			return;
+
+		columnsName = new ArrayList<String>();
+		columnsName.add(Messages.ObjectExplorer_26);
+
+		TxmObject o = txmObject.getChildren().get(0);
+		for (String key : o.getMetadatas().keySet()) {
+			columnsName.add(key);
+			for (TxmObject o2 : txmObject.getChildren()) {
+				if (!o2.getMetadatas().containsKey(key)) {
+					columnsName.remove(key);
+					break;
+				}
+			}
+		}
+
+		for (int i = 0; i < columnsName.size(); i++) {
+			TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
+			column.getColumn().setText(columnsName.get(i));
+			column.getColumn().setWidth(100);
+			column.getColumn().setResizable(true);
+			column.getColumn().setMoveable(true);
+			if (i > 0)
+				column.setEditingSupport(new TxmObjectChildrenCellEditor(
+						viewer, columnsName.get(i)));
+
+		}
+		Table table = viewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+	}
+
+	/**
+	 * Creates the object table viewer.
+	 */
+	private void createObjectTableViewer() {
+		// create editable table with shared props of its childs
+		objectviewer = new TableViewer(this.parent, SWT.MULTI | SWT.H_SCROLL
+				| SWT.V_SCROLL | SWT.FULL_SELECTION);
+		objectviewer.getTable().addKeyListener(new TableKeyListener(objectviewer));
+		GridData griddata = new GridData(GridData.FILL, GridData.FILL, true,
+				true);
+		griddata.minimumHeight = 200;
+		griddata.horizontalSpan = 2;
+		objectviewer.getTable().setLayoutData(griddata);
+
+		createObjectColumns(objectviewer);
+		objectviewer
+				.setContentProvider(new TxmObjectPropertiesContentProvider());
+		objectviewer.setLabelProvider(new TxmObjectPropertiesLabelProvider());
+		objectviewer.setInput(txmObject);
+		parent.layout();
+	}
+
+	// This will create the columns for the table
+	/**
+	 * Creates the object columns.
+	 *
+	 * @param objectviewer the objectviewer
+	 */
+	private void createObjectColumns(TableViewer objectviewer) {
+
+		columnsName = new ArrayList<String>();
+		columnsName.add(Messages.ObjectExplorer_27);
+		columnsName.add(Messages.ObjectExplorer_2);
+
+		for (int i = 0; i < columnsName.size(); i++) {
+			TableViewerColumn column = new TableViewerColumn(objectviewer,
+					SWT.NONE);
+			column.getColumn().setText(columnsName.get(i));
+			column.getColumn().setWidth(100);
+			column.getColumn().setResizable(true);
+			column.getColumn().setMoveable(true);
+			if (i > 0)
+				column.setEditingSupport(new TxmObjectPropertiesCellEditor(
+						objectviewer, i));
+		}
+		Table table = objectviewer.getTable();
+		table.setHeaderVisible(true);
+		table.setLinesVisible(true);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return source;
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/ObjectExplorer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesLabelProvider.java	(revision 122)
@@ -0,0 +1,71 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.util.Map.Entry;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.objects.Property;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectPropertiesLabelProvider.
+ */
+public class TxmObjectPropertiesLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/**
+	 * Instantiates a new txm object properties label provider.
+	 */
+	TxmObjectPropertiesLabelProvider() {
+		super();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		Entry<String, Property> object = (Entry<String, Property>) element;
+		if (columnIndex == 0)// key
+			return object.getKey().toString();
+		else
+			return object.getValue().getValue().toString();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectPropertiesLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildContentProvider.java	(revision 122)
@@ -0,0 +1,68 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.objectexplorer;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.txm.objects.*;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TxmObjectChildContentProvider.
+ */
+public class TxmObjectChildContentProvider implements
+		IStructuredContentProvider {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		@SuppressWarnings("unchecked")
+		List<TxmObject> objects = (List<TxmObject>) inputElement;
+		return objects.toArray();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/objectexplorer/TxmObjectChildContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Generic editor for tables</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/TablableVector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/TablableVector.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/TablableVector.java	(revision 122)
@@ -0,0 +1,161 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.adaptableDataStructure;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.ui.IPersistableElement;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.Tablable;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TablableVector.
+ */
+public class TablableVector implements Tablable {
+
+	/** The column titles. */
+	String[] columnTitles;
+	
+	/** The column types. */
+	String[] columnTypes;
+
+	/**
+	 * Instantiates a new tablable vector.
+	 *
+	 * @param freq the freq
+	 * @param forms the forms
+	 * @param columnTitles the column titles
+	 * @param columnTypes the column types
+	 */
+	public TablableVector(int[] freq, String[] forms, String[] columnTitles,
+			String[] columnTypes) {
+		this.columnTitles = columnTitles;
+		this.columnTypes = columnTypes;
+		if (columnTitles.length != columnTypes.length)
+			throw new IllegalArgumentException(Messages.TablableVector_0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getColumnTitles()
+	 */
+	@Override
+	public String[] getColumnTitles() {
+		return columnTitles;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getContentProvider()
+	 */
+	@Override
+	public IStructuredContentProvider getContentProvider() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getInput()
+	 */
+	@Override
+	public Object getInput() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getLabelProvider()
+	 */
+	@Override
+	public LabelProvider getLabelProvider() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getPersistable()
+	 */
+	@Override
+	public IPersistableElement getPersistable() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
+	 */
+	@Override
+	public String getToolTipText() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	@Override
+	public Object getAdapter(Class adapter) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.editors.Tablable#getColumnTypes()
+	 */
+	@Override
+	public String[] getColumnTypes() {
+		return columnTypes;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/adaptableDataStructure/TablableVector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineContentProvider.java	(revision 122)
@@ -0,0 +1,81 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.lexicaltable;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.txm.stat.data.LexicalTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The IStructuredContentProvider used by the reference and line tables.
+ *
+ * @author jmague
+ */
+public class LineContentProvider implements IStructuredContentProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java
+	 * .lang.Object)
+	 */
+	@Override
+	public Object[] getElements(Object inputElement) {
+		LexicalTable table = (LexicalTable) inputElement;
+		Integer[] lines = new Integer[table.getNRows()];
+		for (int i = 0; i < lines.length; i++)
+			lines[i] = i;
+		return lines;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface
+	 * .viewers.Viewer, java.lang.Object, java.lang.Object)
+	 */
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LexicalTableEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LexicalTableEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LexicalTableEditor.java	(revision 122)
@@ -0,0 +1,797 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.lexicaltable;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.commands.editor.MergeLines;
+import org.txm.rcpapplication.editors.TableKeyListener;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+import org.txm.rcpapplication.swt.widget.ObjectSelector;
+import org.txm.rcpapplication.swt.widget.PropertiesSelector;
+import org.txm.rcpapplication.swt.widget.QueryWidget;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.data.Vector;
+import org.txm.stat.engine.r.RWorkspaceException;
+// TODO: Auto-generated Javadoc
+/**
+ * display the lexical table tools to merge/delete lines or columns and display
+ * the lexical table too @ author mdecorde.
+ */
+public class LexicalTableEditor extends EditorPart implements CustomizableEditor{
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"; //$NON-NLS-1$
+
+	/** The table. */
+	LexicalTable table;
+
+	// params
+	/** The query widget. */
+	QueryWidget queryWidget;
+
+	/** The props area. */
+	PropertiesSelector propsArea;
+
+	/** The line table viewer. */
+	TableViewer viewer;
+
+	/** The part columns. */
+	List<TableViewerColumn> partColumns = new ArrayList<TableViewerColumn>();
+
+	/** The part column. */
+	TableViewerColumn partColumn;
+
+	/** The n column. */
+	TableViewerColumn nColumn;
+
+	/** The form column. */
+	TableViewerColumn formColumn;
+
+	/** The freq column. */
+	TableViewerColumn freqColumn;
+	// org.eclipse.swt.widgets.List colCombo;
+	/** The colselector. */
+	ObjectSelector colselector;
+
+	/** The test combo. */
+	Combo testCombo;
+
+	/** The minfreqspinner. */
+	Spinner minfreqspinner;
+
+	/** The top spinner. */
+	Spinner topSpinner;
+
+	/** The fusion text. */
+	Text fusionText;
+
+	/** The cols. */
+	private List<double[]> cols;
+
+	/** The rows. */
+	private List<String> rows;
+
+	/** The collist. */
+	List<Object> collist;
+
+	/** The freqs. */
+	//private List<Integer> freqs;
+
+	/** The previous sorted col. */
+	private int previousSortedCol;
+	boolean DEFAULTREVERSE = false;
+	boolean reverse = DEFAULTREVERSE;
+
+	/** The source. */
+	private Object source;
+
+	/**
+	 * Do save.
+	 *
+	 * @param arg0 the arg0
+	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
+	 */
+	@Override
+	public void doSave(IProgressMonitor arg0) {
+
+	}
+
+	/**
+	 * Do save as.
+	 *
+	 * @see org.eclipse.lyon gournd zeroui.part.EditorPart#doSaveAs()
+	 */
+	@Override
+	public void doSaveAs() {
+
+	}
+
+	/**
+	 * Inits the.
+	 *
+	 * @param site the site
+	 * @param input the input
+	 * @throws PartInitException the part init exception
+	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
+	 * org.eclipse.ui.IEditorInput)
+	 */
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		table = ((LexicalTableEditorInput) input).getLexicalTable();
+	}
+
+	/**
+	 * Checks if is dirty.
+	 *
+	 * @return true, if is dirty
+	 * @see org.eclipse.ui.part.EditorPart#isDirty()
+	 */
+	@Override
+	public boolean isDirty() {
+		return false;
+	}
+
+	/**
+	 * Checks if is save as allowed.
+	 *
+	 * @return true, if is save as allowed
+	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
+	 */
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	/**
+	 * Sort.
+	 *
+	 * @param col the col
+	 * @param index the index
+	 */
+	public void sort(TableViewerColumn col, int index) {
+
+		if (index == previousSortedCol) {
+			reverse = !reverse;
+		} else {
+			reverse = DEFAULTREVERSE;
+		}
+
+		if (index == -2) {// rownames
+			table.sortRowNames(reverse);
+		} else if (index == -1) { // freqs
+			try {
+				table.sortByFreqs(reverse);
+				StatusLine.setMessage(Messages.IndexEditor_37);
+			} catch (Exception e2) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e2);
+			}
+		} else if (index >= 0) {
+			table.sort(index, reverse);
+		}
+
+		previousSortedCol = index;
+		refreshTable();
+
+		viewer.getTable().setSortColumn(col.getColumn());
+		if (reverse)
+			viewer.getTable().setSortDirection(SWT.DOWN);
+		else
+			viewer.getTable().setSortDirection(SWT.UP);
+	}
+
+	Label infos;
+	/**
+	 * Creates the part control.
+	 *
+	 * @param parent the parent
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(final Composite parent) {
+		FormLayout parentLayout = new FormLayout();
+		parent.setLayout(parentLayout);
+
+		final Composite paramArea = new Composite(parent, SWT.NONE);
+		FormData paramLayoutData = new FormData();
+		paramLayoutData.top = new FormAttachment(0);
+		paramLayoutData.left = new FormAttachment(0);
+		paramLayoutData.right = new FormAttachment(100);
+		paramArea.setLayoutData(paramLayoutData);
+
+		GridLayout paramLayout = new GridLayout(5, false);
+		paramArea.setLayout(paramLayout);
+
+		infos = new Label(paramArea, SWT.NONE);
+		infos.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				true, 5, 1));
+		refreshInfos();
+
+		Button keepTop = new Button(paramArea, SWT.PUSH);
+		keepTop.setText(Messages.LexicalTableEditor_4);
+		keepTop.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.LexicalTableEditor_16);
+				System.out.println(NLS.bind(Messages.LexicalTableEditor_5, topSpinner.getSelection(), minfreqspinner.getSelection()));
+
+				MessageBox messageBox = new MessageBox(e.display
+						.getActiveShell(), SWT.ICON_QUESTION | SWT.YES | SWT.NO);
+				messageBox.setMessage(Messages.DeleteLines_1);
+				int response = messageBox.open();
+				if (response != SWT.YES)
+					return;
+
+				try {
+					table.filter(topSpinner.getSelection(), minfreqspinner.getSelection());
+					refreshTable();
+					StatusLine.setMessage(""); //$NON-NLS-1$
+				} catch (Exception e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+					StatusLine.setMessage("LT: sort error"); //$NON-NLS-1$
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		infos = new Label(paramArea, SWT.NONE);
+		infos.setText(Messages.LexicalTableEditor_8);
+		topSpinner = new Spinner(paramArea, SWT.BORDER);
+
+		infos = new Label(paramArea, SWT.NONE);
+		infos.setText(Messages.LexicalTableEditor_6);
+		minfreqspinner = new Spinner(paramArea, SWT.BORDER);
+
+		Button fusionCol = new Button(paramArea, SWT.PUSH);
+		fusionCol.setText(Messages.LexicalTableEditor_10);
+		fusionCol.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				StatusLine.setMessage(Messages.LexicalTableEditor_18);
+				ArrayList<Object> selection = new ArrayList<Object>();
+				MergeDeleteDialog d = new MergeDeleteDialog(e.display
+						.getActiveShell(), new ArrayList<Object>(collist),
+						selection, -1);
+
+				if (d.open() == Window.OK) {
+					List<Integer> colindices = new ArrayList<Integer>();
+					for (int i = 0; i < collist.size(); i++) {
+						if (selection.contains(collist.get(i)))
+							colindices.add(i);
+					}
+
+					if (d.doMerge()) {
+						String newname = d.getMergeName();
+
+						System.out.println(NLS.bind(Messages.LexicalTableEditor_11, colindices));
+						double[] firstcol = cols.get(colindices.get(0));
+
+						// merge selected cols into the first one
+						for (int i = 1; i < colindices.size(); i++) {
+							for (int j = 0; j < table.getNRows(); j++) {
+								firstcol[j] += cols.get(colindices.get(i))[j];
+							}
+						}
+
+						// update first col of the Lexical table
+						for (int j = 0; j < table.getNRows(); j++) {
+							table.set(j, colindices.get(0), firstcol[j]);
+						}
+
+						// and its name
+						table.getColNames().setString(colindices.get(0),
+								newname);
+
+						// keep only the first col
+						List<Integer> coltodelete = colindices.subList(1,
+								colindices.size());
+						table.removeCols(coltodelete);
+
+						// refresh stuff
+						collist = new ArrayList<Object>();// update col name
+						// list
+						try {
+							for (String colname : table.getColNames()
+									.asStringsArray()) {
+								collist.add(colname);
+							}
+						} catch (StatException e1) {
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+							return;
+						}
+
+						Collections.sort(colindices);// update table viewer cols
+						for (int i = colindices.size() - 1; i >= 1; i--) {
+							viewer.getTable().getColumns()[colindices
+							                                        .get(i) + 3].dispose();// +3 = separator,
+							// form, freq
+						}
+						viewer.getTable().getColumns()[colindices.get(0) + 3].setText(newname);
+						refreshTable();
+					} else// delete
+					{
+						System.out.println(NLS.bind(Messages.LexicalTableEditor_12, colindices));
+						table.removeCols(colindices);
+
+						collist = new ArrayList<Object>();
+						Vector colnames = table.getColNames();
+						try {
+							for (String colname : colnames.asStringsArray()) {
+								collist.add(colname);
+							}
+						} catch (StatException e1) {
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+							return;
+						}
+
+						Collections.sort(colindices);
+						for (int i = colindices.size() - 1; i >= 0; i--) {
+							viewer.getTable().getColumns()[colindices
+							                                        .get(i) + 3].dispose();
+						}
+						refreshTable();
+					}
+				}
+				StatusLine.setMessage(""); //$NON-NLS-1$
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		Button mergeDeleteRows = new Button(paramArea, SWT.PUSH);
+		mergeDeleteRows.setText(Messages.LexicalTableEditor_13);
+		mergeDeleteRows.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+
+				ArrayList<Object> selection = new ArrayList<Object>();
+				MergeDeleteDialog d = new MergeDeleteDialog(e.display
+						.getActiveShell(), new ArrayList<Object>(rows),
+						selection, -1);
+				int count = 0;
+				if (d.open() == Window.OK) {
+					int[] rowindices = new int[selection.size()];
+					for (int i = 0; i < rows.size(); i++) {
+						if (selection.contains(rows.get(i))) {
+							rowindices[count] = i;
+							count++;
+						}
+					}
+
+					if (d.doMerge()) {
+						MergeLines.mergeLines(LexicalTableEditor.this, d
+								.getMergeName(), rowindices);
+					} else {
+						table.removeRows(rowindices);
+						refreshTable();
+						viewer.getTable().deselectAll();
+					}
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// result
+		Composite resultArea = new Composite(parent, SWT.NONE);
+		FormData resultLayoutData = new FormData();
+		resultLayoutData.top = new FormAttachment(paramArea, 0);
+		resultLayoutData.left = new FormAttachment(0);
+		resultLayoutData.right = new FormAttachment(100);
+		resultLayoutData.bottom = new FormAttachment(100);
+		resultArea.setLayoutData(resultLayoutData);
+
+		FormLayout resultLayout = new FormLayout();
+		resultArea.setLayout(resultLayout);
+
+		viewer = new TableViewer(resultArea, SWT.MULTI
+				| SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
+		viewer.getTable().addKeyListener(new TableKeyListener(viewer));
+		viewer.getTable().setLinesVisible(true);
+		viewer.getTable().setHeaderVisible(true);
+
+		FormData tableLayoutData = new FormData();
+		tableLayoutData.top = new FormAttachment(0);
+		tableLayoutData.bottom = new FormAttachment(100);
+		tableLayoutData.left = new FormAttachment(0);
+		tableLayoutData.right = new FormAttachment(100);
+		viewer.getTable().setLayoutData(tableLayoutData);
+
+		nColumn = new TableViewerColumn(viewer, SWT.RIGHT);
+		nColumn.getColumn().setText(" "); //$NON-NLS-1$
+		nColumn.getColumn().pack();
+
+		formColumn = new TableViewerColumn(viewer, SWT.LEFT);
+		formColumn.getColumn().setText(this.table.getProperty().getName()); 
+		formColumn.getColumn().setWidth(200);
+		formColumn.getColumn().addSelectionListener(
+				new ColumnSelectionListener(formColumn, -2));
+
+		freqColumn = new TableViewerColumn(viewer, SWT.LEFT);
+		freqColumn.getColumn().setText(Messages.FrequencyListEditorInput_4); 
+		freqColumn.getColumn().setWidth(200);
+		freqColumn.getColumn().addSelectionListener(
+				new ColumnSelectionListener(freqColumn, -1));
+		collist = new ArrayList<Object>();
+		Vector colnames = table.getColNames();
+		
+		try {
+			int[] colmargins = table.getColMarginsVector().asIntArray();
+			int i = 0;
+			for (String colname : colnames.asStringsArray()) {
+				// partColumn = new TableColumn(lineTableViewer.getTable(),
+				// SWT.RIGHT);
+				partColumn = new TableViewerColumn(viewer, SWT.RIGHT);
+				partColumn.getColumn().setText(colname+" t="+colmargins[i]); //$NON-NLS-1$
+				partColumn.getColumn().setToolTipText(colname); 
+				collist.add(colname);
+				partColumn.getColumn().setWidth(200);
+				partColumn.getColumn().addSelectionListener(
+						new ColumnSelectionListener(partColumn, i));
+				i++;
+			}
+		} catch (StatException e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			return;
+		}
+
+		nColumn = new TableViewerColumn(viewer, SWT.RIGHT);
+		nColumn.getColumn().setText(""); //$NON-NLS-1$
+		nColumn.getColumn().pack();
+
+		viewer.setContentProvider(new LineContentProvider());
+		refreshTable();
+		viewer.setInput(table);
+		parent.layout();
+
+		if (table != null) {
+			setPartName(table.getPartition().getName()+": "+table.getName()); //$NON-NLS-1$
+		}
+
+		viewer.refresh();
+		viewer.getTable().setSortColumn(formColumn.getColumn());
+		viewer.getTable().setSortDirection(SWT.UP);
+
+		createContextMenu(viewer);
+	}
+
+	private void refreshColNames() throws StatException, CqiClientException {
+		TableColumn[] cols = viewer.getTable().getColumns();
+		String[] colnames = table.getColNames().asStringsArray();
+
+		for (int i = 0 ; i < cols.length ; i++) {
+			cols[i].setText(colnames[i]+ "T="+table.getPartition().getParts().get(i).getSize()); //$NON-NLS-1$
+		}
+	}
+
+	private void refreshInfos() {
+		try {
+			infos.setText(Messages.IndexEditor_27 + table.getTotal()
+					+ Messages.IndexEditor_28 + table.getNRows()
+					+ Messages.LexicalTableEditor_2 + table.getFmin()
+					+ Messages.LexicalTableEditor_3 + table.getFmax());
+			infos.redraw();
+			infos.getParent().layout();
+		} catch (RWorkspaceException e3) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e3);
+		}
+	}
+
+	/**
+	 * Creates the context menu.
+	 *
+	 * @param tableViewer the table viewer
+	 */
+	private void createContextMenu(TableViewer tableViewer) {
+
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(tableViewer.getTable());
+		tableViewer.getTable().setMenu(menu);
+		getSite().registerContextMenu(menuManager, tableViewer);
+		getSite().setSelectionProvider(tableViewer);
+	}
+
+	/**
+	 * Refresh table.
+	 */
+	public void refreshTable() {
+		LineLabelProvider labelprovider = new LineLabelProvider(table);
+		viewer.setLabelProvider(labelprovider);
+		this.cols = labelprovider.getCols();
+		this.rows = labelprovider.getRows();
+		//this.freqs = labelprovider.getFreqs();
+		viewer.refresh();
+		for (TableColumn col : viewer.getTable().getColumns()) {
+			col.pack();
+		}
+
+		topSpinner.setMinimum(1);
+		topSpinner.setMaximum(table.getNRows());
+		topSpinner.setSelection(table.getNRows());
+		minfreqspinner.setMinimum(table.getFmin());
+		minfreqspinner.setMaximum(table.getFmax());
+		viewer.getTable().setFocus();
+	}
+
+	/**
+	 * Sets the col comparator.
+	 *
+	 * @param comp the comp
+	 * @param col the col
+	 */
+	private void setColComparator(Comparator comp, TableColumn col) {
+		/*
+		 * currentComparator = comp;
+		 * if (lineTableViewer.getTable().getSortColumn()!=col){
+		 * lineTableViewer.getTable().setSortColumn(col);
+		 * lineTableViewer.getTable().setSortDirection(SWT.UP); } else
+		 * if (lineTableViewer.getTable().getSortDirection() ==SWT.UP){
+		 * lineTableViewer.getTable().setSortDirection(SWT.DOWN);
+		 * currentComparator = new ReverseComparator(currentComparator); } else
+		 * lineTableViewer.getTable().setSortDirection(SWT.UP);
+		 * currentComparator.initialize(cooc.getCorpus());
+		 */
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	@Override
+	public void setFocus() {
+
+	}
+
+	/**
+	 * Gets the corpus.
+	 *
+	 * @return the corpus
+	 */
+	public Corpus getCorpus() {
+		return null;
+	}
+
+	/**
+	 * The listener interface for receiving columnSelection events.
+	 * The class that is interested in processing a columnSelection
+	 * event implements this interface, and the object created
+	 * with that class is registered with a component using the
+	 * component's <code>addColumnSelectionListener<code> method. When
+	 * the columnSelection event occurs, that object's appropriate
+	 * method is invoked.
+	 *
+	 * @see ColumnSelectionEvent
+	 */
+	public class ColumnSelectionListener implements SelectionListener {
+
+		/** The col. */
+		TableViewerColumn col;
+
+		/** The index. */
+		int index;
+
+		/**
+		 * Instantiates a new column selection listener.
+		 *
+		 * @param formColumn the form column
+		 * @param index the index
+		 */
+		public ColumnSelectionListener(TableViewerColumn formColumn, int index) {
+			this.col = formColumn;
+			this.index = index;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
+		@Override
+		public void widgetDefaultSelected(SelectionEvent e) {
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
+		 */
+		@Override
+		public void widgetSelected(SelectionEvent e) {
+			StatusLine.setMessage(Messages.IndexEditor_36);
+			sort(col, index);
+			StatusLine.setMessage(""); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Gets the line table viewer.
+	 *
+	 * @return the line table viewer
+	 */
+	public TableViewer getlineTableViewer() {
+		return viewer;
+	}
+
+	/**
+	 * Gets the lexical table.
+	 *
+	 * @return the lexical table
+	 */
+	public LexicalTable getLexicalTable() {
+		return table;
+	}
+
+	/**
+	 * Gets the cols.
+	 *
+	 * @return the cols
+	 */
+	public List<double[]> getCols() {
+		return cols;
+	}
+
+	/**
+	 * Export data.
+	 *
+	 * @param file the file
+	 */
+	public void exportData(File file) {
+		table.exportData(file, "\t", ""); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Import data.
+	 *
+	 * @param file the file
+	 */
+	public void importData(File file) {
+		try {
+			if (table.importData(file)) {
+				// fix col names
+				String[] colnames = table.getColNames().asStringsArray();
+				TableColumn[] cols = viewer.getTable().getColumns();
+				if (colnames.length > cols.length) {
+					System.out.println(Messages.LexicalTableEditor_1+Arrays.toString(cols)+Messages.LexicalTableEditor_7+Arrays.toString(colnames)+" ");  //$NON-NLS-1$
+					return;
+				}
+				for (int i = 0; i < colnames.length ; i++) {
+					//System.out.println("set col name "+colnames[i]);
+					cols[3 + i].setText(colnames[i]);
+				}
+				viewer.refresh();
+				viewer.setInput(table);
+				viewer.getTable().getParent().layout();
+				refreshTable();
+			} else {
+				System.out.println(Messages.LexicalTableEditor_14);
+			}
+		} catch(Exception e) {
+			System.out.println(Messages.LexicalTableEditor_15+e);
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source)
+	{
+		this.source = source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return table;
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		Corpus c = getCorpus();
+		if (c == null) return false;
+		return c.getName().equals(corpus.getName());
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LexicalTableEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineLabelProvider.java	(revision 122)
@@ -0,0 +1,171 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.lexicaltable;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.CoocPreferencePage;
+import org.txm.stat.data.LexicalTable;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class LineLabelProvider.
+ */
+public class LineLabelProvider extends LabelProvider implements
+		ITableLabelProvider {
+
+	/** The format. */
+	String format = TxmPreferences.get(CoocPreferencePage.SCOREFORMAT);
+	
+	/** The table. */
+	LexicalTable table;
+	
+	/** The rownames. */
+	String[] rownames;
+	
+	/** The cols. */
+	List<double[]> cols = new ArrayList<double[]>();
+	
+	/** The freqs. */
+	int[] freqs;
+	
+	/** The Nrows. */
+	int Nrows = 0;
+	
+	/** The Ncols. */
+	int Ncols = 0;
+	
+	/** The tot. */
+	int tot = 0;
+	
+	/** The max. */
+	int max = 0;
+
+	/**
+	 * Instantiates a new line label provider.
+	 *
+	 * @param table the table
+	 */
+	public LineLabelProvider(LexicalTable table) {
+		super();
+		this.table = table;
+		try {
+			rownames = table.getRowNames().asStringsArray();
+			Nrows = table.getNRows();
+			Ncols = table.getNColumns();
+			for (int i = 0; i < Ncols; i++)
+				cols.add(table.getCol(i).asDoubleArray());
+			freqs = table.getRowMargins();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+
+		switch (columnIndex) {
+		case 0:
+			return ""; //$NON-NLS-1$
+		case 1:
+			return rownames[(Integer) element];
+		case 2:
+			return "" + freqs[(Integer) element]; //$NON-NLS-1$
+		default:
+
+			if (columnIndex == Ncols + 3)
+				return ""; //$NON-NLS-1$
+			else
+				return "" + (int) cols.get(columnIndex - 3)[(Integer) element]; //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Gets the cols.
+	 *
+	 * @return the cols
+	 */
+	public List<double[]> getCols() {
+		return cols;
+	}
+
+	/**
+	 * Gets the freqs.
+	 *
+	 * @return the freqs
+	 */
+	public int[] getFreqs() {
+		return freqs;
+	}
+
+	/**
+	 * Gets the total.
+	 *
+	 * @return the total
+	 */
+	public int getTotal() {
+		return tot;
+	}
+
+	/**
+	 * Gets the max.
+	 *
+	 * @return the max
+	 */
+	public int getMax() {
+		return max;
+	}
+
+	/**
+	 * Gets the rows.
+	 *
+	 * @return the rows
+	 */
+	public List<String> getRows() {
+		// TODO Auto-generated method stub
+		return Arrays.asList(rownames);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/LineLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/MergeDeleteDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/MergeDeleteDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/MergeDeleteDialog.java	(revision 122)
@@ -0,0 +1,148 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors.lexicaltable;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.dialog.ObjectSelectionDialog;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MergeDeleteDialog.
+ */
+public class MergeDeleteDialog extends ObjectSelectionDialog {
+	
+	/** The merge radio. */
+	Button mergeRadio;
+	
+	/** The delete radio. */
+	Button deleteRadio;
+	
+	/** The newname. */
+	Text newname;
+	
+	/** The do merge. */
+	boolean doMerge;
+	
+	/** The mergename. */
+	private String mergename;
+
+	/**
+	 * Instantiates a new merge delete dialog.
+	 *
+	 * @param shell the shell
+	 * @param available the available
+	 * @param selected the selected
+	 * @param max the max
+	 */
+	public MergeDeleteDialog(Shell shell, List<Object> available,
+			List<Object> selected, int max) {
+		super(shell, available, selected, max);
+		//shell.setText("test");
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.swt.dialog.ObjectSelectionDialog#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell shell) {
+	      super.configureShell(shell);
+	      shell.setText(Messages.MergeDeleteDialog_1);
+	   }
+
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.swt.dialog.ObjectSelectionDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		super.createDialogArea(parent);
+
+		mergeRadio = new Button(mainArea, SWT.RADIO);
+		mergeRadio.setText(Messages.MergeDeleteDialog_0);
+		mergeRadio.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false,
+				2, 1));
+		mergeRadio.setSelection(true);
+		
+		deleteRadio = new Button(mainArea, SWT.RADIO);
+		deleteRadio.setText(Messages.ProgressionDialog_5);
+		deleteRadio.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false,
+				2, 1));
+		
+		newname = new Text(mainArea, SWT.SINGLE | SWT.BORDER);
+		newname.setText(Messages.MergeDeleteDialog_4);
+		newname.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 4,
+				1));
+
+		return mainArea;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.swt.dialog.ObjectSelectionDialog#okPressed()
+	 */
+	@Override
+	public void okPressed() {
+		doMerge = mergeRadio.getSelection();
+		mergename = newname.getText();
+		super.okPressed();
+	}
+
+	/**
+	 * Do merge.
+	 *
+	 * @return true, if successful
+	 */
+	public boolean doMerge() {
+		return doMerge;
+	}
+
+	/**
+	 * Do delete.
+	 *
+	 * @return true, if successful
+	 */
+	public boolean doDelete() {
+		return !doMerge;
+	}
+
+	/**
+	 * Gets the merge name.
+	 *
+	 * @return the merge name
+	 */
+	public String getMergeName() {
+		return mergename;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/lexicaltable/MergeDeleteDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cah/CAHChartEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cah/CAHChartEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cah/CAHChartEditor.java	(revision 122)
@@ -0,0 +1,192 @@
+package org.txm.rcpapplication.editors.cah;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CLabel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.ToolItem;
+import org.txm.chartsengine.rcp.editors.ChartEditorPart;
+import org.txm.functions.TXMResult;
+import org.txm.functions.classification.CAH;
+import org.txm.rcp.chartsengine.base.___editors.inputs.___ChartEditorInput;
+import org.txm.rcp.chartsengine.base.events.cah.CAHSelectionListener;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+/**
+ * CAH chart editor.
+ * @author sjacquot
+ *
+ */
+public class CAHChartEditor extends ChartEditorPart implements CustomizableEditor {
+
+	/**
+	 * The <code>EditorPart</code> ID constant.
+	 */
+	public static final String ID = CAHChartEditor.class.getCanonicalName();
+
+
+
+	/**
+	 * Numbers of clusters.
+	 */
+	protected Spinner numbersOfClusters;
+
+	/**
+	 * Compute columns or rows.
+	 */
+	protected ToolItem computeColumns;
+
+
+
+	/**
+	 * Creates an empty <code>CAHChartEditor</code>.
+	 */
+	public CAHChartEditor() {
+		super();
+	}
+
+
+	/**
+	 * Creates a <code>CAHChartEditor</code>.
+	 * @param editorInput
+	 */
+	public CAHChartEditor(___ChartEditorInput editorInput) {
+		this.setInput(editorInput);
+	}
+
+
+
+	@Override
+	public void createPartControl(Composite parent) {
+
+		super.createPartControl(parent);
+
+
+		// Extend the chart editor tool bar
+		ToolItem separator = new ToolItem(this.toolBar, SWT.SEPARATOR);
+
+		// Number of clusters
+		ToolItem itemSeparator = new ToolItem(this.toolBar, SWT.SEPARATOR);
+	    CLabel clustersLabel = new CLabel(this.toolBar, SWT.CENTER);
+		clustersLabel.setText(SWTChartsComponentsProviderMessages.SWTChartsComponentProvider_CAH_TOOLBAR_BUTTON_NUMBER_OF_CLUSTERS);
+		clustersLabel.pack();
+		itemSeparator.setWidth(clustersLabel.getBounds().width);
+	    itemSeparator.setControl(clustersLabel);
+
+	    itemSeparator = new ToolItem(this.toolBar, SWT.SEPARATOR);
+	    this.numbersOfClusters = new Spinner(this.toolBar, SWT.BORDER);
+	    this.numbersOfClusters.setMinimum(2);
+	    this.numbersOfClusters.setIncrement(1);
+	    this.updateNumbersOfClustersCurrentValue();
+	    this.updateNumbersOfClustersMaxValue();
+
+		this.numbersOfClusters.addSelectionListener(new CAHSelectionListener(this, CAHSelectionListener.NUMBERS_OF_CLUSTERS));
+		itemSeparator.setControl(this.numbersOfClusters);
+		this.numbersOfClusters.pack();
+		itemSeparator.setWidth(this.numbersOfClusters.getBounds().width);
+
+
+		// Columns
+		this.computeColumns = new ToolItem(this.toolBar, SWT.RADIO);
+		this.computeColumns.setToolTipText(Messages.ComputeClassification_5);
+		this.computeColumns.setImage(IImageKeys.getImage(IImageKeys.CHARTS_CAH_COMPUTE_COLUMNS));
+		// FIXME: keep this for offering an option "large icons" with text in buttons ?
+		//this.computeColumns.setText(Messages.ComputeClassification_5);
+		this.computeColumns.setSelection(this.getResultData().isColumnsComputing());
+		this.computeColumns.addSelectionListener(new CAHSelectionListener(this, CAHSelectionListener.COMPUTE_COLUMNS));
+
+		// Rows
+		ToolItem computeRows = new ToolItem(this.toolBar, SWT.RADIO);
+		computeRows.setToolTipText(Messages.ComputeClassification_6);
+		computeRows.setImage(IImageKeys.getImage(IImageKeys.CHARTS_CAH_COMPUTE_ROWS));
+		// FIXME: keep this for offering an option "large icons" with text in buttons ?
+		//computeRows.setText(Messages.ComputeClassification_6);
+		computeRows.setSelection(!this.getResultData().isColumnsComputing());
+
+	}
+
+
+	/**
+	 * Updates the maximum value of the number of clusters spinner according to the CAH configuration.
+	 */
+	public void updateNumbersOfClustersMaxValue()	{
+		 this.numbersOfClusters.setMaximum(this.getResultData().getMaxClustersCount());
+	}
+
+	/**
+	 * Updates the current value of the number of clusters spinner.
+	 */
+	public void updateNumbersOfClustersCurrentValue()	{
+		this.numbersOfClusters.setSelection(this.getResultData().getNCluster());
+	}
+
+
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	@Override
+	public void setIcon(Image titleImage) {
+		this.setTitleImage(titleImage);
+	}
+
+	@Override
+	public void setSource(Object source) {
+		if (source instanceof CAH)
+			getEditorInput().setResultData((TXMResult) source);
+	}
+
+	@Override
+	public Object getSource() {
+		return getResultData();
+	}
+
+	@Override
+	public Object toConcordance() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public Object toIndex() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	@Override
+	public Object toProgression() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+
+
+	@Override
+	public CAH getResultData() {
+		return (CAH) super.getResultData();
+	}
+
+
+	@Override
+	public String getID() {
+		return CAHChartEditor.ID;
+	}
+
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		CAH cah = getResultData();
+		if (cah != null && cah.getCorpus() != null) 
+			return cah.getCorpus().getName().equals(corpus.getName());
+		return false;
+	}
+
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/cah/CAHChartEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/IEditionEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/IEditionEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/IEditionEditor.java	(revision 122)
@@ -0,0 +1,9 @@
+package org.txm.rcpapplication.editors;
+
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+public interface IEditionEditor {
+	public String getTextSelection();
+
+	public Corpus getCorpus();
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/IEditionEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMBrowser.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMBrowser.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMBrowser.java	(revision 122)
@@ -0,0 +1,721 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.editors;
+
+import java.util.List;
+
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.RowData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.internal.browser.BrowserViewer;
+import org.eclipse.ui.internal.browser.WebBrowserEditor;
+import org.txm.objects.Edition;
+import org.txm.objects.Page;
+import org.txm.objects.Text;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+/**
+ * Call the internal browser of RCP specialized for TXM editions. 
+ * 
+ * A Text can be set then the user can browse pages and others texts of the same corpus 
+ * 
+ * @author mdecorde.
+ */
+@SuppressWarnings("restriction") //$NON-NLS-1$
+public class TXMBrowser extends WebBrowserEditor implements CustomizableEditor {
+	
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.editors.TXMBrowser"; //$NON-NLS-1$
+	private ProgressListener progresslistener;
+	private List<String> wordids;
+	private List<String> lineids;
+	
+	/** The edition. */
+	Edition edition;
+	
+	/** The current page. */
+	Page currentPage;
+	
+	/** The page_label. */
+	Label page_label;
+	
+	/** The source. */
+	private Object source;
+	private Corpus corpus;
+
+	/**
+	 * Instantiates a new txm browser.
+	 */
+	public TXMBrowser() {
+
+	}
+
+	/**
+	 * Gets the browser.
+	 *
+	 * @return the browser
+	 */
+	public Browser getBrowser() {
+		BrowserViewer webbrowser = this.webBrowser;
+		return webbrowser.getBrowser();
+	}
+	
+	/**
+	 * 
+	 * @param wordids2 all the words to highlight
+	 * @param lineids2 the words to highlight better and to scroll to
+	 */
+	public void setWordsIds(List<String> wordids2, List<String> lineids2) {
+		this.wordids = wordids2;
+		this.lineids = lineids2;
+		if (progresslistener != null)
+			this.getBrowser().removeProgressListener(progresslistener);
+		progresslistener = new ProgressListener() {
+			@Override
+			public void changed(ProgressEvent event) {
+			}
+
+			@Override
+			public void completed(ProgressEvent event) {
+				Page currentpage = getCurrentPage();
+				//System.out.println("Highlight ! "+currentpage.getEdition().getText()+" wordids ="+wordids);
+			
+				for (String wordid : wordids) {
+					String highlightscript = "try { var elt = document.getElementById(\"" + wordid + "\");" + //$NON-NLS-1$ //$NON-NLS-2$
+					"elt.style.backgroundColor=\"#F9D0D0\";" //$NON-NLS-1$
+					+ 
+					"elt.style.paddingLeft=\"3px\";" + //$NON-NLS-1$
+					"elt.style.paddingRight=\"3px\";" + //$NON-NLS-1$
+					"elt.style.paddingTop=\"1px\";" + //$NON-NLS-1$
+					"elt.style.paddingBottom=\"1px\";" + //$NON-NLS-1$
+					"} catch (e) { };"; //$NON-NLS-1$
+
+					getBrowser().execute(highlightscript);
+				}
+
+				for (String wordid : lineids) {
+					String highlightscript = "try { var elt = document.getElementById(\"" + wordid + "\");" + //$NON-NLS-1$ //$NON-NLS-2$
+					"elt.style.backgroundColor=\"#F9A0A0\";" + //$NON-NLS-1$
+					"elt.style.paddingLeft=\"3px\";" + //$NON-NLS-1$
+					"elt.style.paddingRight=\"3px\";" + //$NON-NLS-1$
+					"elt.style.paddingTop=\"1px\";" + //$NON-NLS-1$
+					"elt.style.paddingBottom=\"1px\";" + //$NON-NLS-1$
+					"} catch (e) { };"; //$NON-NLS-1$
+
+					getBrowser().execute(highlightscript);
+				}
+				if(lineids.size() > 0)
+				{
+					String script = "try { document.getElementById(\"" + lineids.get(0) + "\").scrollIntoView(true); } catch (e) { };"; //$NON-NLS-1$ //$NON-NLS-2$
+					getBrowser().execute(script);
+				}
+			}
+		};
+		getBrowser().addProgressListener(progresslistener);
+	}
+
+	/**
+	 * Sets the edition.
+	 *
+	 * @param edition the new edition
+	 */
+	public void setEdition(Edition edition) {
+		this.edition = edition;
+	}
+
+	/**
+	 * Make page label.
+	 *
+	 * @return the string
+	 */
+	public String makePageLabel() {
+		return currentPage.getName()
+				+ " / " + currentPage.getEdition().getNumPages(); //$NON-NLS-1$
+	}
+
+	/**
+	 * Show page.
+	 *
+	 * @param page the page
+	 */
+	public void showPage(Page page) {
+		edition = page.getEdition();
+		currentPage = page;
+		this.webBrowser.setURL(currentPage.toURL());
+		page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * First text.
+	 */
+	public void firstText() {
+		Text current = this.currentPage.getEdition().getText();
+		org.txm.objects.Corpus corpus = current.getCorpus();
+		Text firstText = corpus.getFirstText();
+
+		if (firstText != null) {
+			String editionName = corpus.getDefaultEdition();
+			currentPage = firstText.getEdition(editionName).getFirstPage(); 
+			if (currentPage == null) {
+				StatusLine.setMessage(Messages.TxmBrowser_11);
+				return;
+			}
+			this.setEdition(firstText.getEdition(editionName)); 
+			this.webBrowser.setURL(currentPage.toURL());
+			page_label.setText(makePageLabel());
+		}
+	}
+
+	/**
+	 * Last text.
+	 */
+	public void lastText() {
+		Text current = this.currentPage.getEdition().getText();
+		org.txm.objects.Corpus b = current.getCorpus();
+		Text lastText = b.getLastText();
+
+		if (lastText != null) {
+			currentPage = lastText.getEdition(b.getDefaultEdition()).getFirstPage(); 
+			if (currentPage == null) {
+				StatusLine.setMessage(Messages.TxmBrowser_12);
+				return;
+			}
+			this.setEdition(lastText.getEdition(b.getDefaultEdition())); 
+			this.webBrowser.setURL(currentPage.toURL());
+			page_label.setText(makePageLabel());
+		}
+	}
+	
+	/**
+	 * First page.
+	 */
+	public void firstPage() {
+		// System.out.println(Messages.TxmBrowser_1+currentPage);
+		currentPage = edition.getFirstPage();
+		this.webBrowser.setURL(currentPage.toURL());
+		page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * Last page.
+	 */
+	public void lastPage() {
+		// System.out.println(Messages.TxmBrowser_2+currentPage);
+
+		if (currentPage != null && currentPage.getFile().equals(edition.getLastPage()))
+			return;
+		currentPage = edition.getLastPage();
+		this.webBrowser.setURL(currentPage.toURL());
+		page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * Previous page.
+	 */
+	public void previousPage() {
+		// System.out.println(Messages.TxmBrowser_3+currentPage);
+		if (currentPage != null) {
+			Page previous = edition.getPreviousPage(currentPage);
+			if (previous == currentPage) {
+				previousText(true);
+			} else {
+				currentPage = previous; 
+				this.webBrowser.setURL(currentPage.toURL());
+			}
+		} else
+			firstPage();
+		page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * Next page.
+	 */
+	public void nextPage() {
+		// System.out.println(Messages.TxmBrowser_4+currentPage);
+		if (currentPage != null) {
+			Page next = edition.getNextPage(currentPage);
+			if (currentPage == next) {
+				nextText();
+			} else {
+				currentPage = next;
+				this.webBrowser.setURL(currentPage.toURL());
+			}
+
+		} else
+			firstPage();
+		page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * Previous text.
+	 * @param fromNextText 
+	 */
+	public void previousText(boolean fromNextText) {
+
+		Text current = this.currentPage.getEdition().getText();
+		org.txm.objects.Corpus corpus = current.getCorpus();
+		Text previousText = corpus.getPreviousText(current);
+
+		if (previousText != null) {
+			String editionName = corpus.getDefaultEdition();
+			if (fromNextText) {
+				currentPage = previousText.getEdition(editionName).getLastPage();	
+			} else {
+				currentPage = previousText.getEdition(editionName).getFirstPage();
+			}
+			if (currentPage == null) {
+				StatusLine.setMessage(Messages.TxmBrowser_11);
+				return;
+			}
+			this.setEdition(previousText.getEdition(editionName)); 
+			this.webBrowser.setURL(currentPage.toURL());
+			page_label.setText(makePageLabel());
+		}
+		// System.out.println("Previous texts "+previousText);
+	}
+
+	/**
+	 * Next text.
+	 */
+	public void nextText() {
+		Text current = this.currentPage.getEdition().getText();
+		org.txm.objects.Corpus b = current.getCorpus();
+		Text nextText = b.getNextText(current);
+
+		if (nextText != null) {
+			currentPage = nextText.getEdition(b.getDefaultEdition()).getFirstPage(); 
+			if (currentPage == null) {
+				StatusLine.setMessage(Messages.TxmBrowser_12);
+				return;
+			}
+			this.setEdition(nextText.getEdition(b.getDefaultEdition())); 
+			this.webBrowser.setURL(currentPage.toURL());
+			page_label.setText(makePageLabel());
+		}
+		// System.out.println("Next texts "+nextText);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.internal.browser.WebBrowserEditor#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void createPartControl(Composite parent) {
+		try {
+			super.createPartControl(parent);
+		} catch (Exception e) {
+			System.err.println(Messages.TxmBrowser_10);
+			return;
+		}
+		
+		RowLayout navigLayout = new RowLayout(SWT.HORIZONTAL);
+		navigLayout.justify = true;
+		Composite panneau = new Composite(parent, SWT.NONE);
+		panneau.setLayout(navigLayout);
+
+		RowLayout subLayout = new RowLayout(SWT.HORIZONTAL);
+		subLayout.pack = true;
+		subLayout.center = true;
+		subLayout.marginBottom = subLayout.marginHeight = 0;
+		subLayout.marginTop = subLayout.marginWidth = 0;
+		Composite subPanneau = new Composite(panneau, SWT.NONE);
+		subPanneau.setLayout(subLayout);
+		subPanneau.setLayoutData(new RowData(450, 22));
+
+		Button firstText = new Button(subPanneau, SWT.FLAT);
+		Button previousText = new Button(subPanneau, SWT.FLAT);
+		Button first = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+		Button previous = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+		page_label = new Label(subPanneau, SWT.NONE);
+		Button next = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+		Button last = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+		Button nextText = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+		Button lastText = new Button(subPanneau, SWT.FLAT|SWT.PUSH);
+
+		// set sizes
+		page_label.setLayoutData(new RowData(50, 20));
+		firstText.setLayoutData(new RowData(30, 20));
+		first.setLayoutData(new RowData(30, 20));
+		previous.setLayoutData(new RowData(30, 20));
+		next.setLayoutData(new RowData(30, 20));
+		last.setLayoutData(new RowData(30, 20));
+		nextText.setLayoutData(new RowData(30, 20));
+		previousText.setLayoutData(new RowData(30, 20));
+		lastText.setLayoutData(new RowData(30, 20));
+
+		
+		// set labels
+		page_label.setText(""); //$NON-NLS-1$
+		firstText.setImage(IImageKeys.getImage(IImageKeys.CTRLREWINDSTART));
+		firstText.setToolTipText("|<<");
+		previousText.setImage(IImageKeys.getImage(IImageKeys.CTRLREWIND));
+		previousText.setToolTipText(Messages.TxmBrowser_9);
+		first.setImage(IImageKeys.getImage(IImageKeys.CTRLSTART)); 
+		first.setToolTipText(Messages.TxmBrowser_0);
+		previous.setImage(IImageKeys.getImage(IImageKeys.CTRLREVERSE));
+		previous.setToolTipText(Messages.TxmBrowser_5);
+		next.setImage(IImageKeys.getImage(IImageKeys.CTRLPLAY));
+		next.setToolTipText(Messages.TxmBrowser_6);
+		last.setImage(IImageKeys.getImage(IImageKeys.CTRLEND));
+		last.setToolTipText(Messages.TxmBrowser_7);
+		nextText.setImage(IImageKeys.getImage(IImageKeys.CTRLFASTFORWARD));
+		nextText.setToolTipText(Messages.TxmBrowser_8);
+		lastText.setImage(IImageKeys.getImage(IImageKeys.CTRLFASTFORWARDEND));
+		lastText.setToolTipText(">>|");
+		
+
+		// set listeners
+		first.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				firstPage();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				firstPage();
+			}
+		});
+		previous.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				previousPage();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				previousPage();
+			}
+		});
+		next.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				nextPage();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				nextPage();
+			}
+		});
+		last.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				lastPage();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				lastPage();
+			}
+		});
+		nextText.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				nextText();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				nextText();
+			}
+		});
+		// set listeners
+		previousText.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				previousText(false);
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				previousText(false);
+			}
+		});
+		lastText.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				lastText();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				lastText();
+			}
+		});
+		// set listeners
+		firstText.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				firstText();
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				firstText();
+			}
+		});
+
+		subPanneau.pack();
+		panneau.pack();
+
+		FormLayout parentLayout = new FormLayout();
+
+		FormData datatop = new FormData();
+		datatop.top = new FormAttachment(0, 0);
+		datatop.left = new FormAttachment(0, 0);
+		datatop.right = new FormAttachment(100, 0);
+		datatop.bottom = new FormAttachment(panneau, 0);
+		webBrowser.setLayoutData(datatop);
+
+		FormData databottom = new FormData(200, 30);
+		databottom.bottom = new FormAttachment(100, 0);
+		databottom.left = new FormAttachment(30, -100);
+		databottom.right = new FormAttachment(80, 100);
+		panneau.setLayoutData(databottom);
+
+		parent.setLayout(parentLayout);
+		parent.pack();
+		
+		MenuManager menuManager = new MenuManager();
+		Menu menu = menuManager.createContextMenu(getBrowser());
+
+		// Set the MenuManager
+		getBrowser().setMenu(menu);
+		ISelectionProvider selProvider = new ISelectionProvider() {
+			
+			@Override
+			public void setSelection(ISelection selection) { }
+			
+			@Override
+			public void removeSelectionChangedListener(ISelectionChangedListener listener) { }
+			
+			@Override
+			public ISelection getSelection() {
+				ITextSelection sel = new ITextSelection() {
+					
+					@Override
+					public boolean isEmpty() {
+						return false;
+					}
+					
+					@Override
+					public String getText() {
+						return getTextSelection();
+					}
+					
+					@Override
+					public int getStartLine() {
+						return 0;
+					}
+					
+					@Override
+					public int getOffset() {
+						return 0;
+					}
+					
+					@Override
+					public int getLength() {
+						return 0;
+					}
+					
+					@Override
+					public int getEndLine() {
+						return 0;
+					}
+				};
+				return sel;
+			}
+			
+			@Override
+			public void addSelectionChangedListener(ISelectionChangedListener listener) { }
+		};
+		getSite().registerContextMenu(menuManager, selProvider);
+		getSite().setSelectionProvider(selProvider);
+		
+		//System.out.println("Browser menu: "+getBrowser().getMenu());
+	}
+	
+	static String SCRIPT01 = "var html = \"\";"+
+			"if (typeof window.getSelection != \"undefined\") {"+ // modern Web browsers
+			    "var sel = window.getSelection();"+
+			    "if (sel.rangeCount) {"+
+			        "var container = document.createElement(\"div\");"+
+			        "for (var i = 0, len = sel.rangeCount; i < len; ++i) {"+
+			            "container.appendChild(sel.getRangeAt(i).cloneContents());"+
+			        "}"+
+			        "html = container.innerHTML;"+
+			    "}"+
+			"} else if (typeof document.selection != \"undefined\") {"+ // for IE < 11
+			    "if (document.selection.type == \"Text\") {"+
+			        "html = document.selection.createRange().htmlText;"+
+			    "}" +
+			"}" +
+			"return html";
+	
+	// return the span@id of the current selection
+	static String SCRIPT02 = "function getChildren(node) {\n"
+			+ "if (node.children != \"undefined\")\n"
+			+ "	return node.children;\n"
+			+ "else \n"
+			+ "return node.ChildNodes;\n"
+			+ "}\n"
+			+ "function findSpans(c, a) {\n"+
+			"    for (var i = 0 ; i < c.length ; i++) {\n"+
+			"        if (c.item(i).tagName == \"SPAN\") {\n"+
+			"            var id = c.item(i).getAttribute(\"id\")\n"+
+			"            if (id.indexOf(\"w_\") == 0)\n"+
+			"                a.push(id);\n"+
+			"        } else if (c.item(i).nodeType == 1) {\n"+
+			"            findSpans(c.item(i).children, a);\n"+
+			"        }\n"+
+			"    }\n"+
+			"}\n"+
+			"    var all = [];"+
+			"    var sel = window.getSelection();"+
+			"    if (sel.rangeCount == 0){"+
+			"        return all;"+
+			"    }"+
+			"\n"+
+			"    var range = sel.getRangeAt(0);"+
+			"    var frag = range.cloneContents();alert(frag);alert(frag.children);"+
+			"    findSpans(frag.children, all);"+
+			"    return all;";
+	
+	public String getTextSelectionDOM() {
+		return ((String) getBrowser().evaluate(SCRIPT01));
+	}
+	
+	public Object getWordIDsSelection() {
+		System.out.println("WORDS IDS "+getBrowser().evaluate(SCRIPT02));
+		return getBrowser().evaluate(SCRIPT02);
+	}
+	
+	public String getTextSelection() {
+		System.out.println("DOM="+getTextSelectionDOM());
+		String rez =  getTextSelectionDOM().replaceAll("<[^>]+>", "");
+		System.out.println("STR="+rez);
+		return rez;
+	} 
+
+	/**
+	 * Gets the current page.
+	 *
+	 * @return the current page
+	 */
+	public Page getCurrentPage() {
+		return currentPage;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setSource(java.lang.Object)
+	 */
+	@Override
+	public void setSource(Object source) {
+		this.source = source;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#getSource()
+	 */
+	@Override
+	public Object getSource() {
+		return source;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setName(java.lang.String)
+	 */
+	@Override
+	public void setName(String name) {
+		this.setPartName(name);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.txm.rcpapplication.commands.editor.CustomizableEditor#setIcon(org.eclipse.swt.graphics.Image)
+	 */
+	@Override
+	public void setIcon(Image image) {
+		this.setTitleImage(image);
+	}
+	
+	@Override
+	public Object toConcordance() { return null;}
+	@Override
+	public Object toIndex() { return null;}
+	@Override
+	public Object toProgression() { return null;}
+
+	public Corpus getCorpus() {
+		return corpus;
+	}
+	
+	public void setCorpus(Corpus corpus) {
+		this.corpus = corpus;
+	}
+	
+	@Override
+	public boolean usingCorpus(Corpus corpus) {
+		return false;
+	}
+
+	@Override
+	public boolean updateCorpus(Corpus corpus) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/editors/TXMBrowser.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/StatusLine.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/StatusLine.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/StatusLine.java	(revision 122)
@@ -0,0 +1,163 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Shortcut to the RCP status bar
+ *  
+ * @author mdecorde.
+ */
+public class StatusLine {
+
+	/** The timer */
+	private static Timer timer;
+	private static int time = 15000;
+	private static boolean timerScheduled = false;
+	
+	/** The status line. */
+	private static IStatusLineManager statusLine;
+	
+	/**
+	 * Sets the IStatusLineManager.
+	 *
+	 * @param statusline the statusline
+	 */
+	public static void set(IStatusLineManager statusline) {
+		StatusLine.statusLine = statusline;
+	}
+
+	/**
+	 * Shows a message in the status line.
+	 *
+	 * @param message the new message
+	 */
+	public static void setMessage(final String message) {
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				statusLine.setMessage(null, message);
+			}
+		});
+		
+		cancelTimer();
+		scheduleTimer();
+	}
+	
+	/**
+	 * Shows a message in the status line and keeps it.
+	 *
+	 * @param message the new message
+	 */
+	public static void setMessage(final String message, boolean keep) {
+		if (!keep) {
+			setMessage(message);
+			return;
+		}
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				statusLine.setMessage(null, message);
+			}
+		});
+		cancelTimer();
+	}
+
+	/**
+	 * Shows an error message in the status line.
+	 *
+	 * @param string the string
+	 */
+	public static void error(final String message) {
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				statusLine.setErrorMessage(null, message);
+			}
+		});
+		cancelTimer();
+		scheduleTimer();
+	}
+	
+	/**
+	 * Shows an error message in the status line and keeps it.
+	 *
+	 * @param string the string
+	 */
+	public static void error(final String message, boolean keep) {
+		if (!keep) {
+			setMessage(message);
+			return;
+		}
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				statusLine.setErrorMessage(null, message);
+			}
+		});
+		cancelTimer();
+	}
+	
+	/**
+	 * Stops the timer
+	 */
+	private static void cancelTimer() {
+		if (!timerScheduled)
+			return;
+		timerScheduled = false;
+		timer.cancel();
+	}
+	
+	/**
+	 * Starts the timer
+	 */
+	private static void scheduleTimer() {
+		if (timerScheduled)
+			return;
+		timerScheduled = true;
+		timer = new Timer();
+		TimerTask timerTask = new TimerTask() {
+			@Override
+			public void run() {
+				Runnable r = new Runnable() {
+					@Override
+					public void run() {
+						StatusLine.setMessage(""); //$NON-NLS-1$
+					}
+				};
+				Display.getDefault().syncExec(r);
+			}	
+		};
+		timer.schedule(timerTask, time);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/StatusLine.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Activator.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Activator.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Activator.java	(revision 122)
@@ -0,0 +1,128 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import java.io.BufferedReader;
+import java.io.File;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+import org.txm.utils.IOUtils;
+
+/**
+ * The activator class controls the plug-in life cycle.
+ */
+public class Activator extends AbstractUIPlugin {
+
+	/** The Constant PLUGIN_ID. */
+	public static final String PLUGIN_ID = "org.txm.rcp"; //$NON-NLS-1$
+
+	/** The plugin. */
+	private static Activator plugin;
+
+	/**
+	 * The constructor.
+	 */
+	public Activator() {
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
+	 * )
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+
+		System.out.println("TXM ACTIVATED. ALL SYSTEMS GO!");
+		try {
+			preventbrokenTXMINI();
+		} catch(Exception e) {
+			System.out.println("Error while fixing TXM.ini file: "+e.getLocalizedMessage());
+		}
+	}
+
+	//TODO: this method is temporary to fix the TXM.ini file -startup and --launcher.library properties
+	private void preventbrokenTXMINI() throws Exception {
+		
+		File dataDir = new File(Platform.getInstanceLocation().getURL().getFile());
+		File txmDir = dataDir.getParentFile();
+		File TXMINI = new File(txmDir, "TXM.ini");
+		if (TXMINI.exists()) {
+			System.out.println("Fixing TXM.ini path="+TXMINI);
+			BufferedReader reader = IOUtils.getReader(TXMINI, "UTF-8");
+			String line = reader.readLine();
+			StringBuilder content = new StringBuilder();
+			boolean first = true;
+			boolean found = false;
+			while (line != null) { // skip jar lines
+				if (line.startsWith("-startup")) {found = true;}
+				else if (line.startsWith("--launcher.library")) {found = true;}
+				else if (line.contains("plugins/org.eclipse.equinox.launcher")) {found = true;}
+				else {
+					if (!first) content.append("\n");
+					content.append(line);
+					first = false;
+				}
+				line = reader.readLine();
+			}
+			reader.close();
+
+			//update the file only if the plugin configurations are found
+			if (found) IOUtils.write(TXMINI, content.toString());
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
+	 * )
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance.
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Activator.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/PropertySelector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/PropertySelector.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/PropertySelector.java	(revision 122)
@@ -0,0 +1,185 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class PropertySelector.
+ */
+public class PropertySelector extends Dialog {
+
+	/** The property. */
+	protected Property property;
+	
+	/** The properties. */
+	protected List<Property> properties;
+	
+	/** The ana prop combo. */
+	protected Combo anaPropCombo;
+
+	/** The title. */
+	protected String title;
+	
+	/** The mess. */
+	protected String mess;
+	
+	/** The corpus. */
+	protected Corpus corpus;
+
+	/**
+	 * Instantiates a new property selector.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public PropertySelector(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		try {
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+			this.title = Messages.PropertySelector_0;
+			this.mess = Messages.PropertySelector_0;
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/**
+	 * Instantiates a new property selector.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 * @param title the title
+	 * @param mess the mess
+	 */
+	public PropertySelector(Shell parentShell, Corpus corpus, String title,
+			String mess) {
+		super(parentShell);
+		this.corpus = corpus;
+		this.title = title;
+		this.mess = mess;
+		try {
+			this.properties = new ArrayList<Property>(corpus.getOrderedProperties());
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.PropertySelector_0);
+		if (title != null)
+			newShell.setText(title);
+	}
+
+	/** The composite. */
+	protected Composite composite;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		composite = new Composite(parent, SWT.NONE);
+		GridLayout layout = new GridLayout(2, false);
+		composite.setLayout(layout);
+
+		Label anaPropLabel = new Label(composite, SWT.NONE);
+		if (mess != null)
+			anaPropLabel.setText(mess);
+		else
+			anaPropLabel
+					.setText(Messages.ComputeCorrespondanceAnalysisDialog_1);
+		anaPropLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		anaPropCombo = new Combo(composite, SWT.READ_ONLY);
+		anaPropCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		int i = 0 ;
+		int iword = 0;
+		for (Property property : properties) {
+			anaPropCombo.add(property.getName());
+			if (property.getName().equals("word")) //$NON-NLS-1$
+				iword = i;
+			i++;
+		}
+		if (properties.size() > 0)
+			anaPropCombo.select(iword);
+		return composite;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		int propIndex = anaPropCombo.getSelectionIndex();
+		if (propIndex == -1) {
+			MessageDialog.openError(getShell(),
+					Messages.Invalid_analysis_property,
+					Messages.Structure_field_not_empty);
+			return;
+		}
+		property = properties.get(propIndex);
+
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public Property getProperty() {
+		return property;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/PropertySelector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/TXMMessageBox.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/TXMMessageBox.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/TXMMessageBox.java	(revision 122)
@@ -0,0 +1,57 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class TXMMessageBox.
+ */
+public class TXMMessageBox {
+
+  /** The button. */
+  Button button;
+  
+  /**
+   * Instantiates a new tXM message box.
+   *
+   * @param shell the shell
+   * @param title the title
+   * @param message the message
+   * @param style the style
+   */
+  public static void show(Shell shell, String title, String message, int style) {
+	  MessageBox messageBox = new MessageBox(shell, style);
+      messageBox.setText(title);
+      messageBox.setMessage(message);
+      messageBox.open();
+  }
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/TXMMessageBox.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueDialog.java	(revision 122)
@@ -0,0 +1,126 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+// TODO: Auto-generated Javadoc
+/**
+ * build a query with the help of simple questions @ author mdecorde.
+ */
+public class MultipleValueDialog extends Dialog {
+	
+	/** The self. */
+	MultipleValueDialog self;
+	
+	/** The main panel. */
+	Composite mainPanel;
+	
+	/** The parent shell. */
+	Shell parentShell;
+
+	/** The values. */
+	LinkedHashMap<String, String> values;
+	HashMap<String, Text> widgets = new HashMap<String, Text>();
+	
+	/** The title. */
+	private String title;
+
+	/**
+	 * Instantiates a new combo dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param title the title
+	 * @param values the values
+	 * @param defaultValue the default value
+	 */
+	public MultipleValueDialog(Shell parentShell, String title, LinkedHashMap<String, String> values) {
+		super(parentShell);
+		this.parentShell = parentShell;
+		this.setShellStyle(this.getShellStyle());
+		this.values = values;
+		this.title = title;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(title);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite p) {
+		//System.out.println(p.getLayout());
+		
+		for (String name : values.keySet()) {
+			Label label = new Label(p, SWT.NONE);
+			label.setText(name+": "); //$NON-NLS-1$
+			label.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false,	false));
+			Text valueText = new Text(p, SWT.BORDER); 
+			valueText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 4, 1)); // 5 ?
+			valueText.setText(values.get(name));
+			widgets.put(name, valueText);
+		}
+		return p;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		for (String name : values.keySet())
+			values.put(name, widgets.get(name).getText());
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public HashMap<String, String> getValues() {
+		return values;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueTreeDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueTreeDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueTreeDialog.java	(revision 122)
@@ -0,0 +1,221 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * build a query with the help of simple questions @ author mdecorde.
+ */
+public class MultipleValueTreeDialog extends Dialog {
+
+	/** The self. */
+	MultipleValueTreeDialog self;
+	ScrolledComposite scrollComposite;
+	/** The main panel. */
+	Composite mainPanel;
+
+	/** The parent shell. */
+	Shell parentShell;
+
+	/** The values. */
+	LinkedHashMap<String, String> values;
+	private ArrayList<LinkedHashMap<String, String>> subvalues;
+
+	HashMap<String, Text> widgets = new HashMap<String, Text>();
+	ArrayList<HashMap<String, Text>> subwidgets = new ArrayList<HashMap<String, Text>>();
+
+	/** The title. */
+	private String title;
+	private Composite partsComposite;
+	private String itemSubName;
+
+	/**
+	 * Instantiates a new combo dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param title the title
+	 * @param values the values
+	 * @param defaultValue the default value
+	 */
+	public MultipleValueTreeDialog(Shell parentShell, String title, LinkedHashMap<String, String> values, 
+			ArrayList<LinkedHashMap<String, String>> subvalues, String itemSubName) {
+		super(parentShell);
+		this.parentShell = parentShell;
+		this.setShellStyle(this.getShellStyle()|SWT.RESIZE);
+		this.values = values;
+		this.subvalues = subvalues;
+		this.itemSubName = itemSubName;
+		this.title = title;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(title);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(final Composite p) {
+		//System.out.println(p.getLayout());
+
+		for (String name : values.keySet()) {
+			Label label = new Label(p, SWT.NONE);
+			label.setText(name+": "); //$NON-NLS-1$
+			label.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false,	false));
+			Text valueText = new Text(p, SWT.BORDER); 
+			valueText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 4, 1)); // 5 ?
+			valueText.setText(values.get(name));
+			widgets.put(name, valueText);
+		}
+
+		scrollComposite = new ScrolledComposite(p, SWT.V_SCROLL | SWT.BORDER);
+		scrollComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+		partsComposite = new Composite(scrollComposite, SWT.BORDER);
+		partsComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,	true));
+		partsComposite.setLayout(new GridLayout(2, true));
+		scrollComposite.setContent(partsComposite);
+		scrollComposite.setExpandVertical(true);
+		scrollComposite.setExpandHorizontal(true);
+		//		scrollComposite.addControlListener(new ControlAdapter() {
+		//			public void controlResized(ControlEvent e) {
+		//				Rectangle r = scrollComposite.getClientArea();
+		//				scrollComposite.setMinSize(partsComposite.computeSize(
+		//						r.width, SWT.DEFAULT));
+		//			}
+		//		});
+
+		Button addButton = new Button(p, SWT.PUSH);
+		addButton.setText(Messages.MultipleValueTreeDialog_0+itemSubName);
+		addButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				LinkedHashMap<String, String> another = subvalues.get(0);
+				LinkedHashMap<String, String> subs = new LinkedHashMap<String, String>();
+				subvalues.add(subs);
+				for(String key : another.keySet()) {
+					subs.put(key, key+subvalues.size());
+				}
+				addSubValues(partsComposite, subs);
+				System.out.println(subvalues);	
+				scrollComposite.layout(true);
+				partsComposite.getShell().layout(true);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+		});
+		for(String key : subvalues.get(0).keySet()) {
+			Label l = new Label(partsComposite, SWT.NONE);
+			l.setText(key);
+			l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false,	false));
+		}
+		for(LinkedHashMap<String, String> subs : subvalues) {
+			addSubValues(partsComposite, subs);
+		}
+
+		return p;
+	}
+
+	public void addSubValues(Composite parent, LinkedHashMap<String, String> subs) {
+		HashMap<String, Text> texts = new HashMap<String, Text>();
+		subwidgets.add(texts);
+
+		for(String subname : subs.keySet()) {
+			//			Label l = new Label(parent, SWT.NONE);
+			//			l.setText("\t"+subname+": ");
+			//			l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false,	false));
+
+			Text subValueText = new Text(parent, SWT.BORDER); 
+			subValueText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 1, 1)); 
+			subValueText.setText(subs.get(subname));
+			texts.put(subname, subValueText);
+		}
+
+		Rectangle r = parent.getClientArea();
+		parent.setSize(parent.computeSize(r.width, SWT.DEFAULT));
+
+		r = parent.getClientArea();
+		scrollComposite.setMinSize(parent.computeSize(r.width,
+				SWT.DEFAULT));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		for (String name : values.keySet()) {
+			values.put(name, widgets.get(name).getText());
+		}
+		for(int i = 0 ; i < subvalues.size() ; i++) {
+			HashMap<String, Text> texts = subwidgets.get(i);
+			LinkedHashMap<String, String> subs = subvalues.get(i);
+			for (String name : texts.keySet()) {
+				subs.put(name, texts.get(name).getText());
+			}
+		}
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public HashMap<String, String> getValues() {
+		return values;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/MultipleValueTreeDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ObjectSelectionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ObjectSelectionDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ObjectSelectionDialog.java	(revision 122)
@@ -0,0 +1,371 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.List;
+import java.util.regex.Pattern;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * allow to choose between a set of values and choose the order of the selection @
+ * author mdecorde.
+ */
+public class ObjectSelectionDialog extends Dialog {
+	
+	/** The main area. */
+	protected Composite mainArea;
+	
+	/** The availables. */
+	final protected List<Object> availables;
+	
+	/** The selecteds. */
+	final protected List<Object> selecteds;
+	
+	/** The max. */
+	protected int max = 2;
+
+	/** The availables view. */
+	protected org.eclipse.swt.widgets.List availablesView;
+	
+	/** The selecteds view. */
+	protected org.eclipse.swt.widgets.List selectedsView;
+	
+	/** The regex available. */
+	protected Text regexAvailable;
+	
+	/** The regex selected. */
+	protected Text regexSelected;
+
+	/**
+	 * Instantiates a new object selection dialog.
+	 *
+	 * @param shell the shell
+	 * @param available the available
+	 * @param selected the selected
+	 * @param max the max
+	 */
+	public ObjectSelectionDialog(Shell shell, List<Object> available,
+			List<Object> selected, int max) {
+		super(shell);
+
+		this.availables = available;
+		this.selecteds = selected;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		this.max = max;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell
+				.setText(Messages.ObjectSelectionDialog_0);
+		newShell.setMinimumSize(300, 260);
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		// parent.setLayout(new FormLayout());
+		mainArea = new Composite(parent, SWT.NONE);
+		mainArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+		// 4 columns
+		GridLayout layout = new GridLayout(4, false);
+		mainArea.setLayout(layout);
+
+		regexAvailable = new Text(mainArea, SWT.BORDER);
+		regexAvailable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
+				false));
+
+		Button searchAvailableBtn = new Button(mainArea, SWT.PUSH);
+		searchAvailableBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL,
+				false, false));
+		searchAvailableBtn.setImage(IImageKeys
+				.getImage(IImageKeys.ACTION_SEARCH));
+		searchAvailableBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				searchAvailable();
+				availablesView.showSelection();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		regexSelected = new Text(mainArea, SWT.BORDER);
+		regexSelected.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,
+				false));
+		Button searchSelectedBtn = new Button(mainArea, SWT.PUSH);
+		searchSelectedBtn.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false,
+				false));
+		searchSelectedBtn.setImage(IImageKeys
+				.getImage(IImageKeys.ACTION_SEARCH));
+		searchSelectedBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				searchSelected();
+				selectedsView.showSelection();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		availablesView = new org.eclipse.swt.widgets.List(mainArea, SWT.BORDER
+				| SWT.MULTI | SWT.V_SCROLL);
+		GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		availablesView.setLayoutData(gridData);
+
+		Composite selectionButtons = new Composite(mainArea, SWT.NONE);
+		selectionButtons.setLayout(new GridLayout(1, false));
+		Button select = new Button(selectionButtons, SWT.ARROW | SWT.RIGHT);
+		Button unselect = new Button(selectionButtons, SWT.ARROW | SWT.LEFT);
+
+		selectedsView = new org.eclipse.swt.widgets.List(mainArea, SWT.BORDER
+				| SWT.MULTI | SWT.V_SCROLL);
+		gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
+		selectedsView.setLayoutData(gridData);
+
+		Composite orderButtons = new Composite(mainArea, SWT.NONE);
+		orderButtons.setLayout(new GridLayout(1, false));
+		Button up = new Button(orderButtons, SWT.ARROW | SWT.UP);
+		Button down = new Button(orderButtons, SWT.ARROW | SWT.DOWN);
+
+		select.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (max == 1) // process the first selected
+				{
+					int index = availablesView.getSelectionIndex();
+					selecteds.add(availables.get(index));
+					availables.remove(index);
+
+					availables.add(selecteds.get(0));
+					selecteds.remove(0);
+					return;
+				}
+				int[] selectionindices = availablesView.getSelectionIndices();
+				if (max > 0) {
+					if (selecteds.size() + selectionindices.length >= max)
+						return;
+				}
+
+				for (int index : selectionindices) {
+					selecteds.add(availables.get(index));
+				}
+				for (int index = selectionindices.length - 1; index >= 0; index--) {
+					availables.remove(selectionindices[index]);
+				}
+				reload();
+				// availablesView.setSelection(index);
+			}
+		});
+
+		unselect.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				if (max == 1 && selecteds.size() == 1) {
+					int index = selectedsView.getSelectionIndex();
+					availables.add(selecteds.get(index));
+					selecteds.remove(index);
+					return;
+				}
+
+				int[] selectionindices = selectedsView.getSelectionIndices();
+				for (int index : selectionindices) {
+					availables.add(selecteds.get(index));
+				}
+				for (int index = selectionindices.length - 1; index >= 0; index--) {
+					selecteds.remove(selectionindices[index]);
+				}
+
+				reload();
+			}
+		});
+
+		up.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedsView.getSelectionIndex();
+				if (index > 0) {
+					Object selectedP = selecteds.get(index);
+					Object upperP = selecteds.get(index - 1);
+
+					selecteds.set(index, upperP);
+					selecteds.set(index - 1, selectedP);
+
+					reload();
+					selectedsView.setSelection(index - 1);
+				}
+			}
+		});
+
+		down.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				int index = selectedsView.getSelectionIndex();
+				if (index < selecteds.size() - 1) {
+					Object selectedP = selecteds.get(index);
+					Object bellowP = selecteds.get(index + 1);
+
+					selecteds.set(index, bellowP);
+					selecteds.set(index + 1, selectedP);
+
+					reload();
+					selectedsView.setSelection(index + 1);
+				}
+			}
+		});
+
+		availablesView.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				int index = availablesView.getSelectionIndex();
+
+				selecteds.add(availables.get(index));
+				availables.remove(index);
+
+				reload();
+				availablesView.setSelection(index);
+			}
+		});
+
+		selectedsView.addMouseListener(new MouseAdapter() {
+			@Override
+			public void mouseDoubleClick(MouseEvent e) {
+				if (selecteds.size() > 1) {
+					int index = selectedsView.getSelectionIndex();
+
+					availables.add(selecteds.get(index));
+					selecteds.remove(index);
+
+					reload();
+					selectedsView.setSelection(index);
+				}
+			}
+		});
+
+		reload();
+		return mainArea;
+	}
+
+	/**
+	 * Reload.
+	 */
+	public void reload() {
+		availablesView.removeAll();
+		for (Object obj : availables) {
+			availablesView.add(obj.toString());
+		}
+		selectedsView.removeAll();
+		for (Object obj : selecteds) {
+			selectedsView.add(obj.toString());
+		}
+
+		availablesView.getParent().layout();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		if (selecteds.size() != 0)
+			super.okPressed();
+	}
+
+	/**
+	 * Search available.
+	 */
+	protected void searchAvailable() {
+		try {
+			int count = 0;
+			availablesView.deselectAll();
+			String regex = regexAvailable.getText();
+			
+			Pattern p = Pattern.compile(regex);
+			for (int i = 0; i < availablesView.getItemCount(); i++)
+				if (availablesView.getItem(i).toString().matches(regex)) {
+					availablesView.select(i);
+					count++;
+				}
+			System.out.println(NLS.bind(Messages.ObjectSelectionDialog_3, count));
+		} catch (Exception ex) {
+			System.out.println(NLS.bind(Messages.ObjectSelectionDialog_5, ex.getMessage()));
+		}
+	}
+
+	/**
+	 * Search selected.
+	 */
+	protected void searchSelected() {
+		try {
+			int count = 0;
+			selectedsView.deselectAll();
+			String regex = regexSelected.getText();
+			if (regex.length() > 0)
+				regex = ".*" + regex + ".*"; //$NON-NLS-1$ //$NON-NLS-2$
+			Pattern p = Pattern.compile(regex);
+			for (int i = 0; i < selectedsView.getItemCount(); i++)
+				if (selectedsView.getItem(i).toString().matches(regex)) {
+					selectedsView.select(i);
+					count++;
+				}
+			System.out.println(NLS.bind(Messages.ObjectSelectionDialog_3, count));
+		} catch (Exception ex) {
+			System.out.println(NLS.bind(Messages.ObjectSelectionDialog_5, ex.getMessage()));
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ObjectSelectionDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/QueryAssistDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/QueryAssistDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/QueryAssistDialog.java	(revision 122)
@@ -0,0 +1,433 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * build a query with the help of simple questions @ author mdecorde.
+ */
+public class QueryAssistDialog extends Dialog {
+	
+	/** The self. */
+	QueryAssistDialog self;
+	
+	/** The parent. */
+	Composite parent;
+	
+	/** The main panel. */
+	Composite mainPanel;
+	
+	/** The parent shell. */
+	Shell parentShell;
+
+	/** The query. */
+	String query;
+	
+	/** The nbwords. */
+	int nbwords = 0;
+	
+	/** The wordfields. */
+	List<WordField> wordfields = new ArrayList<WordField>();
+	
+	/** The linkfields. */
+	List<LinkField> linkfields = new ArrayList<LinkField>();
+
+	/** The properties. */
+	List<Property> properties;
+
+	/** The cherche label. */
+	Label chercheLabel;
+	
+	/** The wordcontainer. */
+	Composite wordcontainer;
+
+	private Corpus corpus;
+
+	private Combo structsCombo;
+
+	private Button withinButton = null;
+
+	private ScrolledComposite scrollComposite;
+
+	/**
+	 * Instantiates a new query assist dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param corpus the corpus
+	 */
+	public QueryAssistDialog(Shell parentShell, Corpus corpus) {
+		super(parentShell);
+		this.parentShell = parentShell;
+		this.setShellStyle(this.getShellStyle() | SWT.RESIZE);
+		this.corpus = corpus;
+		try {
+			properties = corpus.getOrderedProperties();
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(Messages.QueryAssistDialog_0);
+		newShell.setMinimumSize(300, 300);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite p) {
+		try {
+			this.self = this;
+			this.parent = p;
+			// System.out.println(parent.getLayout());
+			GridLayout mainlayout = new GridLayout(1, false);
+			mainPanel = new Composite(parent, SWT.NONE);
+			mainPanel.setLayout(mainlayout);
+			GridData gridData = new GridData(GridData.FILL, GridData.FILL, true, true);
+			mainPanel.setLayoutData(gridData);
+
+			// directory
+			chercheLabel = new Label(mainPanel, SWT.NONE);
+			chercheLabel.setAlignment(SWT.CENTER);
+			chercheLabel.setLayoutData(new GridData(GridData.BEGINNING, GridData.FILL, true, false));
+			chercheLabel.setText(Messages.QueryAssistDialog_2);
+			
+			scrollComposite = new ScrolledComposite(mainPanel, SWT.V_SCROLL);
+			scrollComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+
+			wordcontainer = new Composite(scrollComposite, SWT.NONE);
+			wordcontainer.setLayout(new GridLayout(1, true));
+
+			scrollComposite.setContent(wordcontainer);
+			scrollComposite.setExpandVertical(true);
+			scrollComposite.setExpandHorizontal(true);
+			scrollComposite.addControlListener(new ControlAdapter() {
+				@Override
+				public void controlResized(ControlEvent e) {
+					Rectangle r = scrollComposite.getClientArea();
+					scrollComposite.setMinSize(wordcontainer.computeSize(r.width, SWT.DEFAULT));
+				}
+			});
+
+			addWordField();
+
+//			Composite withinComposite = new Composite(mainPanel, SWT.NONE);
+//			withinComposite.setLayout(new GridLayout(2, false));
+//			withinButton = new Button(withinComposite, SWT.CHECK);
+//			withinButton.setText("within structure: ");
+//			withinButton.addSelectionListener(new SelectionListener() {
+//				@Override
+//				public void widgetSelected(SelectionEvent e) {
+//					structsCombo.setEnabled(withinButton.getSelection());
+//				}
+//				
+//				@Override
+//				public void widgetDefaultSelected(SelectionEvent e) { }
+//			});
+//			structsCombo = new Combo(withinComposite, SWT.READ_ONLY);
+//			structsCombo.setEnabled(false);
+//			int iText = 0;
+//			List<StructuralUnit> sus = corpus.getOrderedStructuralUnits();
+//			for (int i = 0 ; i < sus.size() ; i++) {
+//				StructuralUnit su = sus.get(i);
+//				if (su.getName().equals("txmcorpus")) continue;
+//				structsCombo.add(su.getName());
+//				if (su.getName().equals("text")) iText = i;
+//			}
+//			if (structsCombo.getItemCount() > 0) structsCombo.select(iText);
+			
+			Button addwordButton = new Button(mainPanel, SWT.PUSH);
+			addwordButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+			addwordButton.setText(Messages.QueryAssistDialog_1);
+			addwordButton.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (nbwords > 0) addLinkField();
+					addWordField();
+					parent.layout(true);
+					mainPanel.layout(true);
+					wordcontainer.layout(true);
+					scrollComposite.layout(true);
+					mainPanel.update();
+					wordcontainer.update();
+					Rectangle r = scrollComposite.getClientArea();
+					scrollComposite.setMinSize(wordcontainer.computeSize(r.width, SWT.DEFAULT));
+					updateShell();
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Adds the link field.
+	 */
+	protected void addLinkField() {
+		linkfields.add(new LinkField(wordcontainer, SWT.NONE));
+	}
+
+	/**
+	 * Adds the word field.
+	 */
+	private void addWordField() {
+		nbwords++;
+		WordField wf = new WordField(wordcontainer, SWT.NONE, nbwords);
+		wordfields.add(wf);
+
+		wordcontainer.update();
+		mainPanel.update();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		this.query = ""; //$NON-NLS-1$
+		this.query = wordfields.get(0).getQuery();
+		for (int i = 1; i < wordfields.size(); i++) {
+			LinkField lf = linkfields.get(i - 1);
+			WordField wf = wordfields.get(i);
+			query += lf.getQuery();
+			query += wf.getQuery();
+			query += " "; //$NON-NLS-1$
+		}
+		
+		if (withinButton != null && withinButton.getSelection() && structsCombo.getText().length() > 0) {
+			query += " within "+structsCombo.getText(); //$NON-NLS-1$
+		}
+
+		super.okPressed();
+	}
+
+	/**
+	 * Update shell.
+	 */
+	public void updateShell() {
+		parentShell.layout(true);
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @return the query
+	 */
+	public String getQuery() {
+		return this.query;
+	}
+
+	/**
+	 * The Class WordField.
+	 */
+	public class WordField extends Composite {
+		
+		/** The prop combo. */
+		Combo propCombo;
+		
+		/** The test combo. */
+		Combo testCombo;
+		
+		/** The value t. */
+		Text valueT;
+		
+		Button removeButton;
+
+		/**
+		 * Instantiates a new word field.
+		 *
+		 * @param parent the parent
+		 * @param style the style
+		 * @param no the no
+		 */
+		public WordField(Composite parent, int style, int no) {
+			super(parent, style);
+
+			this.setLayout(new GridLayout(5, false));
+
+			Label titleL = new Label(this, SWT.NONE);
+			titleL.setText(NLS.bind(Messages.QueryAssistDialog_8, no));
+			GridData datalayout = new GridData(GridData.FILL, GridData.CENTER,
+					true, false);
+			titleL.setLayoutData(datalayout);
+
+			propCombo = new Combo(this, SWT.READ_ONLY | SWT.SINGLE);
+			if (properties != null) {
+				for (Property p : properties)
+					propCombo.add(p.getName());
+				propCombo.select(0);
+			}
+
+			testCombo = new Combo(this, SWT.READ_ONLY | SWT.SINGLE);
+			testCombo.add(Messages.QueryAssistDialog_10);
+			testCombo.add(Messages.QueryAssistDialog_11);
+			testCombo.add(Messages.QueryAssistDialog_12);
+			testCombo.add(Messages.QueryAssistDialog_13);
+			testCombo.select(0);
+
+			valueT = new Text(this, SWT.SINGLE | SWT.BORDER);
+			GridData gdata = new GridData(GridData.FILL, GridData.FILL, false, false);
+			gdata.widthHint = 150;
+			gdata.minimumWidth = 150;
+			valueT.setLayoutData(gdata);
+//			removeButton = new Button(this, SWT.PUSH);
+//			removeButton.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
+//			removeButton.addSelectionListener(new SelectionListener() {
+//				
+//				@Override
+//				public void widgetSelected(SelectionEvent e) {
+//					
+//					int idx = QueryAssistDialog.this.wordfields.indexOf(WordField.this);
+//					System.out.println("field: "+idx);
+//					System.out.println(QueryAssistDialog.this.linkfields);
+//					if (QueryAssistDialog.this.linkfields.size() > 0) {
+//						if (idx > 0) idx--;
+//						LinkField field = QueryAssistDialog.this.linkfields.remove(idx);
+//						field.dispose();
+//					}
+//					QueryAssistDialog.this.wordfields.remove(WordField.this);
+//					QueryAssistDialog.this.nbwords--;
+//					WordField.this.dispose();
+//					
+//					wordcontainer.update();
+//					mainPanel.update();
+//					
+//
+//					QueryAssistDialog.this.parent.layout(true);
+//					QueryAssistDialog.this.mainPanel.layout(true);
+//					QueryAssistDialog.this.wordcontainer.layout(true);
+//					QueryAssistDialog.this.scrollComposite.layout(true);
+//				}
+//				
+//				@Override
+//				public void widgetDefaultSelected(SelectionEvent e) { }
+//			});
+		}
+
+		/**
+		 * Gets the query.
+		 *
+		 * @return the query
+		 */
+		public String getQuery() {
+			String query = "["; //$NON-NLS-1$
+			query += propCombo.getItem(propCombo.getSelectionIndex());
+			if (testCombo.getSelectionIndex() == 0)// equals
+				query += "=\"" + valueT.getText().replace("\"", "\\\"") + "\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			else if (testCombo.getSelectionIndex() == 1)// starts with
+				query += "=\"" + valueT.getText().replace("\"", "\\\"") + ".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			else if (testCombo.getSelectionIndex() == 2)// ends with
+				query += "=\".*" + valueT.getText().replace("\"", "\\\"") + "\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			else if (testCombo.getSelectionIndex() == 3)// contains
+				query += "=\".*" + valueT.getText().replace("\"", "\\\"") + ".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+			return query + "]"; //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * The Class LinkField.
+	 */
+	public class LinkField extends Composite {
+		
+		/** The link combo. */
+		Combo linkCombo;
+
+		/**
+		 * Instantiates a new link field.
+		 *
+		 * @param parent the parent
+		 * @param style the style
+		 */
+		public LinkField(Composite parent, int style) {
+			super(parent, style);
+			this.setLayout(new RowLayout());
+
+			linkCombo = new Combo(this, SWT.READ_ONLY | SWT.SINGLE);
+			linkCombo.add(Messages.QueryAssistDialog_32);
+			linkCombo.add(Messages.QueryAssistDialog_33);
+			linkCombo.add(Messages.QueryAssistDialog_34);
+
+			linkCombo.select(0);
+		}
+
+		/**
+		 * Gets the query.
+		 *
+		 * @return the query
+		 */
+		public String getQuery() {
+			if (linkCombo.getSelectionIndex() == 0) // followed
+				return ""; //$NON-NLS-1$
+			else if (linkCombo.getSelectionIndex() == 1)// at least 0 word
+				return "[]{0,50}"; //$NON-NLS-1$
+			else if (linkCombo.getSelectionIndex() == 2)// at least 1 word
+				return "[]{1, 50}"; //$NON-NLS-1$
+			return ""; //$NON-NLS-1$
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/QueryAssistDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ConfirmDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ConfirmDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ConfirmDialog.java	(revision 122)
@@ -0,0 +1,57 @@
+package org.txm.rcpapplication.swt.dialog;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+public class ConfirmDialog extends MessageDialog {
+
+	public final static String[] dialogButtonLabels = { IDialogConstants.OK_LABEL,
+		IDialogConstants.CANCEL_LABEL };
+	public final static String TRUE = "true";
+	public final static String ROOT = "org.txm.confirmdialog.history.";
+
+	protected String id;
+	public ConfirmDialog(Shell parentShell, String id, String dialogTitle, String dialogMessage) {
+		super(parentShell, dialogTitle, null, dialogMessage,
+				MessageDialog.QUESTION_WITH_CANCEL, dialogButtonLabels, 1);
+		this.id = id;
+	}
+
+	protected Button checkDefault;
+	@Override
+	protected Control createDialogArea(Composite parent) {
+		Composite container = (Composite) super.createDialogArea(parent);
+		checkDefault = new Button(container, SWT.CHECK);
+		checkDefault.setText("Don't ask again");
+		boolean b = TRUE.equals(System.getProperty(ROOT+id));
+		checkDefault.setSelection(b);
+
+		checkDefault.addSelectionListener(new SelectionListener() {
+
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				boolean b = checkDefault.getSelection();
+				System.setProperty(ROOT+id, Boolean.toString(b));
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		return container;
+	}
+
+	@Override
+	public int open() {
+		boolean b = TRUE.equals(System.getProperty(ROOT+id));
+		if (b) return 0; // ok
+		
+		return super.open();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ConfirmDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/LastOpened.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/LastOpened.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/LastOpened.java	(revision 122)
@@ -0,0 +1,33 @@
+package org.txm.rcpapplication.swt.dialog;
+
+import java.io.File;
+
+import org.txm.rcpapplication.TxmPreferences;
+
+public class LastOpened {
+	
+	public static final String FOLDER = "FOLDER"; //$NON-NLS-1$
+	public static final String FILE = "FILE"; //$NON-NLS-1$
+	
+	public static void set(String ID, String folder) {
+		TxmPreferences.set(ID+FOLDER, folder);
+	}
+	
+	public static void set(String ID, String folder, String file) {
+		TxmPreferences.set(ID+FOLDER, folder);
+		TxmPreferences.set(ID+FILE, file);
+	}
+	
+	public static void set(String ID, File outfile) {
+		TxmPreferences.set(ID+FOLDER, outfile.getParent());
+		TxmPreferences.set(ID+FILE, outfile.getName());
+	}
+	
+	public static String getFolder(String ID) {
+		return TxmPreferences.get(ID+FOLDER);
+	}
+	
+	public static String getFile(String ID) {
+		return TxmPreferences.get(ID+FILE);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/LastOpened.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ComboDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ComboDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ComboDialog.java	(revision 122)
@@ -0,0 +1,181 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.dialog;
+
+import java.util.List;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+
+// TODO: Auto-generated Javadoc
+/**
+ * build a query with the help of simple questions @ author mdecorde.
+ */
+public class ComboDialog extends Dialog {
+	
+	/** The self. */
+	ComboDialog self;
+	
+	/** The main panel. */
+	Composite mainPanel;
+	
+	/** The parent shell. */
+	Shell parentShell;
+
+	/** The values. */
+	List<String> values;
+	
+	/** The combo. */
+	private Combo combo;
+	
+	/** The selected index. */
+	private int selectedIndex = -1;
+	
+	/** The selected value. */
+	private String selectedValue = ""; //$NON-NLS-1$
+	
+	/** The default value. */
+	private String defaultValue;
+	
+	/** The title. */
+	private String title;
+
+	/**
+	 * Instantiates a new combo dialog.
+	 *
+	 * @param parentShell the parent shell
+	 * @param title the title
+	 * @param values the values
+	 * @param defaultValue the default value
+	 */
+	public ComboDialog(Shell parentShell, String title, List<String> values,
+			String defaultValue) {
+		super(parentShell);
+		this.parentShell = parentShell;
+		this.setShellStyle(this.getShellStyle());
+		this.values = values;
+		this.defaultValue = defaultValue;
+		this.title = title;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText(title);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite p) {
+		//System.out.println(p.getLayout());
+		combo = new Combo(p, SWT.READ_ONLY | SWT.SINGLE);
+		combo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				true, 5, 1));
+		combo.setItems(values.toArray(new String[] {}));
+		// combo.setLayoutData(new GridData(GridData.FILL,GridData.FILL, true,
+		// true));
+		if (values.size() > 0)
+			combo.select(0);
+		if (defaultValue != null)
+			selectValue(defaultValue);
+
+		return p;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		selectedIndex = combo.getSelectionIndex();
+		selectedValue = values.get(selectedIndex);
+		super.okPressed();
+	}
+
+	/**
+	 * Gets the values.
+	 *
+	 * @return the values
+	 */
+	public List<String> getValues() {
+		return values;
+	}
+
+	/**
+	 * Sets the values.
+	 *
+	 * @param values the new values
+	 */
+	public void setValues(List<String> values) {
+		this.values = values;
+		combo.setItems(values.toArray(new String[] {}));
+		if (values.size() > 0)
+			combo.select(0);
+	}
+
+	/**
+	 * Gets the selected index.
+	 *
+	 * @return the selected index
+	 */
+	public int getSelectedIndex() {
+		return selectedIndex;
+	}
+
+	/**
+	 * Gets the selected value.
+	 *
+	 * @return the selected value
+	 */
+	public String getSelectedValue() {
+		return selectedValue;
+	}
+
+	/**
+	 * Select value.
+	 *
+	 * @param string the string
+	 */
+	public void selectValue(String string) {
+		for (int i = 0; i < values.size(); i++)
+			if (values.get(i).equals(string)) {
+				combo.select(i);
+				break;
+			}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/ComboDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/UsernamePasswordDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/UsernamePasswordDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/UsernamePasswordDialog.java	(revision 122)
@@ -0,0 +1,108 @@
+package org.txm.rcpapplication.swt.dialog;
+/*
+SWT/JFace in Action
+GUI Design with Eclipse 3.0
+Matthew Scarpino, Stephen Holder, Stanford Ng, and Laurent Mihalkovic
+
+ISBN: 1932394273
+
+Publisher: Manning
+ */
+
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+public class UsernamePasswordDialog extends Dialog {
+	private static final int RESET_ID = IDialogConstants.NO_TO_ALL_ID + 1;
+
+	private Text usernameField;
+	private Text passwordField;
+	boolean must[];
+	String user  = null, password = null;
+	String kr_name;
+	
+	public UsernamePasswordDialog(Shell parentShell, boolean must[], String kr_name) {
+		super(parentShell);
+		this.must = must;
+		this.kr_name = kr_name;
+	}
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		newShell.setText("Login to "+kr_name);
+	}
+
+	protected Control createDialogArea(Composite parent) {
+		Composite comp = (Composite) super.createDialogArea(parent);
+
+		GridLayout layout = (GridLayout) comp.getLayout();
+		layout.numColumns = 2;
+
+		if (must[0]) {
+			Label usernameLabel = new Label(comp, SWT.RIGHT);
+			usernameLabel.setText("Username: ");
+
+			usernameField = new Text(comp, SWT.SINGLE);
+			GridData data = new GridData(GridData.FILL_HORIZONTAL);
+			usernameField.setLayoutData(data);
+		}
+		if (must[1]) {
+			Label passwordLabel = new Label(comp, SWT.RIGHT);
+			passwordLabel.setText("Password: ");
+
+			passwordField = new Text(comp, SWT.SINGLE | SWT.PASSWORD);
+			GridData data = new GridData(GridData.FILL_HORIZONTAL);
+			passwordField.setLayoutData(data);
+		}
+		return comp;
+	}
+
+	protected void createButtonsForButtonBar(Composite parent) {
+		super.createButtonsForButtonBar(parent);
+		createButton(parent, RESET_ID, "Reset All", false);
+	}
+
+	protected void buttonPressed(int buttonId) {
+		if (buttonId == RESET_ID) {
+			if (must[0]) {
+				usernameField.setText("");
+			}
+			if (must[1]) {
+				passwordField.setText("");
+			}
+		} else {
+			if (must[0]) {
+				user = usernameField.getText();
+			} else {
+				user = null;
+			}
+			if (must[1]) {
+				password= passwordField.getText();
+			} else {
+				password = null;
+			}
+			super.buttonPressed(buttonId);
+		}
+	}
+
+	public String getUser() {
+		return user;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/dialog/UsernamePasswordDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSubcorpusPanel.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSubcorpusPanel.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSubcorpusPanel.java	(revision 122)
@@ -0,0 +1,470 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ComplexSubcorpusPanel.
+ */
+public class ComplexSubcorpusPanel extends Composite{
+
+	/** The self. */
+	ComplexSubcorpusPanel self;
+	
+	/** The struct combo. */
+	Combo structCombo;
+
+	/** The corpus. */
+	Corpus corpus;
+	
+	/** The query. */
+	String query;
+	
+	/** The btn area. */
+	Composite parent, partArea, firstArea, dispoArea, btnArea;
+
+	/** The structuralunits. */
+	List<StructuralUnit> structuralunits; 
+	
+	/** The structural units properties. */
+	HashMap<StructuralUnit, List<StructuralUnitProperty>> structuralUnitsProperties = new HashMap<StructuralUnit, List<StructuralUnitProperty>>();
+	
+	/** The query items. */
+	ArrayList<QueryItem> queryItems = new ArrayList<QueryItem>();
+	
+	/** The queries panel. */
+	Composite queriesPanel;
+	
+	/** The query field. */
+	Text queryField;
+	
+	/** The and btn. */
+	Button andBtn;
+
+	/**
+	 * Instantiates a new complex subcorpus panel.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 * @param corpus the corpus
+	 */
+	public ComplexSubcorpusPanel(Composite parent, int style, Corpus corpus) {
+		super(parent, style);
+		self = this;
+		this.setLayout(new GridLayout(2, false));
+		this.corpus = corpus;
+
+		try {
+			this.structuralunits = new ArrayList<StructuralUnit>(corpus.getOrderedStructuralUnits());
+			for (int i = 0 ; i < this.structuralunits.size() ; i++) {
+				if (this.structuralunits.get(i).getName().equals("txmcorpus")) { //$NON-NLS-1$
+					this.structuralunits.remove(i);
+					i--;
+				}
+			}
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		for (StructuralUnit su : this.structuralunits) {
+			List<StructuralUnitProperty> properties = new ArrayList<StructuralUnitProperty>(su.getOrderedProperties());
+			if (su.getName().equals("text")) { //$NON-NLS-1$
+				for (int i = 0 ; i < properties.size() ; i++) {
+					if (properties.get(i).getName().equals("base") || //$NON-NLS-1$
+						properties.get(i).getName().equals("project")) { //$NON-NLS-1$
+						properties.remove(i);
+						i--;
+					}
+				}
+			}
+			structuralUnitsProperties.put(su, properties);
+		}
+
+		Group andorGroup = new Group(this, SWT.SHADOW_ETCHED_IN);
+		andorGroup.setText(Messages.ComplexSubcorpusPanel_0);
+		andorGroup.setLayout(new GridLayout(2, false));
+		andorGroup.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1));
+
+		andBtn = new Button(andorGroup, SWT.RADIO);
+		andBtn.setText(Messages.ComplexSubcorpusPanel_1);
+		andBtn.setSelection(true);
+
+		Button orBtn = new Button(andorGroup, SWT.RADIO);
+		orBtn.setText(Messages.ComplexSubcorpusPanel_2);
+		
+		//structure choice
+		Label l = new Label(this, SWT.None);
+		l.setText(Messages.ParaBrowserEditor_5);
+		structCombo = new Combo(this, SWT.READ_ONLY);
+		structCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				for(QueryItem item : queryItems)
+					item.refreshProps();
+			}
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {}
+		});
+
+		int i_text = 0, i = 0;
+		for (StructuralUnit su : structuralunits) {
+			structCombo.add(su.getName());
+			if (su.getName().equals("text")) i_text = i; //$NON-NLS-1$
+			i++;
+		}
+		
+		if (structuralunits.size() > 0)
+			structCombo.select(i_text);
+
+		queriesPanel = new Composite(this, SWT.NONE);
+		queriesPanel.setLayout(new GridLayout(1, false));
+		queriesPanel.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, 2, 1));
+		QueryItem item = new QueryItem(queriesPanel, SWT.NONE);
+		item.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+		queryItems.add(item);
+		// choix OU / ET
+		// 3 combos : struc, prop, value
+		// Add/Rmv contrainte
+		// affichage requete
+		l = new Label(this, SWT.NONE);
+		l.setText(Messages.ComplexSubcorpusPanel_4);
+		queryField = new Text(this, SWT.BORDER);
+		queryField.setLayoutData(new GridData(GridData.FILL,GridData.FILL,true, false));
+		Button refreshBtn = new Button(this, SWT.PUSH);
+		refreshBtn.setText(Messages.ComplexSubcorpusPanel_5);
+		refreshBtn.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateQueryField();
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				
+			}
+		});
+		
+		// first init
+		updateQueryField();
+	}
+	
+	public void updateQueryField() {
+		queryField.setText(getQueryString());
+		queryField.update();
+	}
+
+	/**
+	 * Update display.
+	 */
+	public void updateDisplay() {
+		firstArea.layout();
+		dispoArea.layout();
+		partArea.layout();
+		btnArea.layout();
+		parent.layout();
+		parent.getParent().layout();
+	}
+	
+	/**
+	 * Gets the query string.
+	 *
+	 * @return the query string
+	 */
+	public String getQueryString()
+	{
+		String structName = this.structCombo.getText();
+		
+		String query = "/region["+structName+",a]::"; //$NON-NLS-1$ //$NON-NLS-2$
+		int nbitem = 0;
+		for (QueryItem item : queryItems) {
+			if (nbitem != 0)
+				if (andBtn.getSelection())
+					query += " &"; //$NON-NLS-1$
+				else
+					query += " |"; //$NON-NLS-1$
+			String prop = item.selectedSup.getFullName();
+			ISelection sel = item.valueCombo.getSelection();
+			String value = ""; //$NON-NLS-1$
+			if (sel instanceof IStructuredSelection) {
+				value = ((IStructuredSelection)sel).getFirstElement().toString();
+			}
+			int equals = item.testCombo.getSelectionIndex();
+			
+			if (equals == 0) // is
+				query += " a."+prop+"=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 1) // is not
+				query += " a."+prop+"!=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 2) // contains
+				query += " a."+prop+"=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else // does not contain
+				query += " a."+prop+"!=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			
+			nbitem++;
+		}
+		
+		/*
+		String query = "["; //$NON-NLS-1$ //$NON-NLS-2$
+		int nbitem = 0;
+		
+		for (QueryItem item : queryItems) {
+			if (nbitem != 0)
+				if (andBtn.getSelection())
+					query += " &"; //$NON-NLS-1$
+				else
+					query += " |"; //$NON-NLS-1$
+			String prop = item.selectedSup.getFullName();
+			ISelection sel = item.valueCombo.getSelection();
+			String value = ""; //$NON-NLS-1$
+			if (sel instanceof IStructuredSelection) {
+				value = ((IStructuredSelection)sel).getFirstElement().toString();
+			}
+			int equals = item.testCombo.getSelectionIndex();
+			
+			if (equals == 0) // is
+				query += " a."+prop+"=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 1) // is not
+				query += " a."+prop+"!=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 2) // contains
+				query += " a."+prop+"=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else // does not contain
+				query += " a."+prop+"!=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			
+			nbitem++;
+		}
+		*/
+		
+		/** // 
+		for (QueryItem item : queryItems) {
+			if (nbitem != 0) { // adding a constraint
+				if (andBtn.getSelection())
+					query += " &"; //$NON-NLS-1$
+				else
+					query += " |"; //$NON-NLS-1$
+			}
+			String prop = item.selectedSup.getFullName();
+			ISelection sel = item.valueCombo.getSelection();
+			String value = ""; //$NON-NLS-1$
+			if (sel instanceof IStructuredSelection) {
+				value = ((IStructuredSelection)sel).getFirstElement().toString();
+			}
+			int equals = item.testCombo.getSelectionIndex();
+			
+			if (equals == 0) // is
+				query += " _."+prop+"=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 1) // is not
+				query += " _."+prop+"!=\""+value+"\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else if (equals == 2) // contains
+				query += " _."+prop+"=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			else // does not contain
+				query += " _."+prop+"!=\".*"+value+".*\""; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			
+			nbitem++;
+		}
+		query += "] expand to "+structName;
+		*/
+		return query;
+	}
+	
+	public String getQueryFieldValue() {
+		String query = this.queryField.getText();
+		if (query == null || query.length() == 0) {
+			query = getQueryString();
+		}
+		return query;
+	}
+
+	public String getGeneratedName() {
+		String generated = this.corpus.getName(); 
+		for (QueryItem item : queryItems)
+			generated += "_"+item.selectedSup.getName(); //$NON-NLS-1$
+		return generated;
+	}
+	
+	/**
+	 * The Class QueryItem.
+	 */
+	class QueryItem extends Composite {
+
+		/** The prop combo. */
+		Combo propCombo;
+		
+		/** The test combo. */
+		Combo testCombo;
+		
+		/** The value combo. */
+		ListViewer valueCombo;
+
+		/** The sups. */
+		List<StructuralUnitProperty> sups;
+		
+		/** The selected sup. */
+		StructuralUnitProperty selectedSup;
+		
+		/** The selected su. */
+		StructuralUnit selectedSu;
+
+		/**
+		 * Instantiates a new query item.
+		 *
+		 * @param parent the parent
+		 * @param style the style
+		 */
+		public QueryItem(Composite parent, int style) {
+			super(parent, style);
+
+			this.setLayout(new GridLayout(5, false));
+			propCombo = new Combo(this, SWT.READ_ONLY);
+			propCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+			propCombo.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					refreshValues();
+				}
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {}
+			});
+
+			testCombo = new Combo(this, SWT.READ_ONLY);
+			testCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+			testCombo.add("is"); //$NON-NLS-1$
+			testCombo.add("is not"); //$NON-NLS-1$
+			testCombo.add(Messages.QueryAssistDialog_13);
+			testCombo.add(Messages.ComplexSubcorpusPanel_16);
+			testCombo.select(0);
+
+			valueCombo = new ListViewer(this, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL);
+			valueCombo.setContentProvider(new ArrayContentProvider());
+			GridData data = new GridData(GridData.FILL,GridData.FILL, true, false);
+			data.heightHint = testCombo.getItemHeight();
+			valueCombo.getList().setLayoutData(data);
+			if (structuralunits.size() > 0) {
+				refreshProps();
+			}
+
+			Button btnAdd  = new Button(this, SWT.PUSH);
+			btnAdd.setText("+"); //$NON-NLS-1$
+			btnAdd.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					//System.out.println("add constraint");
+					QueryItem item = new QueryItem(queriesPanel, SWT.NONE);
+					item.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
+					queryItems.add(item);
+					ComplexSubcorpusPanel.this.layout();
+					//System.out.println(getQueryString());
+				}
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {}
+			});
+
+			Button btnRmv  = new Button(this, SWT.PUSH);
+			btnRmv.setText("-"); //$NON-NLS-1$
+			btnRmv.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					if (queryItems.size() > 1) {
+						System.out.println(Messages.ObjectExplorer_9);
+						QueryItem.this.dispose();
+						queryItems.remove(QueryItem.this);
+						ComplexSubcorpusPanel.this.layout();
+					}
+				}
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {}
+			});
+		}
+
+		/**
+		 * Refresh props.
+		 */
+		private void refreshProps() {
+			propCombo.removeAll();
+			selectedSu = structuralunits.get(structCombo.getSelectionIndex());
+			sups = structuralUnitsProperties.get(selectedSu);
+
+			for (StructuralUnitProperty sup : sups)
+				propCombo.add(sup.getName());
+
+			if (sups.size() > 0) {
+				selectedSup = sups.get(0);
+				propCombo.select(0);
+				refreshValues();
+			}
+		}
+
+		/**
+		 * Refresh values.
+		 */
+		private void refreshValues() {
+			
+			selectedSup = sups.get(propCombo.getSelectionIndex()); 
+			try {
+				valueCombo.setInput(selectedSup.getOrderedValues());
+			} catch (CqiClientException e1) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+			if (valueCombo.getList().getItemCount() > 0)
+				valueCombo.getList().select(0);
+		}
+
+		/**
+		 * Gets the structural unit.
+		 *
+		 * @return the structural unit
+		 */
+		public StructuralUnit getStructuralUnit() {
+			return null;
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSubcorpusPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PropertiesSelector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PropertiesSelector.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PropertiesSelector.java	(revision 122)
@@ -0,0 +1,264 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Listener;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ViewPropertySelectionDialog;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow to choose a structural property @ author mdecorde.
+ */
+public class PropertiesSelector extends Composite {
+	
+	/** The corpus. */
+	Corpus corpus;
+	
+	/** The properties. */
+	List<Property> properties;
+	
+	/** The availableprops. */
+	List<Property> availableprops;
+	
+	/** The maxprops. */
+	int maxprops = -1;
+
+	/** The properties label. */
+	Label propertiesLabel;
+	
+	/** The openeditdialog. */
+	Button openeditdialog;
+	
+	/** The prop label. */
+	Label propLabel;
+	
+	/** The prop separator. */
+	String propSeparator = " ; "; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new properties selector.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public PropertiesSelector(Composite parent, int style) {
+		super(parent, style);
+
+		// = properties
+		propLabel = new Label(this, SWT.NONE);
+		propLabel.setText(Messages.PropertiesSelector_1);
+		propLabel
+				.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, true));
+
+		// word_pos
+		propertiesLabel = new Label(this, SWT.NONE);
+		propertiesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+
+		openeditdialog = new Button(this, SWT.PUSH);
+		openeditdialog.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+		openeditdialog.setText(Messages.PropertiesSelector_2);
+
+		openeditdialog.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				showEditorDialog();
+				refresh();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+		});
+	}
+	
+	public void addSelectionListener(SelectionListener listener) {
+		openeditdialog.addSelectionListener(listener);
+	}
+
+	/**
+	 * Sets the max property number.
+	 *
+	 * @param max the new max property number
+	 */
+	public void setMaxPropertyNumber(int max) {
+		this.maxprops = max;
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public void refresh() {
+		String previous = propertiesLabel.getText();
+		StringBuffer buffer = new StringBuffer();
+		boolean first = true;
+		for (Property p : properties) {
+			if (first) {
+				first = false;
+			} else {
+				buffer.append(propSeparator);
+			}
+			
+			if (p instanceof StructuralUnitProperty)
+				buffer.append(((StructuralUnitProperty)p).getFullName()); 
+			else
+				buffer.append(p.getName()); 
+
+		}
+		if (buffer.length() > 0) {
+			propertiesLabel.setText(buffer.substring(0, buffer.length()));
+			propertiesLabel.getParent().layout();
+			propertiesLabel.getParent().getParent().layout();
+			propertiesLabel.getParent().getParent().getParent().layout();
+			//propertiesLabel.update(); //this line cause the SWT env to go crazy with Ubuntu 14.04 !!!
+		}
+		
+		if (!previous.equals(propertiesLabel.getText())) { // value changed !
+			for (Listener l : listeners) {
+				l.handleEvent(null);
+			}
+		}
+	}
+
+	/**
+	 * Show editor dialog.
+	 */
+	public void showEditorDialog() {
+		if (availableprops == null) return;
+		new ViewPropertySelectionDialog(this.getShell(), availableprops,
+				properties, maxprops).open();
+	}
+
+	/**
+	 * Sets the corpus.
+	 *
+	 * @param corpus the new corpus
+	 */
+	public void setCorpus(Corpus corpus) {
+		this.corpus = corpus;
+		this.properties = new ArrayList<Property>();
+		if (corpus == null)
+			return;
+		try {
+			availableprops = new ArrayList<Property>();
+			availableprops.addAll(corpus.getOrderedProperties());
+			//availableprops.addAll(corpus.getStructuralUnitProperties());
+			
+			for (int i = 0; i < availableprops.size(); i++) {
+				// remove TXM internal properties
+				if (availableprops.get(i).getName().equals("id")) { //$NON-NLS-1$
+					availableprops.remove(i);
+					i--;
+				}
+			}
+
+			if (availableprops.size() > 0) {
+				this.properties = new ArrayList<Property>();
+				for (int i = 0 ; i < availableprops.size() ; i++) {
+					if (availableprops.get(i).getName().equals("word")) { //$NON-NLS-1$
+						properties.add(availableprops.get(i));
+						availableprops.remove(i);
+						refresh();
+						break;
+					}
+				}
+			}
+		} catch (CqiClientException e) {
+			Log.severe(NLS.bind(Messages.PropertiesSelector_0, e.getMessage()));
+		}
+	}
+
+	/**
+	 * Gets the properties.
+	 *
+	 * @return the properties
+	 */
+	public List<Property> getProperties() {
+		return this.properties;
+	}
+	
+	/**
+	 * Gets the Available properties.
+	 *
+	 * @return the Available properties
+	 */
+	public List<Property> getAvailableProperties() {
+		return this.availableprops;
+	}
+
+	/**
+	 * Sets the properties.
+	 *
+	 * @param available the available
+	 * @param selected the selected
+	 */
+	public void setProperties(List<Property> available, List<Property> selected) {
+		// System.out.println("initialize prop selector with: "+available+" and "+selected);
+		availableprops = available;
+		this.properties = selected;
+		refresh();
+	}
+
+	/**
+	 * Sets the text.
+	 *
+	 * @param string the new text
+	 */
+	public void setText(String string) {
+		propLabel.setText(string);
+		propLabel.update();
+	}
+
+	public void clear() {
+		setText(""); //$NON-NLS-1$
+		setProperties(new ArrayList<Property>(), new ArrayList<Property>());
+	}
+
+	ArrayList<Listener> listeners = new ArrayList<Listener>();
+	public void addValueChangeListener(Listener listener) {
+		listeners.add(listener);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PropertiesSelector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NavigationWidget.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NavigationWidget.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NavigationWidget.java	(revision 122)
@@ -0,0 +1,219 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.Messages;
+
+// TODO: Auto-generated Javadoc
+/**
+ * [<< |< < label > >| >>] @ author mdecorde.
+ */
+public class NavigationWidget extends Composite {
+
+	/** The info line. */
+	Label infoLine;
+	Text currentPosition;
+	
+	/** The first. */
+	Button first;
+	
+	/** The last. */
+	Button last;
+	
+	/** The next. */
+	Button next;
+	
+	/** The prev. */
+	Button prev;
+	
+
+	/** The n line per page. */
+	int nLinePerPage;
+	private Color whiteColor;
+
+	/**
+	 * Instantiates a new navigation widget.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public NavigationWidget(Composite parent, int style) {
+		super(parent, style);
+		this.setLayout(new GridLayout(6, false));
+
+		// | [|<] [<] [info] [>] [>|] |
+
+		// [|<]
+		first = new Button(this, SWT.PUSH);
+		first.setText(Messages.ConcordancesEditor_11);
+		first.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false));
+		first.setEnabled(false);
+
+		// [<]
+		prev = new Button(this, SWT.PUSH);
+		prev.setText(Messages.ConcordancesEditor_12);
+		prev.setEnabled(false);
+
+		// [current]
+		currentPosition = new Text(this, SWT.NONE);
+		GridData currentPositionLayoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER, SWT.CENTER, true, false);
+		currentPosition.setLayoutData(currentPositionLayoutData);
+		currentPosition.setTextLimit(6);
+		currentPosition.setEditable(false);
+		
+		// [info]
+		infoLine = new Label(this, SWT.NONE);
+		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER, SWT.CENTER, true, false);
+		infoLine.setLayoutData(layoutData);
+		
+		whiteColor = currentPosition.getBackground();
+		currentPosition.setBackground(infoLine.getBackground());
+
+		// [>]
+		next = new Button(this, SWT.PUSH);
+		next.setText(Messages.ConcordancesEditor_13);
+		next.setEnabled(false);
+
+		// [>|]
+		last = new Button(this, SWT.PUSH);
+		last.setText(Messages.ConcordancesEditor_14);
+		last.setEnabled(false);
+	}
+	
+
+	public void addGoToKeyListener(KeyListener keyListener) {
+		currentPosition.addKeyListener(keyListener);
+		currentPosition.setEditable(true);
+		currentPosition.setBackground(whiteColor);
+		//currentPosition.setBackground(new Color(currentPosition.get));
+	}
+
+	/**
+	 * Adds the first listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addFirstListener(SelectionListener selectionListener) {
+		first.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the next listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addNextListener(SelectionListener selectionListener) {
+		next.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the previous listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addPreviousListener(SelectionListener selectionListener) {
+		prev.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the last listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addLastListener(SelectionListener selectionListener) {
+		last.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Sets the first enabled.
+	 *
+	 * @param b the new first enabled
+	 */
+	public void setFirstEnabled(boolean b) {
+		first.setEnabled(b);
+	}
+
+	/**
+	 * Sets the last enabled.
+	 *
+	 * @param b the new last enabled
+	 */
+	public void setLastEnabled(boolean b) {
+		last.setEnabled(b);
+	}
+
+	/**
+	 * Sets the next enabled.
+	 *
+	 * @param b the new next enabled
+	 */
+	public void setNextEnabled(boolean b) {
+		next.setEnabled(b);
+	}
+
+	/**
+	 * Sets the previous enabled.
+	 *
+	 * @param b the new previous enabled
+	 */
+	public void setPreviousEnabled(boolean b) {
+		prev.setEnabled(b);
+	}
+
+	/**
+	 * Sets the info line text.
+	 *
+	 * @param s the new info line text
+	 */
+	public void setInfoLineText(String current, String s) {
+		this.currentPosition.setText(current);
+		this.infoLine.setText(s);
+		this.layout();
+	}
+
+
+	 public int getCurrent() {
+		 int ret = -1;
+		 try {
+			 ret = Integer.parseInt(currentPosition.getText());
+		 } catch(Exception e) {
+			 System.out.println(Messages.NavigationWidget_0+e);
+		 }
+		return ret;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NavigationWidget.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ObjectSelector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ObjectSelector.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ObjectSelector.java	(revision 122)
@@ -0,0 +1,218 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.dialog.ObjectSelectionDialog;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ObjectSelector.
+ */
+public class ObjectSelector extends Composite {
+
+	/** The selected. */
+	List<Object> selected;
+	
+	/** The available. */
+	List<Object> available;
+	
+	/** The max. */
+	int max = -1;
+	
+	/** The maxdisplay. */
+	int maxdisplay = -1;
+
+	/** The prop label. */
+	Label propLabel;
+	
+	/** The properties label. */
+	Label propertiesLabel;
+	
+	/** The openeditdialog. */
+	Button openeditdialog;
+
+	/** The separator. */
+	String separator = "_"; //$NON-NLS-1$
+
+	/**
+	 * Instantiates a new object selector.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public ObjectSelector(Composite parent, int style) {
+		super(parent, style);
+		this.setLayout(new GridLayout(3, false));
+
+		propLabel = new Label(this, SWT.NONE);
+		propLabel.setText(Messages.ObjectSelector_0);
+		propLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, true));
+
+		// word_pos
+		propertiesLabel = new Label(this, SWT.NONE);
+		propertiesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+
+		openeditdialog = new Button(this, SWT.PUSH);
+		openeditdialog.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false,
+				true));
+		openeditdialog.setText(Messages.ObjectSelector_1);
+
+		openeditdialog.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				showEditorDialog();
+				refresh();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+		});
+	}
+
+	/**
+	 * Refresh.
+	 */
+	public void refresh() {
+		StringBuffer buffer = new StringBuffer();
+		int count = 0;
+		if (maxdisplay > 0)
+			for (Object p : selected) {
+				count++;
+				buffer.append(p.toString() + separator); 
+				if (maxdisplay > 0 && count >= maxdisplay) {
+					buffer.append("..."); //$NON-NLS-1$
+					break;
+				}
+			}
+		if (buffer.length() > 0) {
+			propertiesLabel.setText(buffer.substring(0, buffer.length() - 1));
+		} else
+			propertiesLabel.setText(""); //$NON-NLS-1$
+		propertiesLabel.getParent().layout(true);
+		this.getParent().layout(true);
+		this.getParent().getParent().layout(true);
+	}
+
+	/**
+	 * Show editor dialog.
+	 */
+	public void showEditorDialog() {
+		new ObjectSelectionDialog(this.getShell(), available, selected, max)
+				.open();
+	}
+
+	/**
+	 * Gets the selection.
+	 *
+	 * @return the selection
+	 */
+	public List<Object> getSelection() {
+		return this.selected;
+	}
+
+	/**
+	 * Gets the available.
+	 *
+	 * @return the available
+	 */
+	public List<Object> getAvailable() {
+		return this.available;
+	}
+
+	// SETTERS
+	/**
+	 * Sets the max property number.
+	 *
+	 * @param max the new max property number
+	 */
+	public void setMaxPropertyNumber(int max) {
+		this.max = max;
+	}
+
+	/**
+	 * Sets the max display number.
+	 *
+	 * @param max the new max display number
+	 */
+	public void setMaxDisplayNumber(int max) {
+		this.maxdisplay = max;
+	}
+
+	/**
+	 * Sets the label text.
+	 *
+	 * @param txt the new label text
+	 */
+	public void setLabelText(String txt) {
+		this.propLabel.setText(txt);
+	}
+
+	/**
+	 * Sets the edits the text.
+	 *
+	 * @param txt the new edits the text
+	 */
+	public void setEditText(String txt) {
+		openeditdialog.setText(txt);
+	}
+
+	/**
+	 * Sets the objects.
+	 *
+	 * @param available the available
+	 * @param selected the selected
+	 */
+	@SuppressWarnings("unchecked")
+	public void setObjects(List available, List selected) {
+		this.available = available;
+		this.selected = selected;
+		refresh();
+	}
+
+	/**
+	 * Sets the separator.
+	 *
+	 * @param string the new separator
+	 */
+	public void setSeparator(String string) {
+		this.separator = string;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ObjectSelector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AssistedQueryWidget.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AssistedQueryWidget.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AssistedQueryWidget.java	(revision 122)
@@ -0,0 +1,142 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.dialog.QueryAssistDialog;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.query.Query;
+// TODO: Auto-generated Javadoc
+/**
+ * the QueryWidget plus the button to open the QueryAssisDialog @ author
+ * mdecorde.
+ */
+public class AssistedQueryWidget extends Composite {
+	
+	/** The magicstick button: opens the QueryAssist dialog. */
+	protected Button magicstick;
+	
+	/** The querywidget. */
+	protected QueryWidget querywidget;
+
+	private QueryAssistDialog d;
+
+	/**
+	 * Instantiates a new assisted query widget.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 * @param corpus the corpus
+	 */
+	public AssistedQueryWidget(Composite parent, int style, final Corpus corpus) {
+		super(parent, SWT.NONE);
+		this.setLayout(new GridLayout(2, false));
+
+		magicstick = new Button(this, SWT.PUSH);
+		magicstick.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				false, true));
+		magicstick.setImage(IImageKeys.getImage(IImageKeys.ACTION_ASSISTQUERY));
+		magicstick.setToolTipText(Messages.AssistedQueryWidget_0);
+		magicstick.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				d = new QueryAssistDialog(e.display.getActiveShell(), corpus);
+				if (d.open() == Window.OK) {
+					querywidget.setText(d.getQuery());
+				}
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+
+		querywidget = new QueryWidget(this, style);
+		querywidget.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+	}
+	
+	public boolean setFocus() {
+		return this.querywidget.setFocus();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
+	 */
+	@Override
+	public void addKeyListener(KeyListener listener) {
+		if (querywidget != null)
+			this.querywidget.addKeyListener(listener);
+	}
+
+	/**
+	 * Gets the query string.
+	 *
+	 * @return the query string
+	 */
+	public String getQueryString() {
+		return querywidget.getQueryString();
+	}
+
+	/**
+	 * Memorize.
+	 */
+	public void memorize() {
+		querywidget.memorize();
+	}
+
+	/**
+	 * Memorize.
+	 *
+	 * @param query the query
+	 */
+	public void memorize(String query) {
+		querywidget.memorize(query);
+	}
+
+	/**
+	 * Sets the text.
+	 *
+	 * @param query the new text
+	 */
+	public void setText(String query) {
+		querywidget.setText(query);
+	}
+
+	public Query getQuery() {
+		return new Query(getQueryString());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AssistedQueryWidget.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/QueryWidget.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/QueryWidget.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/QueryWidget.java	(revision 122)
@@ -0,0 +1,121 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.Deque;
+import java.util.LinkedList;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * A widget to enter query strings. It features query history and accepts both
+ * full CQP query strings and simplif ied query strings (see
+ * {@link org.txm.searchengine.cqp.corpus.query.Query#fixQuery(String)})
+ * 
+ * @author jmague
+ * 
+ */
+public class QueryWidget extends Combo {
+
+	/** The history. */
+	private static Deque<String> history = new LinkedList<String>();
+
+	/**
+	 * Instantiates a new query widget.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public QueryWidget(Composite parent, int style) {
+		super(parent, style);
+		this.setItems(history.toArray(new String[history.size()]));
+	}
+
+	/**
+	 * Gets the CQP query string inferred from the user input.
+	 *
+	 * @return the CQP query string
+	 */
+	public String getQueryString() {
+		String rawQuery;
+		if (getSelectionIndex() < 0)
+			rawQuery = getText();
+		else
+			rawQuery = this.getItem(this.getSelectionIndex());
+		return Query.fixQuery(rawQuery);
+	}
+
+	/**
+	 * Memorize.
+	 */
+	public void memorize() {
+		String inputString;
+		if (getSelectionIndex() == -1)
+			inputString = getText();
+		else
+			inputString = getItems()[getSelectionIndex()];
+		history.remove(inputString);
+		history.addFirst(inputString);
+		this.setItems(history.toArray(new String[history.size()]));
+		this.setText(this.getItem(0));
+	}
+
+	/**
+	 * Memorize.
+	 *
+	 * @param query the query to memorize
+	 */
+	public void memorize(String query) {
+		String inputString = query;
+		this.setText(query);
+		history.remove(inputString);
+		history.addFirst(inputString);
+		this.setItems(history.toArray(new String[history.size()]));
+		this.setText(this.getItem(0));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.swt.widgets.Combo#checkSubclass()
+	 */
+	@Override
+	protected void checkSubclass() {
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @return the query
+	 */
+	public Query getQuery() {
+		
+		return new Query(this.getQueryString());
+	};
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/QueryWidget.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/DynamicTableViewer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/DynamicTableViewer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/DynamicTableViewer.java	(revision 122)
@@ -0,0 +1,105 @@
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TableViewerColumn;
+import org.eclipse.jface.window.ApplicationWindow;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.TableColumn;
+
+/**
+ * add/remove columns
+ * freeze column
+ * horizontal scrollbar for columns
+ * 
+ * @author mdecorde
+ *
+ */
+public class DynamicTableViewer extends TableViewer {
+
+	public DynamicTableViewer(Composite parent, int style) {
+		super(parent, style);
+		
+	}
+	
+	public TableViewerColumn addColumn(String name) {
+		//TableColumn c = new TableColumn(this.getTable(), SWT.H_SCROLL);
+		TableViewerColumn column = new TableViewerColumn(this, SWT.H_SCROLL);
+		column.getColumn().setText(name);
+		column.getColumn().setMoveable(true);
+		column.getColumn().setResizable(true);
+		column.getColumn().setToolTipText(name);
+		column.getColumn().setWidth(100);
+		
+		return column;
+	}
+
+	public static void main(String args[]) {
+		ApplicationWindow w = new ApplicationWindow(Display.getDefault().getActiveShell()) {
+			protected void configureShell(Shell shell) {
+				super.configureShell(shell);
+				shell.setSize(400, 400);
+			}
+
+			protected Control createContents(Composite parent) {
+				Composite composite = new Composite(parent, SWT.NONE);
+				composite.setLayout(new GridLayout(1, false));
+
+				DynamicTableViewer viewer = new DynamicTableViewer(composite, SWT.BORDER);
+				viewer.getTable().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+				viewer.getTable().setLinesVisible(true);
+				viewer.getTable().setHeaderVisible(true);
+				
+				viewer.setContentProvider(new ArrayContentProvider());
+				ArrayList<List<String>> data = new ArrayList<List<String>>();
+				data.add(Arrays.asList("1111111111111111111 111111111111 1 1 11111111111111 11111111111", "2", "3"));
+				data.add(Arrays.asList("11111111111 1111111111  1111 1 1 1 1 111111111111  1 1 1 1 1 1 1 11 1 1 1 ", "2", "3"));
+				data.add(Arrays.asList("1", "2", "3"));
+								
+				TableViewerColumn col = viewer.addColumn("first");
+				col.setLabelProvider(new ColumnLabelProvider() {
+				      @Override
+				      public String getText(Object element) {
+				        List p = (List) element;
+				        return p.get(0).toString();
+				      }
+				    });
+							
+				col = viewer.addColumn("second");
+				col.setLabelProvider(new ColumnLabelProvider() {
+				      @Override
+				      public String getText(Object element) {
+				        List p = (List) element;
+				        return p.get(1).toString();
+				      }
+				    });
+				
+				col = viewer.addColumn("third");
+				col.setLabelProvider(new ColumnLabelProvider() {
+				      @Override
+				      public String getText(Object element) {
+				        List p = (List) element;
+				        return p.get(2).toString();
+				      }
+				    });
+				
+				viewer.setInput(data);
+				return composite;
+			}
+		};
+		w.setBlockOnOpen(true);
+		w.open();
+		Display.getDefault().dispose();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/DynamicTableViewer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NamedAssistedQueryWidget.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NamedAssistedQueryWidget.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NamedAssistedQueryWidget.java	(revision 122)
@@ -0,0 +1,166 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.dialog.QueryAssistDialog;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * the QueryWidget plus the button to open the QueryAssisDialog @ author
+ * mdecorde.
+ */
+public class NamedAssistedQueryWidget extends Composite {
+	
+	/** The magicstick. */
+	Button magicstick;
+	
+	/** The querywidget. */
+	QueryWidget querywidget;
+	Text nameField;
+
+	/**
+	 * Instantiates a new assisted query widget.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 * @param corpus the corpus
+	 */
+	public NamedAssistedQueryWidget(Composite parent, int style, final Corpus corpus) {
+		super(parent, SWT.NONE);
+		this.setLayout(new GridLayout(5, false));
+
+		Label l = new Label(this, SWT.NONE);
+		l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, true));
+		l.setText("Name: "); //$NON-NLS-1$
+		
+		nameField = new Text(this, SWT.BORDER);
+		nameField.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, true));
+		
+		l = new Label(this, SWT.NONE);
+		l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, true));
+		l.setText(Messages.IndexEditor_3);
+		
+		magicstick = new Button(this, SWT.PUSH);
+		magicstick.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, true));
+		magicstick.setImage(IImageKeys.getImage(IImageKeys.ACTION_ASSISTQUERY));
+		magicstick.setToolTipText(Messages.AssistedQueryWidget_0);
+		magicstick.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				QueryAssistDialog d = new QueryAssistDialog(e.display
+						.getActiveShell(), corpus);
+				// System.out.println(d);
+				if (d.open() == Window.OK) {
+					querywidget.setText(d.getQuery());
+				}
+
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		
+		querywidget = new QueryWidget(this, style);
+		querywidget.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, true));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.swt.widgets.Control#addKeyListener(org.eclipse.swt.events.KeyListener)
+	 */
+	@Override
+	public void addKeyListener(KeyListener listener) {
+		this.querywidget.addKeyListener(listener);
+	}
+
+	/**
+	 * Gets the query string.
+	 *
+	 * @return the query string
+	 */
+	public String getQueryString() {
+		return querywidget.getQueryString();
+	}
+
+	/**
+	 * Gets the query string.
+	 *
+	 * @return the query string
+	 */
+	public String getQueryName() {
+		return nameField.getText();
+	}
+	
+	/**
+	 * Memorize.
+	 */
+	public void memorize() {
+		querywidget.memorize();
+	}
+
+	/**
+	 * Memorize.
+	 *
+	 * @param query the query
+	 */
+	public void memorize(String query) {
+		querywidget.memorize(query);
+	}
+
+	/**
+	 * Sets the text.
+	 *
+	 * @param query the new text
+	 */
+	public void setText(String query) {
+		querywidget.setText(query);
+	}
+
+	public void focus() {
+		querywidget.forceFocus();
+	}
+
+	public void setName(String string) {
+		nameField.setText(string);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/NamedAssistedQueryWidget.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Shared swt widgets</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/SimpleSubcorpusPanel.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/SimpleSubcorpusPanel.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/SimpleSubcorpusPanel.java	(revision 122)
@@ -0,0 +1,256 @@
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.actions.CreateSubcorpusDialog;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.utils.logger.Log;
+
+public class SimpleSubcorpusPanel extends Composite {
+
+	public StructuralUnit selectedStructuralUnit;
+	public StructuralUnitProperty selectedStructuralUnitProperty;
+	public List<String> selectedValues;
+	public List<StructuralUnitProperty> selectableStructuralUnitProperties = null;
+
+	Combo structuralUnitsCombo;
+	Combo propertyCombo;
+	ListViewer valueCombo;
+	
+	List<StructuralUnit> structuralUnitsFinal;
+	private CreateSubcorpusDialog dialog;
+	private Corpus corpus;
+
+	public SimpleSubcorpusPanel(Composite parent, int style, CreateSubcorpusDialog dialog, Corpus corpus) {
+		super(parent, style);
+
+		this.dialog = dialog;
+		this.corpus = corpus;
+
+		GridLayout layout = new GridLayout(2, false);
+		this.setLayout(layout);
+
+		Label structureLabel = new Label(this, SWT.NONE);
+		structureLabel.setText(Messages.CreatePartitionDialog_2);
+		structureLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
+
+		structuralUnitsCombo = new Combo(this, SWT.READ_ONLY);
+		structuralUnitsCombo.setLayoutData(new GridData(GridData.FILL,GridData.FILL, true, false));
+
+		Label propertyLabel = new Label(this, SWT.NONE);
+		propertyLabel.setText(Messages.CreatePartitionDialog_4);
+		propertyLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+				false, false));
+
+		propertyCombo = new Combo(this, SWT.READ_ONLY);
+		propertyCombo.setLayoutData(new GridData(GridData.FILL,GridData.FILL, true, false));
+
+		Label valuesLabel = new Label(this, SWT.NONE);
+		valuesLabel.setText(Messages.CreateSubcorpusDialog_6);
+		valuesLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER, false, false));
+
+		valueCombo = new ListViewer(this, SWT.MULTI |SWT.V_SCROLL | SWT.BORDER | SWT.VIRTUAL);
+		valueCombo.setContentProvider(new ArrayContentProvider());
+//		valueCombo.setLabelProvider(new LabelProvider() {
+//
+//	        @Override
+//	        public String getText(Object element) {
+//	            return Activator.getSomeService().key2Value((Integer) element);
+//	        }
+//
+//	    });
+		GridData data = new GridData(GridData.FILL,GridData.FILL, true, false);
+		data.heightHint = 100;
+		valueCombo.getList().setLayoutData(data);
+	
+
+		// Load StructuralUnit
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+		List<StructuralUnit> structuralUnits = null;
+		try {
+			structuralUnits = corpus.getOrderedStructuralUnits();
+		} catch (Exception e) {
+			Log.severe(Messages.ObjectExplorer_9
+					+ Log.toString(e));
+			return;
+		}
+
+		structuralUnitsFinal = new ArrayList<StructuralUnit>();
+
+
+		for (StructuralUnit unit : structuralUnits) {
+			if (unit.getOrderedProperties() != null
+					&& unit.getOrderedProperties().size() != 0) {
+				if (!"txmcorpus".equals(unit.getName())) { // keep all but txmcorpus //$NON-NLS-1$
+					structuralUnitsFinal.add(unit);
+					structuralUnitsCombo.add(unit.getName());
+				}
+			}
+		}
+
+		if (structuralUnitsCombo.getItemCount() == 0) {
+			dialog.getButton(IDialogConstants.OK_ID).setEnabled(false);
+		} else {
+			String[] items = structuralUnitsCombo.getItems();
+			structuralUnitsCombo.select(0);
+			for (int i = 0 ; i < items.length ; i++)
+				if (items[i].equals("text")) { //$NON-NLS-1$
+					structuralUnitsCombo.select(i);
+					break;
+				}
+
+			selectedStructuralUnit = structuralUnitsFinal.get(0);
+		}
+		// Load StructuralUnitProperty
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		structuralUnitsCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				System.out.println(Messages.SimpleSubcorpusPanel_0);
+				reloadProperties();
+			}
+		});
+
+		/*
+		 * for(StructuralUnitProperty property :
+		 * structuralUnitsFinal.get(0).getProperties()) {
+		 * propertyCombo.add(property.getName()); }
+		 * 
+		 * propertyCombo.select(0); selectedStructuralUnitProperty =
+		 * selectedStructuralUnit.getProperties().get(0);
+		 */
+		// Load Values
+		// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+		propertyCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+
+			@Override
+			public void widgetSelected(SelectionEvent event) {
+				reloadValues();
+			}
+		});
+
+		/*
+		 * try { for(String value :
+		 * selectedStructuralUnitProperty.getValues(corpus)) {
+		 * valueCombo.add(value); } } catch (CqiClientException e) {
+		 * System.err.println
+		 * (Messages.bind(Messages.ObjectExplorer_9, e)); }
+		 * valueCombo.select(0); selectedValue = valueCombo.getItem(0);
+		 */
+		valueCombo.getList().addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				ISelection sel = valueCombo.getSelection();
+				if (sel instanceof IStructuredSelection) {
+					selectedValues = ((IStructuredSelection)sel).toList();
+				}
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+				// TODO Auto-generated method stub
+				
+			}
+		});
+
+		reloadProperties();
+	}
+
+	/**
+	 * Reload values.
+	 */
+	protected void reloadValues() {
+		List<String> values = null;
+		selectedStructuralUnitProperty = selectableStructuralUnitProperties
+				.get(propertyCombo.getSelectionIndex());
+		//System.out.println("Selectable su prop: "+selectableStructuralUnitProperties); //$NON-NLS-1$
+		//System.out.println("Selected line: "+propertyCombo.getSelectionIndex()); //$NON-NLS-1$
+		//System.out.println("Combo values: "+Arrays.toString(propertyCombo.getItems())); //$NON-NLS-1$
+		//System.out.println("Selected su prop: "+selectedStructuralUnitProperty); //$NON-NLS-1$
+		try {
+			values = selectedStructuralUnitProperty.getOrderedValues(corpus);
+			Collections.sort(values);
+		} catch (CqiClientException e) {
+			Log.severe(Messages.ObjectExplorer_9
+					+ Log.toString(e));
+			return;
+		}
+
+
+		valueCombo.setInput(values);
+		
+		if (valueCombo.getList().getItemCount() > 0) {
+			valueCombo.getList().select(0);
+			selectedValues = new ArrayList<String>();
+			selectedValues.add(valueCombo.getList().getItem(0));
+		}
+		GridData data = new GridData(GridData.FILL_BOTH);
+		data.heightHint = 10 * valueCombo.getList().getItemHeight();
+		valueCombo.getList().setLayoutData(data);
+		valueCombo.getList().getParent().layout();
+	}
+
+	/**
+	 * Reload properties.
+	 */
+	protected void reloadProperties() {
+
+		selectedStructuralUnit = structuralUnitsFinal.get(structuralUnitsCombo
+				.getSelectionIndex());
+
+		selectableStructuralUnitProperties = 
+				new ArrayList<StructuralUnitProperty>(selectedStructuralUnit.getOrderedProperties());
+		for (int i = 0 ; i < selectableStructuralUnitProperties.size() ; i++) {
+			StructuralUnitProperty property = selectableStructuralUnitProperties.get(i);
+			if ("text_base".equals(property.getFullName()) || //$NON-NLS-1$
+					"text_project".equals(property.getFullName())) //$NON-NLS-1$
+				selectableStructuralUnitProperties.remove(i);
+		}
+		propertyCombo.removeAll();
+		for (StructuralUnitProperty property : selectableStructuralUnitProperties) {
+			propertyCombo.add(property.getName());
+		}
+
+		if (selectedStructuralUnit.getName().equals("text")) { //$NON-NLS-1$
+			String[] items = propertyCombo.getItems();
+			for (int i = 0 ; i < items.length ; i++) {
+				if (items[i].equals("id")) { //$NON-NLS-1$
+					propertyCombo.select(i);
+					break;
+				}
+			}
+		} else {
+			propertyCombo.select(0);
+		}
+		reloadValues();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/SimpleSubcorpusPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSortSelector.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSortSelector.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSortSelector.java	(revision 122)
@@ -0,0 +1,234 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.txm.functions.concordances.comparators.CompositeComparator;
+import org.txm.functions.concordances.comparators.LineComparator;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.utils.Logger;
+// TODO: Auto-generated Javadoc
+/**
+ * allow to build a Composite sorter of 1 to 4 keys @ author mdecorde.
+ */
+public class ComplexSortSelector extends Composite {
+
+	/** The standard comparators. */
+	HashMap<String, LineComparator> standardComparators = new HashMap<String, LineComparator>();
+	
+	/** The comparators names. */
+	List<String> comparatorsNames;
+
+	/** The editor. */
+	ConcordancesEditor editor;
+	
+	/** The default comparator. */
+	CompositeComparator defaultComparator;
+
+	/** The first key. */
+	Combo firstKey;
+	
+	/** The second key. */
+	Combo secondKey;
+	
+	/** The third key. */
+	Combo thirdKey;
+	
+	/** The fourth key. */
+	Combo fourthKey;
+
+	/**
+	 * Instantiates a new complex sort selector.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public ComplexSortSelector(Composite parent, int style) {
+		super(parent, style);
+		GridLayout gl = new GridLayout(10, false);
+		gl.marginWidth = 0;
+		gl.marginLeft = 0;
+		gl.marginRight = 0;
+		this.setLayout(gl);
+
+		SelectionListener listener = new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				updateDefaultComparator();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		};
+		new Label(this, SWT.NONE).setText(Messages.ComplexSortSelector_0);
+		new Label(this, SWT.NONE).setText("#1"); //$NON-NLS-1$
+		firstKey = new Combo(this, SWT.NONE | SWT.READ_ONLY);
+		//firstKey.addSelectionListener(listener);
+		GridData griddata = new GridData(GridData.FILL, GridData.FILL, false,
+				true);
+		griddata.widthHint = 100;
+		firstKey.setLayoutData(griddata);
+
+		new Label(this, SWT.NONE).setText("#2"); //$NON-NLS-1$
+		secondKey = new Combo(this, SWT.NONE | SWT.READ_ONLY);
+		//secondKey.addSelectionListener(listener);
+		secondKey.setLayoutData(griddata);
+
+		new Label(this, SWT.NONE).setText("#3"); //$NON-NLS-1$
+		thirdKey = new Combo(this, SWT.NONE | SWT.READ_ONLY);
+		//thirdKey.addSelectionListener(listener);
+		thirdKey.setLayoutData(griddata);
+
+		new Label(this, SWT.NONE).setText("#4"); //$NON-NLS-1$
+		fourthKey = new Combo(this, SWT.NONE | SWT.READ_ONLY);
+		//fourthKey.addSelectionListener(listener);
+		fourthKey.setLayoutData(griddata);
+		
+		Button sortButton = new Button(this, SWT.PUSH);
+		sortButton.setText(Messages.ComplexSortSelector_2);
+		sortButton.addSelectionListener(listener);
+		
+	}
+
+	/**
+	 * Update default comparator.
+	 */
+	public void updateDefaultComparator() {
+		try {
+			ArrayList<LineComparator> comp = new ArrayList<LineComparator>();
+			comp.add(standardComparators.get(firstKey.getText()));
+			comp.add(standardComparators.get(secondKey.getText()));
+			comp.add(standardComparators.get(thirdKey.getText()));
+			comp.add(standardComparators.get(fourthKey.getText()));
+			defaultComparator.setComparators(comp);
+			System.out.println(Messages.ComplexSortSelector_1+comp);
+			editor.resetSortedColumn(firstKey.getSelectionIndex());
+			editor.setCurrentComparator(defaultComparator);
+			editor.sort();
+		} catch (Exception e) {
+			System.err.println(NLS.bind(Messages.ComplexSortSelector_5, e));
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+	
+	/**
+	 * Sets the key.
+	 *
+	 * @param no the new key
+	 */
+	public void setKey(int no)
+	{
+		firstKey.select(no);
+		secondKey.select(0);
+		thirdKey.select(0);
+		fourthKey.select(0);
+		
+	}
+
+	/**
+	 * Sets the comparators.
+	 *
+	 * @param editor the new comparators
+	 */
+	public void setComparators(ConcordancesEditor editor) {
+		this.editor = editor;
+
+		List<LineComparator> standardComparatorslist = editor
+				.getStandardComparators();
+		comparatorsNames = new ArrayList<String>(standardComparatorslist.size());
+		String[] tcomparatorsNames = new String[standardComparatorslist.size()];
+		for (int i = 0; i < standardComparatorslist.size(); i++) {
+			LineComparator comparator = standardComparatorslist.get(i);
+			comparatorsNames.add(comparator.getName());
+			tcomparatorsNames[i] = comparator.getName();
+			this.standardComparators.put(comparator.getName(), comparator);
+		}
+
+		firstKey.setItems(tcomparatorsNames);
+		secondKey.setItems(tcomparatorsNames);
+		thirdKey.setItems(tcomparatorsNames);
+		fourthKey.setItems(tcomparatorsNames);
+
+		List<LineComparator> userDefinedComparators = editor
+				.getUserDefinedComparators();
+		for (LineComparator c : userDefinedComparators) {
+			if (c.getName().equals(Messages.ComplexSortSelector_6)) {
+				defaultComparator = (CompositeComparator) c;
+				List<LineComparator> comp = defaultComparator.getComparators();
+				if (comp.size() >= 4) {
+					firstKey.select(comparatorsNames.indexOf(comp.get(0)));
+					secondKey.select(comparatorsNames.indexOf(comp.get(1)));
+					thirdKey.select(comparatorsNames.indexOf(comp.get(2)));
+					fourthKey.select(comparatorsNames.indexOf(comp.get(3)));
+				} else if (comp.size() >= 3) {
+					firstKey.select(comparatorsNames.indexOf(comp.get(0)));
+					secondKey.select(comparatorsNames.indexOf(comp.get(1)));
+					thirdKey.select(comparatorsNames.indexOf(comp.get(2)));
+					fourthKey.select(comparatorsNames.indexOf(comp.get(2)));
+				} else if (comp.size() == 2) {
+					firstKey.select(comparatorsNames.indexOf(comp.get(0)));
+					secondKey.select(comparatorsNames.indexOf(comp.get(1)));
+					thirdKey.select(comparatorsNames.indexOf(comp.get(1)));
+					fourthKey.select(comparatorsNames.indexOf(comp.get(1)));
+				} else if (comp.size() == 1) {
+					firstKey.select(comparatorsNames.indexOf(comp.get(0)));
+					secondKey.select(comparatorsNames.indexOf(comp.get(0)));
+					thirdKey.select(comparatorsNames.indexOf(comp.get(0)));
+					fourthKey.select(comparatorsNames.indexOf(comp.get(0)));
+				}
+				return;
+			}
+		}
+
+		// no default comparator found -> create one
+		defaultComparator = new CompositeComparator(
+				Messages.ComplexSortSelector_6, standardComparatorslist);
+		firstKey.select(0);
+		secondKey.select(0);
+		thirdKey.select(0);
+		fourthKey.select(0);
+		editor.getUserDefinedComparators().add(defaultComparator);
+		editor.setCurrentComparator(defaultComparator);
+		editor.sort();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/ComplexSortSelector.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/preferences/TXMDirectoryFieldEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/preferences/TXMDirectoryFieldEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/preferences/TXMDirectoryFieldEditor.java	(revision 122)
@@ -0,0 +1,59 @@
+package org.txm.rcpapplication.swt.widget.preferences;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.utils.logger.Log;
+
+public class TXMDirectoryFieldEditor extends DirectoryFieldEditor {
+
+	Button openModelDirectoryButton;
+	
+	public TXMDirectoryFieldEditor() {
+		// TODO Auto-generated constructor stub
+	}
+
+	public TXMDirectoryFieldEditor(String name, String labelText,
+			Composite parent) {
+		super(name, labelText, parent);
+		
+		GridLayout gl = (GridLayout) parent.getLayout();
+		//System.out.println("GL size "+gl.numColumns);
+		setChangeButtonText("..."); //$NON-NLS-1$
+		
+		Button changeButton = getChangeControl(parent);
+		changeButton.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
+		
+		openModelDirectoryButton = new Button(parent, SWT.PUSH);
+		openModelDirectoryButton.setText("Open...");
+		openModelDirectoryButton.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
+		openModelDirectoryButton.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				try {
+					Desktop.getDesktop().open(new File(getTextControl().getText()));
+				} catch (IOException e1) {
+					System.out.println("Error while opening model path directory: "+e1); //$NON-NLS-1$
+					Log.printStackTrace(e1);
+				}
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {}
+		});
+	}
+	
+	@Override
+	public int getNumberOfControls() {
+		return super.getNumberOfControls() + 1;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/preferences/TXMDirectoryFieldEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/MultipleSelectionCombo.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/MultipleSelectionCombo.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/MultipleSelectionCombo.java	(revision 122)
@@ -0,0 +1,138 @@
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.KeyEvent;
+import org.eclipse.swt.events.KeyListener;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.ShellAdapter;
+import org.eclipse.swt.events.ShellEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.List;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * http://www.ibm.com/developerworks/cn/opensource/os-cn-swtmulti/index.html?ca=drs-cn-1022
+ */
+public class MultipleSelectionCombo extends Composite {
+	Text displayText = null;
+	String[] comboItems = null;
+	int[] comboSelection = null;
+	Shell floatShell = null;
+	List list = null;
+	Button dropButton = null;
+	public MultipleSelectionCombo(Composite parent, String[] items,
+			int[] selection, int style) {
+		super(parent, style);
+		comboSelection = selection;
+		comboItems = items;
+		init();
+	}
+	private void init() {
+		GridLayout layout = new GridLayout();
+		layout.marginBottom = 0;
+		layout.marginTop = 0;
+		layout.marginLeft = 0;
+		layout.marginRight = 0;
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		setLayout(layout);
+		displayText = new Text(this, SWT.BORDER);
+		displayText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		displayText.addMouseListener(new MouseAdapter() {
+			public void mouseDown(MouseEvent event) {
+				super.mouseDown(event);
+				initFloatShell();
+			}
+		});
+	}
+	private void initFloatShell() {
+		Point p = displayText.getParent().toDisplay(displayText.getLocation());
+		Point size = displayText.getSize();
+		Rectangle shellRect = new Rectangle(p.x, p.y + size.y, size.x, 0);
+		floatShell = new Shell(MultipleSelectionCombo.this.getShell(),
+				SWT.NO_TRIM);
+		GridLayout gl = new GridLayout();
+		gl.marginBottom = 2;
+		gl.marginTop = 2;
+		gl.marginRight = 0;
+		gl.marginLeft = 0;
+		gl.marginWidth = 0;
+		gl.marginHeight = 0;
+		floatShell.setLayout(gl);
+		list = new List(floatShell, SWT.BORDER | SWT.MULTI | SWT.H_SCROLL
+				| SWT.V_SCROLL);
+		for (String value : comboItems) {
+			list.add(value);
+		}
+		list.setSelection(comboSelection);
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		list.setLayoutData(gd);
+		floatShell.setSize(shellRect.width, 100);
+		floatShell.setLocation(shellRect.x, shellRect.y);
+		list.addMouseListener(new MouseAdapter() {
+			public void mouseUp(MouseEvent event) {
+				super.mouseUp(event);
+				comboSelection = list.getSelectionIndices();
+				if ((event.stateMask & SWT.CTRL) == 0) {
+					floatShell.dispose();
+					displayText();
+				}
+			}
+		});
+		list.addKeyListener(new KeyListener() {
+			
+			@Override
+			public void keyReleased(KeyEvent e) {}
+			
+			@Override
+			public void keyPressed(KeyEvent e) {
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					comboSelection = list.getSelectionIndices();
+					
+						floatShell.dispose();
+						displayText();
+					
+				}
+			}
+		});
+		floatShell.addShellListener(new ShellAdapter() {
+			public void shellDeactivated(ShellEvent arg0) {
+				if (floatShell != null && !floatShell.isDisposed()) {
+					comboSelection = list.getSelectionIndices();
+					displayText();
+					floatShell.dispose();
+				}
+			}
+		});
+		floatShell.open();
+	}
+	private void displayText() {
+		if (comboSelection != null && comboSelection.length > 0) {
+			StringBuffer sb = new StringBuffer();
+			for (int i = 0; i < comboSelection.length; i++) {
+				if (i > 0)
+					sb.append(",");
+				sb.append(comboItems[comboSelection[i]]);
+			}
+			displayText.setText(sb.toString());
+		} else {
+			displayText.setText("");
+		}
+	}
+	public void setText(String text) {
+		displayText.setText(text);
+	}
+	public String getText() {
+		return displayText.getText();
+	}
+	public Text getTextWidget() {
+		return displayText;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/MultipleSelectionCombo.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PartitionComposer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PartitionComposer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PartitionComposer.java	(revision 122)
@@ -0,0 +1,625 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.searchengine.cqp.corpus.query.QueryPart;
+// TODO: Auto-generated Javadoc
+/**
+ * used for assisted mode of partition creation @ author mdecorde.
+ */
+public class PartitionComposer extends Composite {
+
+	/** The self. */
+	PartitionComposer self;
+	
+	/** The struct combo. */
+	Combo structCombo;
+	
+	/** The prop combo. */
+	Combo propCombo;
+	
+	/** The available list. */
+	org.eclipse.swt.widgets.List availableList;
+
+	/** The parts. */
+	List<PartItem> parts = new ArrayList<PartItem>();
+
+	/** The corpus. */
+	Corpus corpus;
+	
+	/** The structure. */
+	StructuralUnit structure;
+	
+	/** The property. */
+	StructuralUnitProperty property;
+
+	/** The btn area. */
+	Composite parent, partArea, firstArea, dispoArea, btnArea;
+
+	private ScrolledComposite sc1;
+
+	/**
+	 * Instantiates a new partition composer.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 * @param corpus the corpus
+	 */
+	public PartitionComposer(Composite parent, int style, Corpus corpus) {
+		super(parent, style);
+		self = this;
+		this.setLayout(new GridLayout(1, true));
+		this.corpus = corpus;
+
+		firstArea = new Composite(this, SWT.NONE);
+		firstArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		dispoArea = new Composite(this, SWT.NONE);
+		dispoArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				true, false));
+		btnArea = new Composite(this, SWT.NONE);
+		btnArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				false));
+		
+		sc1 = new ScrolledComposite(this, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+		sc1.setLayout(new GridLayout(1, true));
+		sc1.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
+		sc1.setExpandHorizontal( true );
+		sc1.setExpandVertical( true );
+		sc1.setMinSize( 0, 250 );
+		
+		partArea = new Composite(sc1, SWT.NONE);
+		sc1.setContent(partArea);
+		partArea.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+				true));
+
+		// struct&prop
+		RowLayout layout = new RowLayout();
+		layout.center = true;
+		firstArea.setLayout(layout);
+		Label structLabel = new Label(firstArea, SWT.NONE);
+		structLabel.setText(Messages.PartitionComposer_0);
+		structCombo = new Combo(firstArea, SWT.READ_ONLY | SWT.SINGLE);
+		try {
+			List<StructuralUnit> sus = corpus.getOrderedStructuralUnits();
+			Collections.sort(sus);
+			for (StructuralUnit su : sus) {
+				if (su.getName().equals("txmcorpus")) continue;
+				structCombo.add(su.getName());
+			}
+			getStructure();
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return;
+		}
+
+		if (structCombo.getItemCount() > 0) {
+			structCombo.select(0);
+			String[] items = structCombo.getItems();
+			for(int i = 0 ; i < items.length ; i++)
+				if (items[i].equals("text")) //$NON-NLS-1$
+				{
+					structCombo.select(i);
+					break;
+				}
+		}
+
+		structCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				reloadProperties();
+				updateDisplay();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		Label propLabel = new Label(firstArea, SWT.NONE);
+		propLabel.setText(Messages.LexicalTable_1);
+
+		propCombo = new Combo(firstArea, SWT.READ_ONLY | SWT.SINGLE);
+		reloadProperties();
+
+		propCombo.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				reloadPropertyValues();
+				updateDisplay();
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// dispo
+		GridLayout layout2 = new GridLayout(2, false);
+		dispoArea.setLayout(layout2);
+		Label dispoLabel = new Label(dispoArea, SWT.NONE);
+		dispoLabel.setText(Messages.PartitionComposer_2);
+		dispoLabel.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+				false, false));
+		availableList = new org.eclipse.swt.widgets.List(dispoArea, SWT.MULTI
+				| SWT.READ_ONLY | SWT.V_SCROLL | SWT.BORDER);
+		GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
+		data.heightHint = 10 * availableList.getItemHeight();
+		availableList.setLayoutData(data);
+		reloadPropertyValues();
+
+		// btn
+		btnArea.setLayout(new RowLayout());
+		Button addPart = new Button(btnArea, SWT.PUSH);
+		addPart.setText(Messages.PartitionComposer_3);
+		addPart.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				//System.out.println(Messages.PartitionComposer_4);
+				PartItem p = new PartItem(partArea, SWT.BORDER, self);
+				GridData gdata = new GridData(GridData.FILL, GridData.FILL, true, true);
+				gdata.minimumHeight = 200;
+				p.setLayoutData(gdata);
+				p.setTitle(Messages.PartitionComposer_5 + (parts.size() + 1));
+				parts.add(p);
+				partArea.layout(true);
+				updateDisplay();
+				sc1.setMinSize(partArea.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		Button rmvPart = new Button(btnArea, SWT.PUSH);
+		rmvPart.setText(Messages.PartitionComposer_6);
+		rmvPart.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				for (PartItem p : parts) {
+					for (String s : p.getColumns())
+						self.add(s);
+					p.dispose();
+				}
+				availableList.update();
+				parts.clear();
+				updateDisplay();
+				sc1.setMinSize(partArea.computeSize(SWT.DEFAULT, SWT.DEFAULT));
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		// parts
+		partArea.setLayout(new GridLayout(3, false));
+		PartItem p = new PartItem(partArea, SWT.BORDER, self);
+		GridData gdata = new GridData(GridData.FILL, GridData.FILL, true, true);
+		gdata.minimumHeight = 200;
+		p.setLayoutData(gdata);
+		p.setTitle(Messages.PartitionComposer_5 + (parts.size() + 1));
+		parts.add(p);
+
+	}
+
+	/**
+	 * Update display.
+	 */
+	public void updateDisplay() {
+		firstArea.layout();
+		dispoArea.layout();
+		partArea.layout();
+		btnArea.layout();
+		super.getParent().layout();
+		super.getParent().getParent().layout();
+	}
+
+	/**
+	 * Reload properties.
+	 */
+	protected void reloadProperties() {
+		if (propCombo == null) return;
+		
+		propCombo.removeAll();
+		StructuralUnit su = getStructure();
+		List<StructuralUnitProperty> sups = su.getOrderedProperties();
+		Collections.sort(sups);
+		for (StructuralUnitProperty sup : sups) {
+			if (su.getName().equals("text") && (sup.getName().equals("base") || sup.getName().equals("project")) ) continue;
+			
+			propCombo.add(sup.getName());
+		}
+		
+		if (propCombo.getItemCount() > 0) {
+			propCombo.select(0);
+			String[] items = propCombo.getItems();
+			for (int i = 0 ; i < items.length ; i++)
+				if (items[i].equals("id")) { //$NON-NLS-1$
+					propCombo.select(i);
+					break;
+				}
+		}
+		propCombo.layout();
+
+		reloadPropertyValues();
+	}
+
+	/**
+	 * Removes the.
+	 *
+	 * @param values the values
+	 */
+	protected void remove(List<String> values) {
+		for (String s : values)
+			this.availableList.remove(s);
+		availableList.update();
+	}
+
+	/**
+	 * Adds the.
+	 *
+	 * @param s the s
+	 */
+	protected void add(String s) {
+		this.availableList.add(s);
+		availableList.update();
+	}
+
+	/**
+	 * Reload property values.
+	 */
+	private void reloadPropertyValues() {
+		if (availableList == null) return;
+		
+		String[] items;
+		availableList.removeAll();
+		try {
+			List<String> plist = getProperty().getOrderedValues(this.corpus);
+			Collections.sort(plist);
+			items = new String[plist.size()];
+			for (int i = 0; i < plist.size(); i++) {
+				items[i] = plist.get(i);
+			}
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return;
+		}
+
+		availableList.setItems(items);
+		availableList.setSize(400, 300);
+
+		for (PartItem p : parts) {
+			p.removeAll();
+		}
+		
+		availableList.update();
+		self.layout(true);
+		self.getParent().layout(true);
+	}
+
+	/**
+	 * Gets the structure.
+	 *
+	 * @return the structure
+	 */
+	public StructuralUnit getStructure() {
+		try {
+			int index = structCombo.getSelectionIndex();
+			if (index < 0)
+				if (structCombo.getItemCount() > 0)
+					index = 0;
+				else
+					return null;
+			structure = corpus.getStructuralUnit(structCombo.getItem(index));
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return null;
+		}
+		return structure;
+	}
+
+	/**
+	 * Gets the property.
+	 *
+	 * @return the property
+	 */
+	public StructuralUnitProperty getProperty() {
+		if (getStructure() == null)
+			return null;
+		int index = propCombo.getSelectionIndex();
+		if (index < 0)
+			if (propCombo.getItemCount() > 0)
+				index = 0;
+			else
+				return null;
+		property = structure.getProperty(propCombo.getItem(index));
+		return property;
+	}
+
+	/**
+	 * Gets the part queries.
+	 *
+	 * @return the part queries
+	 */
+	public List<String> getPartQueries() {
+		ArrayList<String> queries = new ArrayList<String>();
+		for (PartItem p : parts)
+			queries.add(p.getQuery());
+		return queries;
+	}
+
+	/**
+	 * Gets the selection.
+	 *
+	 * @return the selection
+	 */
+	public List<String> getSelection() {
+		return Arrays.asList(availableList.getSelection());
+	}
+
+	/**
+	 * The Class PartItem.
+	 */
+	class PartItem extends Composite {
+		
+		/** The composer. */
+		PartitionComposer composer;
+		
+		/** The columns. */
+		org.eclipse.swt.widgets.List columns;
+		
+		/** The title. */
+		Text title;
+		
+		/** The self p. */
+		PartItem selfP;
+
+		/**
+		 * Instantiates a new part item.
+		 *
+		 * @param parent the parent
+		 * @param style the style
+		 * @param _composer the _composer
+		 */
+		public PartItem(Composite parent, int style, PartitionComposer _composer) {
+			super(parent, style);
+			selfP = this;
+			this.composer = _composer;
+			this.setLayout(new GridLayout(4, false));
+
+			Label titleLabel = new Label(this, SWT.NONE);
+			titleLabel.setLayoutData(new GridData(GridData.FILL,
+					GridData.CENTER, false, false, 1, 1));
+			titleLabel.setText(Messages.PartitionComposer_8);
+			Font f = titleLabel.getFont();
+			FontData defaultFont = f.getFontData()[0];
+			defaultFont.setStyle(SWT.BOLD);
+			Font newf = new Font(titleLabel.getDisplay(), defaultFont);
+			titleLabel.setFont(newf);
+
+			title = new Text(this, SWT.BORDER);
+			title.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false, 2, 1));
+
+			Button delete = new Button(this, SWT.PUSH);
+			delete.setImage(IImageKeys.getImage(IImageKeys.ACTION_DELETE));
+			delete.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					false, false, 1, 1));
+			delete.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					PartItem p = selfP;
+
+					for (String s : p.getColumns())
+						self.add(s);
+					parts.remove(selfP);
+					p.dispose();
+
+					availableList.update();
+					updateDisplay();
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+			Button add = new Button(this, SWT.PUSH);
+			add.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+					false, 2, 1));
+			add.setText(Messages.PartitionComposer_9);
+			add.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					//System.out.println(Messages.bind(Messages.PartitionComposer_10, composer.getSelection()));
+					for (String s : composer.getSelection())
+						columns.add(s);
+					composer.remove(composer.getSelection());
+					layout(true);
+					if (composer.availableList.getItemCount() > 0)
+						composer.availableList.select(0);
+					composer.layout(true);
+					updateDisplay();
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+			Button rmv = new Button(this, SWT.PUSH);
+			rmv.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true,
+					false, 2, 1));
+			rmv.setText(Messages.PartitionComposer_11);
+			rmv.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					//System.out.println(Messages.bind(Messages.PartitionComposer_12, getSelection()));
+					for (String s : getSelection())
+						composer.add(s);
+
+					for (String s : getSelection())
+						columns.remove(s);
+					layout(true);
+					composer.layout(true);
+					composer.getParent().layout(true);
+					availableList.update();
+					updateDisplay();
+
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) {
+				}
+			});
+
+			columns = new org.eclipse.swt.widgets.List(this, SWT.MULTI
+					| SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL);
+			columns.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, true, 4, 1));
+			columns.setSize(200, 300);
+		}
+
+		/**
+		 * Removes the all.
+		 */
+		public void removeAll() {
+			columns.removeAll();
+		}
+
+		/**
+		 * Sets the title.
+		 *
+		 * @param string the new title
+		 */
+		public void setTitle(String string) {
+			this.title.setText(string);
+		}
+
+		/**
+		 * Gets the columns.
+		 *
+		 * @return the columns
+		 */
+		public String[] getColumns() {
+			return columns.getItems();
+		}
+
+		/**
+		 * Gets the query.
+		 *
+		 * @return the query
+		 */
+		public String getQuery() {
+			return getSelection().toString();
+		}
+
+		/**
+		 * Gets the selection.
+		 *
+		 * @return the selection
+		 */
+		public List<String> getSelection() {
+			return Arrays.asList(columns.getSelection());
+		}
+	}
+
+	/**
+	 * Gets the partition.
+	 *
+	 * @return the partition
+	 */
+	public Partition getPartition() {
+		if (this.parts.size() == 0) {
+			System.out.println(Messages.PartitionComposer_1);
+			return null;
+		}
+		
+		List<String> queries = new ArrayList<String>();
+		List<String> partnames = new ArrayList<String>();
+		for (PartItem part : this.parts) {
+			if (part.columns.getItemCount() > 0) {
+				String value = ""; //$NON-NLS-1$
+				for (String s : part.columns.getItems())
+					value += Query.addBackSlash(s) + "|"; //$NON-NLS-1$
+				value = value.substring(0, value.length() - 1);
+				QueryPart q = new QueryPart(structure, property, value);
+				queries.add(q.getQueryString());
+				partnames.add(part.title.getText());
+			}
+		}
+
+		try {
+			Partition p = corpus.createPartition("", queries, partnames); //$NON-NLS-1$
+			return p;
+		} catch (CqiClientException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Checks for unassigned.
+	 *
+	 * @return true, if successful
+	 */
+	public boolean hasUnassigned() {
+		return this.availableList.getItemCount() > 0;
+	}
+
+	public String getGeneratedName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/PartitionComposer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LongStringField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LongStringField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LongStringField.java	(revision 122)
@@ -0,0 +1,45 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class LongStringField extends ParameterField {
+	Text dt;
+	public LongStringField(Composite parent, int style, NamedOptionDef param) {
+		super(parent, style, param);
+		this.setLayout(new GridLayout(2, false));
+		this.setLayoutData(new GridData(SWT.FILL, SWT.FILL,true, true));
+		
+		Label l = new Label(this, SWT.NONE);
+		l.setAlignment(SWT.RIGHT);
+		l.setText(getWidgetLabel());
+		l.setToolTipText(getWidgetUsage());
+		GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
+		gd.widthHint = 100;
+		l.setLayoutData(gd);
+		
+		dt = new Text(this, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL);
+	    dt.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+	    dt.setSize(200, 200);
+	    resetToDefault();
+	}
+
+	public String getWidgetValue() {
+		return dt.getText();
+	}
+
+	@Override
+	public void setDefault(String value) {
+		dt.setText(value);
+	}
+
+	@Override
+	public void resetToDefault() {
+		 dt.setText(getWidgetDefault());
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LongStringField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IParameterField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IParameterField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IParameterField.java	(revision 122)
@@ -0,0 +1,5 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+public interface IParameterField {
+	public Object getWidgetValue();
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IParameterField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/UIParameterException.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/UIParameterException.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/UIParameterException.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.txm.rcpapplication.Messages;
+
+public class UIParameterException extends IllegalArgumentException {
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -8914778777358750878L;
+	
+	/**
+	 * If true then the parameter dialog fields went wrong
+	 */
+	private boolean error;
+
+	public UIParameterException(boolean error) {
+		super(Messages.UIParameterException_0+true);
+		this.error = error;
+	}
+	
+	
+	public boolean isError() {
+		return error;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/UIParameterException.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IntegerField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IntegerField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IntegerField.java	(revision 122)
@@ -0,0 +1,46 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Spinner;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class IntegerField extends LabelField {
+	Spinner dt;
+	public IntegerField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		
+		dt = new Spinner(this, SWT.BORDER);
+		dt.setMinimum(Integer.MIN_VALUE);
+		dt.setMaximum(Integer.MAX_VALUE);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
+		resetToDefault();
+	}
+
+	public Integer getWidgetValue() {
+		return dt.getSelection();
+	}
+	
+	
+	public void setDefault(String text) {
+		try {
+			dt.setSelection(Integer.parseInt(text));
+		} catch(Exception e) {
+			System.out.println("Cannot set IntegerField with default properties value="+text+": "+e);
+		}
+	}
+
+	@Override
+	public void resetToDefault() {
+		if (getWidgetDefault().length() > 0) {
+			try {
+				dt.setSelection(Integer.parseInt(getWidgetDefault()));
+			} catch (Exception e) {
+				System.out.println("Cannot set IntegerField with default value="+getWidgetDefault()+": "+e);
+			}
+		}  else {
+			dt.setSelection(0);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/IntegerField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/TimeField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/TimeField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/TimeField.java	(revision 122)
@@ -0,0 +1,53 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.util.Date;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DateTime;
+import org.eclipse.swt.widgets.Label;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class TimeField extends ParameterField {
+	DateTime dt;
+	public TimeField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		this.setLayout(new RowLayout(SWT.HORIZONTAL));
+		this.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
+		
+		Label l = new Label(this, SWT.NONE);
+		l.setAlignment(SWT.RIGHT);
+		l.setText(getWidgetLabel());
+		l.setToolTipText(getWidgetUsage());
+		GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
+		gd.widthHint = 100;
+		l.setLayoutData(gd);
+		
+		dt = new DateTime(this, SWT.TIME);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+	}
+
+	public Date getWidgetValue() {
+		int day = dt.getDay(); // Calendar.DAY_OF_MONTH
+		int hour = dt.getHours(); // Calendar.HOUR_OF_DAY
+		int min = dt.getMinutes(); // Calendar.MINUTE
+		int month = dt.getMonth(); // Calendar.MONTH
+		int second = dt.getSeconds(); // Calendar.SECOND
+		int year = dt.getYear(); // Calendar.YEAR
+		//TODO: not implemented
+		//System.out.println("year="+year+" month="+month+" day="+day+ " hour="+hour+" min="+min+" sec="+second); 
+		return null;
+	}
+
+	@Override
+	public void setDefault(String value) {
+		//TODO: not implemented
+	}
+
+	@Override
+	public void resetToDefault() {
+		//TODO: not implemented
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/TimeField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CreateFileField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CreateFileField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CreateFileField.java	(revision 122)
@@ -0,0 +1,67 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class CreateFileField extends LabelField {
+	Text t;
+	public CreateFileField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		this.setLayout(new GridLayout(3, false)); // has 3 cells
+		
+		t = new Text(this, SWT.SINGLE | SWT.BORDER);
+		t.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		t.setText(getWidgetDefault());
+		Button b = new Button(this, SWT.PUSH);
+		b.setText("..."); //$NON-NLS-1$
+		b.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				String  value = null;
+				FileDialog d = new FileDialog(CreateFileField.this.getShell(), SWT.SAVE);
+				try {
+					File f = new File(t.getText()).getCanonicalFile();
+					//System.out.println(f);
+					d.setFilterPath(f.getParent());
+					d.setFileName(f.getName());
+				} catch (IOException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+				
+				value = d.open();
+				if (value != null) t.setText(value);
+			}
+		});
+	}
+
+	public File getWidgetValue() {
+		String value = t.getText();
+		if (value != null && value.trim().length() > 0) {
+			File ret = new File(value.trim());
+			return ret;
+		}
+		return null;
+	}
+	
+	public void setDefault(String text) {
+		t.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		t.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CreateFileField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/AScript.groovy
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/AScript.groovy	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/AScript.groovy	(revision 122)
@@ -0,0 +1,43 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+import org.kohsuke.args4j.*
+import groovy.transform.Field
+import org.txm.rcpapplication.swt.widget.parameters.ParametersDialog
+
+@Field @Option(name="file", usage="a file", widget="File", required=true, def="aFile.ext")
+def file
+
+@Field @Option(name="dir", usage="a directory", widget="Folder", def="TEMP")
+def dir
+
+@Field @Option(name="ii", usage="an integer", widget="Integer", def="42")
+def ii = 0
+
+@Field @Option(name="f", usage="a float", widget="Float", def="42.42")
+def f = 0
+
+@Field @Option(name="shs", usage="a one line string", widget="String", def="default value")
+def shs = 0
+
+@Field @Option(name="ls", usage="a very long string with carriage return and stuffs", widget="Text", def="default\nvalue")
+def ls = 0
+
+@Field @Option(name="q", usage="a CQL", widget="Query", def="\"je\"")
+def q
+
+@Field @Option(name="date", usage="a date", widget="Date", def="1984-09-01")
+def date
+
+@Field @Option(name="bool", usage="a boolean", widget="Boolean", def="true")
+def bool
+
+if (!ParametersDialog.open(this)) return;
+
+println " RUNNING SCRIPT" //$NON-NLS-1$
+println "file $file" //$NON-NLS-1$
+println "dir $dir" //$NON-NLS-1$
+println "ii $ii" //$NON-NLS-1$
+println "f $f" //$NON-NLS-1$
+println "shs $shs" //$NON-NLS-1$
+println "ls $ls" //$NON-NLS-1$
+println "q $q" //$NON-NLS-1$
+println "date $date" //$NON-NLS-1$
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FloatField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FloatField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FloatField.java	(revision 122)
@@ -0,0 +1,38 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+import org.txm.rcpapplication.Messages;
+
+public class FloatField extends LabelField {
+	Text dt;
+	public FloatField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		dt = new Text(this, SWT.SINGLE | SWT.BORDER);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		resetToDefault();
+	}
+
+	public Float getWidgetValue() {
+		try {
+			return Float.parseFloat(dt.getText());
+		} catch (Exception e) { 
+			System.out.println(Messages.ApplicationWorkbenchAdvisor_29+e.getMessage());
+		}
+		return null;
+	}
+	
+	
+	public void setDefault(String text) {
+		dt.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FloatField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/QueryField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/QueryField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/QueryField.java	(revision 122)
@@ -0,0 +1,54 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.kohsuke.args4j.NamedOptionDef;
+import org.txm.rcpapplication.swt.widget.QueryWidget;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+public class QueryField extends ParameterField {
+	QueryWidget w;
+	
+	public QueryField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		this.setLayout(new GridLayout(2, false));
+		this.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
+
+		Label l = new Label(this, SWT.NONE);
+		l.setAlignment(SWT.RIGHT);
+		l.setText(getWidgetLabel());
+		l.setToolTipText(getWidgetUsage());
+		GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
+		gd.widthHint = 100;
+		l.setLayoutData(gd);
+
+		w = new QueryWidget(this, SWT.BORDER);
+		w.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		resetToDefault();
+	}
+
+	public Query getWidgetValue() {
+		return w.getQuery();
+	}
+
+	@Override
+	public void setDefault(String value) {
+		w.setText(value);
+	}
+
+	@Override
+	public void resetToDefault() {
+		if (getWidgetDefault().length() > 0) {
+			try {
+				w.setText(getWidgetDefault());
+			} catch(Exception e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		} else {
+			w.setText("");
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/QueryField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayField.java	(revision 122)
@@ -0,0 +1,35 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class StringArrayField extends LabelField {
+	Combo dt;
+	public StringArrayField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		dt = new Combo(this, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		
+		String[] values = getMetaVar().trim().split("\t");
+		dt.setItems(values);
+		
+		resetToDefault();
+	}
+
+	public String getWidgetValue() {
+		return dt.getText();
+	}
+
+	public void setDefault(String text) {
+		dt.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringField.java	(revision 122)
@@ -0,0 +1,31 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class StringField extends LabelField {
+	Text dt;
+	public StringField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		dt = new Text(this, SWT.SINGLE | SWT.BORDER);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		resetToDefault();
+	}
+
+	public String getWidgetValue() {
+		return dt.getText();
+	}
+
+	public void setDefault(String text) {
+		dt.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FolderField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FolderField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FolderField.java	(revision 122)
@@ -0,0 +1,58 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.io.File;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class FolderField extends LabelField {
+	Text t;
+	public FolderField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		
+		this.setLayout(new GridLayout(3, false)); // has 3 cells
+		
+		t = new Text(this, SWT.SINGLE | SWT.BORDER);
+		t.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		resetToDefault();
+		
+		Button b = new Button(this, SWT.PUSH);
+		b.setText("..."); //$NON-NLS-1$
+		b.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				String  value = null;
+				DirectoryDialog d = new DirectoryDialog(FolderField.this.getShell());
+				d.setFilterPath(t.getText());
+				value = d.open();
+				if (value != null) t.setText(value);
+			}
+		});
+	}
+
+	public File getWidgetValue() {
+		String value = t.getText();
+		if (value != null && value.trim().length() > 0) {
+			return new File(value.trim());
+		}
+		return null;
+	}
+	
+	
+	public void setDefault(String text) {
+		t.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		t.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FolderField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/DateField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/DateField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/DateField.java	(revision 122)
@@ -0,0 +1,61 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DateTime;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class DateField extends LabelField {
+	DateTime dt;
+	public static String STRINGFORMAT = "yyyy-MM-dd";
+	public static SimpleDateFormat formater = new SimpleDateFormat(STRINGFORMAT); //$NON-NLS-1$
+	public DateField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		dt = new DateTime(this, SWT.DATE | SWT.BORDER);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		
+	}
+
+	public Date getWidgetValue() {
+		int day = dt.getDay(); // Calendar.DAY_OF_MONTH
+		int month = dt.getMonth(); // Calendar.MONTH
+		int year = dt.getYear(); // Calendar.YEAR
+
+		//System.out.println("year="+year+" month="+month+" day="+day+ " hour="+hour+" min="+min+" sec="+second); 
+
+		try {
+			return formater.parse(""+year+"-"+month+"-"+day); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (ParseException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return null;
+		}
+	}
+	
+	
+	public void setDefault(String text) {
+		//t.setText(text);
+		//TODO: not implemented
+	}
+
+	@Override
+	public void resetToDefault() {
+		if (getWidgetDefault().length() > 0) {
+			try {
+				Date date = formater.parse(getWidgetDefault());
+				dt.setYear(date.getYear());
+				dt.setMonth(date.getMonth());
+				dt.setDay(date.getDay());
+			} catch(Exception e) {
+				System.out.println("Failed to set default value with: "+getWidgetDefault()+": "+e);
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/DateField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/BooleanField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/BooleanField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/BooleanField.java	(revision 122)
@@ -0,0 +1,40 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.kohsuke.args4j.NamedOptionDef;
+
+/**
+ * Check button + Label
+ * @author mdecorde
+ *
+ */
+public class BooleanField extends LabelField {
+	
+	Button dt;
+	
+	public BooleanField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		
+		dt = new Button(this, SWT.CHECK);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		//dt.setText(getWidgetLabel().replace(":", ""));
+		dt.setToolTipText(getWidgetUsage());
+		dt.setSelection("true".equals(getWidgetDefault())); //$NON-NLS-1$
+	}
+
+	public Boolean getWidgetValue() {
+		return dt.getSelection();
+	}
+	
+	public void setDefault(String text) {
+		dt.setSelection("true".equals(text));
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setSelection("true".equals(getWidgetDefault())); //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/BooleanField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FileField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FileField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FileField.java	(revision 122)
@@ -0,0 +1,69 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Text;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public class FileField extends LabelField {
+	Text t;
+	public FileField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		this.setLayout(new GridLayout(3, false)); // has 3 cells
+		
+		t = new Text(this, SWT.SINGLE | SWT.BORDER);
+		t.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		resetToDefault();
+		
+		Button b = new Button(this, SWT.PUSH);
+		b.setText("..."); //$NON-NLS-1$
+		b.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				String  value = null;
+				FileDialog d = new FileDialog(FileField.this.getShell());
+				try {
+					File f = new File(t.getText()).getCanonicalFile();
+					System.out.println(f);
+					d.setFilterPath(f.getParent());
+					d.setFileName(f.getName());
+				} catch (IOException e1) {
+					// TODO Auto-generated catch block
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+				}
+				
+				value = d.open();
+				if (value != null) t.setText(value);
+			}
+		});
+	}
+
+	public File getWidgetValue() {
+		String value = t.getText();
+		if (value != null && value.trim().length() > 0) {
+			File ret = new File(value.trim());
+			return ret;
+		}
+		return null;
+	}
+	
+	
+	public void setDefault(String text) {
+		t.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		t.setText(getWidgetDefault());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/FileField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LabelField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LabelField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LabelField.java	(revision 122)
@@ -0,0 +1,39 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.kohsuke.args4j.NamedOptionDef;
+
+/**
+ * Check button + Label
+ * @author mdecorde
+ *
+ */
+public abstract class LabelField extends ParameterField {
+	
+	Label l;
+	
+	public LabelField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+		this.setLayout(new GridLayout(2, false));
+		this.setLayoutData(new GridData(GridData.FILL, GridData.BEGINNING, true, false));
+		
+		l = new Label(this, SWT.NONE);
+		l.setAlignment(SWT.RIGHT);
+		l.setText(getWidgetLabel());
+		l.setToolTipText(getWidgetUsage());
+		GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
+		gd.widthHint = 100;
+		l.setLayoutData(gd);
+	}
+
+	public Object getWidgetValue() {
+		return null;
+	}
+	
+	@Override
+	public abstract void setDefault(String value);
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/LabelField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParametersDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParametersDialog.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParametersDialog.java	(revision 122)
@@ -0,0 +1,469 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.lang.reflect.Field;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.views.markers.internal.FieldSeverityAndMessage;
+import org.kohsuke.args4j.CmdLineParser;
+import org.kohsuke.args4j.NamedOptionDef;
+import org.kohsuke.args4j.spi.OptionHandler;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.utils.FitFontSize;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.logger.Log;
+
+@SuppressWarnings("rawtypes")
+public class ParametersDialog extends Dialog {
+	Object bean;
+	String script;
+	String title;
+
+	List<NamedOptionDef> parameters;	
+	List<String> fieldNames = new ArrayList<String>(); // store all the declared parameters names 
+	LinkedHashMap<String, ParameterField> widgets = new LinkedHashMap<String, ParameterField>();
+	protected boolean error = false;
+	protected Map args; // store values given by another Macro, if contains all the needed values, no dialog is shown
+	protected int numberOfParameters; // number of parameters to show in the dialog box (not set by 'args'), if 0 parameters no dialog is shown
+	protected boolean mustShowDialog; // show dialog if args.size == 0 OR if there is at least one mandatory field to set
+
+	HashMap<String, Object> values = new HashMap<String, Object>(); // store the values of the parameters (may not contains all the values needed
+	Properties defaultValues; // default values set by the .properties file
+	Properties defaultScriptValues = new Properties(); // default values set by the Groovy script @Field@def annotation attribute
+
+	File propFile;
+	//	private int titleWidth;
+	//	private Composite parent;
+
+	/**
+	 * 
+	 * @param parentShell
+	 * @param bean
+	 * @param allParameters all the scripts annotations
+	 * @param args pre-filled fields
+	 */
+	public ParametersDialog(Shell parentShell, Object bean, List<OptionHandler> allParameters, Map args) {
+		super(parentShell);
+		if (bean != null)
+			this.script = bean.getClass().getName();
+		this.parameters = new ArrayList<NamedOptionDef>();
+		this.bean = bean;
+		this.args = args;
+		setShellStyle(getShellStyle() | SWT.RESIZE);
+
+		// count the number of fields to show. If "0" then don't show the dialog, see the "open()" function
+		// and select only the NamedOptionDef annotations
+		numberOfParameters = 0; // number of parameters not set by args
+		int numberOfMandatoryFields = 0;
+		for (OptionHandler arg : allParameters) {
+			if (arg.option instanceof NamedOptionDef) {
+				NamedOptionDef option = (NamedOptionDef)arg.option;
+				this.parameters.add(option);
+				fieldNames.add(option.name());
+				if (args.containsKey(option.name())) {
+					continue; // don't show the field
+				}
+				if (option.required()) numberOfMandatoryFields++;
+				numberOfParameters++;
+			}
+		}
+
+		mustShowDialog = numberOfMandatoryFields > 0 || (args.size() == 0 && numberOfParameters > 0);
+
+		// initialize the properties file default values store
+		defaultValues = new Properties();
+		String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+		File currentRootDir = new File(scriptRootDir, "macro"); //$NON-NLS-1$
+
+		propFile = new File(currentRootDir, this.script.replace(".", "/")+".properties");
+
+		if (propFile.exists()) {
+			try {
+				defaultValues.load(new FileReader(propFile));
+				Log.info("Retrieve previous macro parameters from "+propFile+" values="+defaultValues.entrySet());
+			} catch (Exception e) {
+				System.out.println("Failed to load previous values from "+propFile+": "+e);
+				Log.printStackTrace(e);
+			}
+		}
+
+		//initialize the script defautl values
+		for (NamedOptionDef option : this.parameters) {
+			String widgetName = option.widget();
+			String stringValue = option.def();
+			Object value = null;
+			if ("File".equals(widgetName) || "FileOpen".equals(widgetName)) { //$NON-NLS-1$
+				value = new File(stringValue);
+			} else if ("CreateFile".equals(widgetName) || "FileSave".equals(widgetName)) { //$NON-NLS-1$
+				value = new File(stringValue);
+			} else if ("Folder".equals(widgetName)) { //$NON-NLS-1$
+				value = new File(stringValue);
+			} else if ("Query".equals(widgetName)) { //$NON-NLS-1$
+				value = new Query(stringValue);
+			} else if ("Date".equals(widgetName)) { //$NON-NLS-1$
+				try {
+					value = DateField.formater.parse(stringValue);
+				} catch (ParseException e) {
+					System.out.println("Wrong default date format: "+stringValue+". Waiting for: "+DateField.STRINGFORMAT+". Error = "+e);
+					value = new Date();
+				}
+			}  else if ("Time".equals(widgetName)) { //$NON-NLS-1$
+				value = Integer.parseInt(stringValue);
+			} else if ("String".equals(widgetName)) { //$NON-NLS-1$
+				value = stringValue;
+			} else if ("StringArray".equals(widgetName)) { //$NON-NLS-1$
+				value = stringValue;
+			} else if ("StringArrayMultiple".equals(widgetName)) { //$NON-NLS-1$
+				value = stringValue;
+			} else if ("StructuralUnits".equals(widgetName)) { //$NON-NLS-1$
+				value = stringValue;
+			} else if ("Text".equals(widgetName)) { //$NON-NLS-1$
+				value = stringValue;
+			} else if ("Integer".equals(widgetName)) { //$NON-NLS-1$
+				value = Integer.parseInt(stringValue);
+			} else if ("Float".equals(widgetName)) { //$NON-NLS-1$
+				value = Float.parseFloat(stringValue);
+			} else if ("Boolean".equals(widgetName)) { //$NON-NLS-1$
+				value = Boolean.parseBoolean(stringValue);
+			} else {
+				System.out.println(Messages.ParametersDialog_10+widgetName+Messages.FileTreeContentProvider_4);
+			}
+		}
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+	 */
+	@Override
+	protected void configureShell(Shell newShell) {
+		super.configureShell(newShell);
+		int idx2 = script.lastIndexOf("Macro");
+		if (idx2 < 0) idx2 = script.length();
+		title = Messages.bind(Messages.ParametersDialog_0,script.substring(script.lastIndexOf(".")+1, idx2));
+		newShell.setText(title);
+	}
+
+	protected void createButtonsForButtonBar(Composite parent) {
+		//create the reset button (hack of the Back button)
+		Button button = createButton(parent, IDialogConstants.BACK_ID,
+				"Reset values", false);
+		button.removeListener(SWT.Selection, button.getListeners(SWT.Selection)[0]);
+
+		button.addSelectionListener(new SelectionAdapter() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				//System.out.println("Reseting fields to default values");
+				for (String k : widgets.keySet()) {
+					widgets.get(k).resetToDefault();
+				}
+			}
+		});
+		if (numberOfParameters == 0) button.setEnabled(false);
+
+		super.createButtonsForButtonBar(parent);
+		this.getButton(IDialogConstants.OK_ID).setText(Messages.ParametersDialog_1);
+	}
+
+	protected Control createButtonBar(Composite parent) {
+		Control c = super.createButtonBar(parent);
+
+		//		int barWidth = c.getSize().x;
+		//		if (barWidth > titleWidth) {
+		//			GridData cdata = (GridData)(this.parent.getLayoutData());
+		//			cdata.widthHint = barWidth;
+		//		}
+
+		return c;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	protected Control createDialogArea(Composite composite) {
+		//this.parent = composite;
+		super.createDialogArea(composite);
+
+		GridLayout layout = new GridLayout(1, true);
+		composite.setLayout(layout);
+
+		//TODO: this width initialization does not works : it does not depends on the buttonBar width
+		//		GridData cdata = (GridData)(composite.getLayoutData());
+		//		titleWidth = FitFontSize.calculate(composite, title) + 100;
+		//		cdata.widthHint = titleWidth;
+
+		// initialize each widget + default value *of the widget*
+		for (NamedOptionDef option : parameters) {
+			//if (arg.option instanceof NamedOptionDef) {
+
+			//NamedOptionDef option = (NamedOptionDef)arg.option;
+
+			// if the 'args' contains a value filled by another Macro, don't show the widget
+			if (args.containsKey(option.name())) {
+				//System.out.println("Args contains '"+option.name()+"' with value '"+args.get(option.name())+"'");
+				continue; // don't show the field
+			}
+
+			// each widget is initialized with de default value set in @Field@def attribute
+			String widgetName = option.widget();
+			ParameterField widget = null;
+			if ("File".equals(widgetName) || "FileOpen".equals(widgetName)) { //$NON-NLS-1$
+				widget = new FileField(composite, SWT.NONE, option);
+			} else if ("CreateFile".equals(widgetName) || "FileSave".equals(widgetName)) { //$NON-NLS-1$
+				widget = new CreateFileField(composite, SWT.NONE, option);
+			} else if ("Folder".equals(widgetName)) { //$NON-NLS-1$
+				widget = new FolderField(composite, SWT.NONE, option);
+			} else if ("Query".equals(widgetName)) { //$NON-NLS-1$
+				widget = new QueryField(composite, SWT.NONE, option);
+			} else if ("Date".equals(widgetName)) { //$NON-NLS-1$
+				widget = new DateField(composite, SWT.NONE, option);
+			}  else if ("Time".equals(widgetName)) { //$NON-NLS-1$
+				widget = new TimeField(composite, SWT.NONE, option);
+			} else if ("String".equals(widgetName)) { //$NON-NLS-1$
+				widget = new StringField(composite, SWT.NONE, option);
+			} else if ("StringArray".equals(widgetName)) { //$NON-NLS-1$
+				widget = new StringArrayField(composite, SWT.NONE, option);
+			} else if ("StringArrayMultiple".equals(widgetName)) { //$NON-NLS-1$
+				widget = new StringArrayMultipleField(composite, SWT.NONE, option);
+			} else if ("StructuralUnits".equals(widgetName)) { //$NON-NLS-1$
+				widget = new CospusStructuresField(composite, SWT.NONE, option);
+			} else if ("Text".equals(widgetName)) { //$NON-NLS-1$
+				widget = new LongStringField(composite, SWT.NONE, option);
+			} else if ("Integer".equals(widgetName)) { //$NON-NLS-1$
+				widget = new IntegerField(composite, SWT.NONE, option);
+			} else if ("Float".equals(widgetName)) { //$NON-NLS-1$
+				widget = new FloatField(composite, SWT.NONE, option);
+			} else if ("Boolean".equals(widgetName)) { //$NON-NLS-1$
+				widget = new BooleanField(composite, SWT.NONE, option);
+			} else {
+				System.out.println(Messages.ParametersDialog_10+widgetName+Messages.FileTreeContentProvider_4);
+			}
+
+			if (widget != null) {
+				widgets.put(option.name(), widget);
+
+				// set default value in the fields, not enough if args contains the value
+				String value = defaultValues.getProperty(option.name());
+				if (value != null) { // set the default value using the properties stored
+					widget.setDefault(value);
+				}
+			}
+			//			}
+		}
+		new Label(composite, SWT.NONE).setText(Messages.ParametersDialog_11);
+
+		return composite;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	@Override
+	protected void okPressed() {
+		error = false;
+
+		// get widget values
+		for (String field : widgets.keySet()) {
+			ParameterField w = widgets.get(field);
+			Object value = w.getWidgetValue();
+
+			if (w.isWidgetMandatory() && value == null) {
+				System.out.println(Messages.ParametersDialog_12+field);
+				error = true;
+			} else if (value != null) {
+				values.put(field, value);
+				//System.out.println(""+field+"\t"+values.get(field));
+			} // else value is not filled
+		}
+
+		//initialize variables
+		if (!error) {
+			initializeMacroVariables();
+			saveParameters();
+
+			if (!error) {
+				super.okPressed();
+			}
+		} 
+	}
+
+	private void saveParameters() {
+		if (!error) {
+			try {
+				propFile.getParentFile().mkdirs();
+				defaultValues.store(new FileWriter(propFile), "");
+			} catch (IOException e) {
+				System.out.println("Warning: failed to store default macro valuesin "+propFile+": "+e);
+				Log.printStackTrace(e);
+			}
+		}
+	}
+
+
+	/**
+	 * can use the args map to initialize variable not set with the dialog box
+	 */
+	private void initializeMacroVariables() {
+		//		System.out.println("Initialize macro variables of "+fieldNames);
+		if (bean == null) return;
+		
+		Class c = bean.getClass();
+		for (String name :fieldNames) {
+			Object value = values.get(name);
+			if (value == null) { // no widget or not set by user
+				value = defaultScriptValues.get(name);
+			}
+			if (value == null) { // no default set by script
+				value = defaultValues.get(name);
+			}
+			//System.out.println("test if args contains name="+name+" "+args.containsKey(name));
+			if (args.containsKey(name)) { // the 'args' variable may contains values set by another Macro
+				value = args.get(name);
+			} else { // store the default value only if user set it in the dialog box
+				if (value != null) {
+					defaultValues.setProperty(name, value.toString());
+				}
+			}
+
+			try {
+				//System.out.println("setting "+name+ " with "+values.get(name));
+				Field field = c.getDeclaredField(name);
+				field.setAccessible(true);
+				field.set(bean, value);
+			}  catch (Exception e) {
+				System.out.println(Messages.ParametersDialog_14+e.getMessage());
+				Log.printStackTrace(e);
+				error = true;
+			}
+
+		}
+	}
+
+
+	protected boolean isError() {
+		return error;
+	}
+
+	public HashMap<String, Object> getValues() {
+		return values;
+	}
+
+	static boolean errorOpen,retOpen;
+	/**
+	 * Conveniance method to initialize the parameters dialog.
+	 * Can detect the "args" Groovy binding and use it to set variables
+	 * If all variables are set by "args" then don't show the dialog box
+	 * 
+	 * @param bean
+	 * @return
+	 */
+	public static boolean open(final Object bean) {
+		errorOpen = true;
+		retOpen = false;
+		
+//		if (!(bean instanceof groovy.lang.Script)) {
+//			System.out.println(Messages.ParametersDialog_15);
+//			return false;
+//		}
+
+		Object oArgs = null;
+		if (bean instanceof groovy.lang.Script) {
+			groovy.lang.Script script = (groovy.lang.Script) bean;
+
+			// if the "args" variable exists then use its values. Can be used to set a default value by another Macro
+			if (script.getBinding().hasVariable("args")) {
+				oArgs = script.getBinding().getVariable("args"); //$NON-NLS-1$
+			}
+		}
+
+		final Map args;
+		if (oArgs == null || !(oArgs instanceof Map)) {
+			args = new HashMap<String, Object>();
+		} else {
+			args = (Map)oArgs;
+		}
+
+		Display.getDefault().syncExec(new Runnable() {
+			public void run() { 
+				boolean okNames = true;
+				CmdLineParser parser = new CmdLineParser(bean);
+
+				Display display = Display.getCurrent();
+				Shell shell = display.getActiveShell();
+
+				// check names
+				Class c = bean.getClass();
+				for (OptionHandler opt : parser.getOptions()) {
+					try {
+						if (opt.option instanceof NamedOptionDef) {
+							NamedOptionDef option = (NamedOptionDef)opt.option;
+							c.getDeclaredField(option.name());
+						}
+					}  catch (NoSuchFieldException e) {
+						System.out.println(Messages.ParametersDialog_14+e.getMessage());
+						okNames = false;
+					}
+				}
+				if (okNames) {
+					ParametersDialog dialog = new ParametersDialog(shell, bean, parser.getOptions(), args);
+					if (dialog.getShell() != null)
+						dialog.getShell().setActive();
+					if (dialog.getMustShowDialog()) {
+						retOpen = dialog.open() == ParametersDialog.OK;
+						errorOpen = dialog.isError();
+					} else { // fields initialized by 'args'
+						dialog.initializeMacroVariables(); // with args
+						if (dialog.getNumberOfFields() > 0) dialog.saveParameters();
+						retOpen = true;
+						errorOpen = false;
+					}
+				}
+			}
+		});
+		return retOpen && !errorOpen;
+	}
+
+	public boolean getMustShowDialog() {
+		return mustShowDialog;
+	}
+
+	protected int getNumberOfFields() {
+		return numberOfParameters;
+	}
+
+	// TODO: uncomment this to enable "args" detection  
+	//	public int open() {
+	//		System.out.println("Number of parameters: "+numberOfParameters);
+	//		if (numberOfParameters == 0) {
+	//			return ParametersDialog.OK;
+	//		} else {
+	//			return super.open();
+	//		}
+	//	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParametersDialog.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CospusStructuresField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CospusStructuresField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CospusStructuresField.java	(revision 122)
@@ -0,0 +1,76 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.kohsuke.args4j.NamedOptionDef;
+import org.txm.rcpapplication.swt.widget.MultipleSelectionCombo;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+
+
+/**
+ * Allow to select one or several structural units name of the selected corpus in the corpora view
+ * 
+ * @author mdecorde
+ *
+ */
+public class CospusStructuresField extends LabelField {
+	MultipleSelectionCombo dt;
+	public CospusStructuresField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		String[] values = {};
+		int[] selection = {};
+		
+		Object sel = CorporaView.getSelection();
+		if ((sel instanceof Corpus)) {
+			Corpus c = (Corpus)sel;
+			List<StructuralUnit> l;
+			try {
+				l = new ArrayList<StructuralUnit>(c.getOrderedStructuralUnits());
+				for (int i = 0 ; i < l.size() ; i++) {
+					String name = l.get(i).getName();
+					if ("text".equals(name) || "txmcorpus".equals(name)) {
+						l.remove(i);
+						i--;
+					}
+				}
+				
+				values = new String[l.size()];
+				for (int i = 0 ; i < l.size() ; i++) {
+					values[i] = l.get(i).getName();
+				}
+				if (values.length > 0) {
+					selection = new int[1];
+					selection[0] = 0;
+				}
+			} catch (CqiClientException e) {
+				e.printStackTrace();
+			}
+		}
+		
+		dt = new MultipleSelectionCombo(this, values, selection, SWT.NONE);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		
+		resetToDefault();
+	}
+
+	public String getWidgetValue() {
+		return dt.getText();
+	}
+
+	public void setDefault(String text) {
+		dt.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setText(getWidgetDefault());
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/CospusStructuresField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParameterField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParameterField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParameterField.java	(revision 122)
@@ -0,0 +1,36 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.widgets.Composite;
+import org.kohsuke.args4j.NamedOptionDef;
+
+public abstract class ParameterField extends Composite implements IParameterField {
+	NamedOptionDef parameter;
+	
+	public ParameterField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style);
+		this.parameter = parameter;
+	}
+	
+	public String getWidgetName() { return parameter.name(); }
+	public String getWidgetUsage() { return parameter.usage(); }
+	public String getMetaVar() { return parameter.metaVar(); }
+	
+	/**
+	 * 
+	 * @return the default value if the Macro has not been called previously
+	 */
+	public String getWidgetDefault() { return parameter.def(); }
+	public boolean isWidgetMandatory() { return parameter.required(); }
+	public boolean isWidgetMultiValued() { return parameter.isMultiValued(); }
+	
+	public String getWidgetLabel() {
+		return getWidgetName() + ((parameter.required()) ? " *" : "") + " : "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+	}
+	
+	
+	public abstract Object getWidgetValue();
+
+	public abstract void setDefault(String value);
+
+	public abstract void resetToDefault();
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/ParameterField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayMultipleField.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayMultipleField.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayMultipleField.java	(revision 122)
@@ -0,0 +1,36 @@
+package org.txm.rcpapplication.swt.widget.parameters;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.kohsuke.args4j.NamedOptionDef;
+import org.txm.rcpapplication.swt.widget.MultipleSelectionCombo;
+
+public class StringArrayMultipleField extends LabelField {
+	MultipleSelectionCombo dt;
+	public StringArrayMultipleField(Composite parent, int style, NamedOptionDef parameter) {
+		super(parent, style, parameter);
+
+		String[] values = getMetaVar().trim().split("\t");
+		int[] selection = {};
+		dt = new MultipleSelectionCombo(this, values, selection, SWT.NONE);
+		dt.setLayoutData(new GridData(SWT.FILL, SWT.LEFT, true, false));
+		
+		//dt.setItems(values);
+		
+		resetToDefault();
+	}
+
+	public String getWidgetValue() {
+		return dt.getText();
+	}
+
+	public void setDefault(String text) {
+		dt.setText(text);
+	}
+
+	@Override
+	public void resetToDefault() {
+		dt.setText(getWidgetDefault());
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/parameters/StringArrayMultipleField.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AlwaysExpandedItem.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AlwaysExpandedItem.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AlwaysExpandedItem.java	(revision 122)
@@ -0,0 +1,13 @@
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.Item;
+
+public class AlwaysExpandedItem extends Item {
+
+	public AlwaysExpandedItem(ExpandBar parent, int style) {
+		super(parent, style);
+		// TODO Auto-generated constructor stub
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/AlwaysExpandedItem.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/EmpantWidget.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/EmpantWidget.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/EmpantWidget.java	(revision 122)
@@ -0,0 +1,449 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.swt.widget;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Spinner;
+import org.txm.rcpapplication.Messages;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Used by the Cooc Editor Allow to choose a structural unit and the size @
+ * author mdecorde.
+ */
+public class EmpantWidget extends Composite {
+
+	/** The struct type. */
+	Button structType;
+	
+	/** The word type. */
+	Button wordType;
+	
+	/** The structs. */
+	Combo structs;
+	
+	/** The max left. */
+	Spinner maxLeft;
+	
+	/** The max right. */
+	Spinner maxRight;
+	
+	/** The min right. */
+	Spinner minRight;
+	
+	/** The min left. */
+	Spinner minLeft;
+	
+	/** The check xword. */
+	Button checkXword;
+	
+	/** The check xword. */
+	Button checkLeft;
+	
+	/** The check xword. */
+	Button checkRight;
+
+	Label infoLabel;
+	
+	/** The corpus. */
+	Corpus corpus;
+
+	/**
+	 * Instantiates a new empant widget.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 * @param corpus the corpus
+	 */
+	public EmpantWidget(Composite parent, int style, Corpus corpus) {
+		super(parent, style);
+		this.corpus = corpus;
+		GridLayout mainLayout = new GridLayout(1, true);
+		//mainLayout.verticalSpacing = 0;
+		mainLayout.marginWidth = 0;
+		this.setLayout(mainLayout);
+		
+		Composite line1 = new Composite(this, style);
+		Composite line2 = new Composite(this, style);
+		line1.setLayout(new GridLayout(7, false));
+		line2.setLayout(new GridLayout(9, false));
+		line1.setLayoutData(new GridData(GridData.FILL, GridData.FILL,true,true));
+		line2.setLayoutData(new GridData(GridData.FILL, GridData.FILL,true,true));
+		
+		
+		Label l = new Label(line1, SWT.NONE);
+		l.setText(Messages.EmpantWidget_0);
+
+		wordType = new Button(line1, SWT.RADIO);
+		wordType.setText(Messages.EmpantWidget_1);
+		wordType.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				structs.setEnabled(false);
+				checkXword.setEnabled(false);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+		wordType.setSelection(true);
+
+		structType = new Button(line1, SWT.RADIO);
+		structType.setText(Messages.EmpantWidget_2);
+		structType.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				structs.setEnabled(true);
+				checkXword.setEnabled(true);
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		// [info]
+		structs = new Combo(line1, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER);
+		GridData layoutData = new GridData(GridData.VERTICAL_ALIGN_CENTER);
+		structs.setLayoutData(layoutData);
+
+		checkLeft = new Button(line1, SWT.CHECK);
+		checkLeft.setSelection(true);
+		checkLeft.setText(Messages.EmpantWidget_8);
+		checkLeft.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				boolean sel = checkLeft.getSelection();
+				maxLeft.setEnabled(sel);
+				minLeft.setEnabled(sel);
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		
+		checkRight = new Button(line1, SWT.CHECK);
+		checkRight.setSelection(true);
+		checkRight.setText(Messages.EmpantWidget_9);
+		checkRight.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				boolean sel = checkRight.getSelection();
+				maxRight.setEnabled(sel);
+				minRight.setEnabled(sel);
+			}
+			
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) { }
+		});
+		
+		checkXword = new Button(line1, SWT.CHECK);
+		checkXword.setText(Messages.EmpantWidget_7);
+
+		
+		// LINE 2
+		l = new Label(line2, SWT.NONE);
+		l.setText(Messages.EmpantWidget_3);
+
+		// | [ ] [ ] [ |v] [ ] [ ] |
+		maxLeft = new Spinner(line2, SWT.BORDER);
+		maxLeft.setMinimum(0);
+		maxLeft.setMaximum(9999);
+		maxLeft.setIncrement(1);
+		maxLeft.setPageIncrement(10);
+		maxLeft.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				minLeft.setMaximum(maxLeft.getSelection());
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		l = new Label(line2, SWT.NONE);
+		l.setText(Messages.EmpantWidget_4);
+
+		minLeft = new Spinner(line2, SWT.BORDER);
+		minLeft.setMinimum(0);
+		minLeft.setMaximum(9999);
+		minLeft.setIncrement(1);
+		minLeft.setPageIncrement(10);
+		minLeft.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				maxLeft.setMinimum(minLeft.getSelection());
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+				
+		l = new Label(line2, SWT.NONE);
+		l.setText(Messages.EmpantWidget_5);
+
+		// [>]
+		minRight = new Spinner(line2, SWT.BORDER);
+		minRight.setMinimum(0);
+		minRight.setMaximum(9999);
+		minRight.setIncrement(1);
+		minRight.setPageIncrement(10);
+		minRight.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				maxRight.setMinimum(minRight.getSelection());
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		l = new Label(line2, SWT.NONE);
+		l.setText(Messages.EmpantWidget_6);
+
+		// [>|]
+		maxRight = new Spinner(line2, SWT.BORDER);
+		maxRight.setMinimum(0);
+		maxRight.setMaximum(9999);
+		maxRight.setIncrement(1);
+		maxRight.setPageIncrement(10);
+		maxRight.addSelectionListener(new SelectionListener() {
+			@Override
+			public void widgetSelected(SelectionEvent e) {
+				minRight.setMaximum(maxRight.getSelection());
+			}
+
+			@Override
+			public void widgetDefaultSelected(SelectionEvent e) {
+			}
+		});
+
+		infoLabel = new Label(line2, SWT.NONE);
+		GridData infoLabelData = new GridData(GridData.END, GridData.CENTER, true, false);
+		infoLabel.setLayoutData(infoLabelData);
+		
+		loadStructs();
+		structs.setEnabled(false);
+		checkXword.setEnabled(false);
+	}
+	
+	public void setInfo(String txt, String tooltip) {
+		infoLabel.setText(txt);
+		infoLabel.setToolTipText(tooltip);
+	}
+
+	/**
+	 * Load structs.
+	 */
+	private void loadStructs() {
+		try {
+			java.util.List<StructuralUnit> corpusstructuralunits = corpus
+					.getOrderedStructuralUnits();
+			for (StructuralUnit su : corpusstructuralunits)
+				if (!su.getName().equals("text") //$NON-NLS-1$
+						&& !su.getName().equals("txmcorpus")) //$NON-NLS-1$
+					structs.add(su.getName());
+			if (corpusstructuralunits.size() > 0)
+				structs.select(0);
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+
+	/**
+	 * Adds the first listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addFirstListener(SelectionListener selectionListener) {
+		maxLeft.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the next listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addNextListener(SelectionListener selectionListener) {
+		minRight.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the previous listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addPreviousListener(SelectionListener selectionListener) {
+		minLeft.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Adds the last listener.
+	 *
+	 * @param selectionListener the selection listener
+	 */
+	public void addLastListener(SelectionListener selectionListener) {
+		maxRight.addSelectionListener(selectionListener);
+	}
+
+	/**
+	 * Sets the max left.
+	 *
+	 * @param maxleft the new max left
+	 */
+	public void setMaxLeft(int maxleft) {
+		this.maxLeft.setSelection(maxleft);
+	}
+
+	/**
+	 * Sets the min left.
+	 *
+	 * @param minleft the new min left
+	 */
+	public void setMinLeft(int minleft) {
+		this.minLeft.setSelection(minleft);
+	}
+
+	/**
+	 * Sets the max right.
+	 *
+	 * @param maxright the new max right
+	 */
+	public void setMaxRight(int maxright) {
+		this.maxRight.setSelection(maxright);
+	}
+
+	/**
+	 * Sets the min right.
+	 *
+	 * @param minright the new min right
+	 */
+	public void setMinRight(int minright) {
+		this.minRight.setSelection(minright);
+	}
+
+	/**
+	 * Gets the max left.
+	 *
+	 * @return the max left
+	 */
+	public int getMaxLeft() {
+		if (maxLeft.isEnabled())
+			return maxLeft.getSelection();
+		return -1;
+	}
+
+	/**
+	 * Gets the min left.
+	 *
+	 * @return the min left
+	 */
+	public int getMinLeft() {
+		if (minLeft.isEnabled())
+			return minLeft.getSelection();
+		return -1;
+	}
+
+	/**
+	 * Gets the max right.
+	 *
+	 * @return the max right
+	 */
+	public int getMaxRight() {
+		if (maxRight.isEnabled())
+			return maxRight.getSelection();
+		return -1;
+	}
+
+	/**
+	 * Gets the min right.
+	 *
+	 * @return the min right
+	 */
+	public int getMinRight() {
+		if (minRight.isEnabled())
+			return minRight.getSelection();
+		return -1;
+	}
+
+	/**
+	 * Sets the structure.
+	 *
+	 * @param su the new structure
+	 */
+	public void setStructure(StructuralUnit su) {
+		if (su != null)
+			structs.setText(su.getName());
+		else
+			structs.setText(""); //$NON-NLS-1$
+	}
+
+	/**
+	 * Gets the struct.
+	 *
+	 * @return the struct
+	 */
+	public StructuralUnit getStruct() {
+		if (this.wordType.getSelection())
+			return null;
+		try {
+			if (structs.getText().length() == 0)
+				return null;
+			return this.corpus.getStructuralUnit(structs.getText());
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Gets the x pivot.
+	 *
+	 * @return the x pivot
+	 */
+	public boolean getXPivot() {
+		return this.checkXword.getSelection();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/widget/EmpantWidget.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementLabelProvider.java	(revision 122)
@@ -0,0 +1,31 @@
+package org.txm.rcpapplication.swt.provider;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.w3c.dom.Element;
+
+public class ElementLabelProvider extends LabelProvider implements ITableLabelProvider {
+	
+	/** (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 * 
+	 * @param element 
+	 * @param columnIndex 
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+	
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		if (element != null && element instanceof Element) {
+			Element elem = (Element) element;
+			if (columnIndex < elem.getAttributes().getLength())
+				return elem.getAttributes().item(columnIndex).getNodeValue();
+			return "#idx too high"; //$NON-NLS-1$
+		}
+		return "#not Element"; //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeLabelProvider.java	(revision 122)
@@ -0,0 +1,54 @@
+package org.txm.rcpapplication.swt.provider;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.w3c.dom.Element;
+import org.txm.rcpapplication.Messages;
+
+public class ElementTreeLabelProvider extends ColumnLabelProvider {
+	
+	String parentName;
+	String[] parentAttrs;
+
+	String childName;
+	String[] childAttrs;
+	
+	int index = 0;
+	public ElementTreeLabelProvider(int column, String parentName, String childName, String[] parentAttrs, String[] childAttrs) {
+		this.parentName = parentName;
+		this.childName = childName;
+		this.parentAttrs = parentAttrs;
+		this.childAttrs = childAttrs;
+		this.index = column;
+	}
+	
+	@Override
+	public String getText(Object obj) {
+		if(obj instanceof Element) {
+			Element elem = (Element) obj; 
+			if (elem.getNodeName().equals(parentName)) {
+				return show(elem, index, parentAttrs);
+			} else if (elem.getNodeName().equals(childName)) {
+				return show(elem, index, childAttrs);
+			} else {
+				return Messages.ElementTreeLabelProvider_0;
+			}
+			
+		}
+		return Messages.ElementTreeLabelProvider_1;
+	}
+
+	private String show(Element elem, int index, String[] attrs) {
+		if(index >= attrs.length) return ""; //$NON-NLS-1$
+		return elem.getAttribute(attrs[index]);
+	}
+	
+	public Image getColumnImage(Object obj, int index){
+		return null;
+	}
+
+	@Override
+	public Image getImage(Object obj){
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/SimpleLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/SimpleLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/SimpleLabelProvider.java	(revision 122)
@@ -0,0 +1,24 @@
+package org.txm.rcpapplication.swt.provider;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class SimpleLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+	/** (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 * 
+	 * @param element 
+	 * @param columnIndex 
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		return ""+element; //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/SimpleLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListLabelProvider.java	(revision 122)
@@ -0,0 +1,32 @@
+package org.txm.rcpapplication.swt.provider;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class ListLabelProvider extends LabelProvider implements ITableLabelProvider {
+
+	/** (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 * 
+	 * @param element 
+	 * @param columnIndex 
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+	
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		if (element != null && element instanceof List) {
+			List<Object> list = (List<Object>) element;
+			if(columnIndex < list.size())
+				return ""+list.get(columnIndex); //$NON-NLS-1$
+			return "#idx too high"; //$NON-NLS-1$
+		}
+		return "#not list"; //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/NodeListContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/NodeListContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/NodeListContentProvider.java	(revision 122)
@@ -0,0 +1,30 @@
+package org.txm.rcpapplication.swt.provider;
+
+import org.eclipse.jface.viewers.IContentProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.w3c.dom.NodeList;
+
+public class NodeListContentProvider implements IContentProvider, IStructuredContentProvider {
+
+	@Override
+	public Object[] getElements(Object inputElement) {
+		NodeList list = (NodeList)inputElement;
+		Object[] objs = new Object[list.getLength()];
+		for(int i = 0 ; i < list.getLength() ; i++)
+			objs[i] = list.item(i);
+		return objs;
+	}
+
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		// TODO Auto-generated method stub
+		
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/NodeListContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/HashMapLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/HashMapLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/HashMapLabelProvider.java	(revision 122)
@@ -0,0 +1,39 @@
+package org.txm.rcpapplication.swt.provider;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+
+public class HashMapLabelProvider extends LabelProvider implements ITableLabelProvider {
+	
+	ArrayList<Object> keys;
+	
+	public HashMapLabelProvider(ArrayList<Object> keys)
+	{
+		this.keys = keys;
+	}
+	
+	/** (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 * 
+	 * @param element 
+	 * @param columnIndex 
+	 */
+	@Override
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+	
+	@Override
+	public String getColumnText(Object element, int columnIndex) {
+		if (element != null && element instanceof HashMap) {
+			if(columnIndex < keys.size())
+				return ""+((HashMap) element).get(keys.get(columnIndex)); //$NON-NLS-1$
+			return "#idx too high"; //$NON-NLS-1$
+		}
+		return "#not list"; //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/HashMapLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeContentProvider.java	(revision 122)
@@ -0,0 +1,82 @@
+package org.txm.rcpapplication.swt.provider;
+
+import java.util.Arrays;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+public class ElementTreeContentProvider implements ITreeContentProvider{
+
+	String parentName;
+	String[] parentAttrs;
+
+	String childName;
+	String[] childAttrs;
+	
+	public ElementTreeContentProvider(String parentName, String childName, String[] parentAttrs, String[] childAttrs) {
+		this.parentName = parentName;
+		this.childName = childName;
+		this.parentAttrs = parentAttrs;
+		this.childAttrs = childAttrs;
+	}
+	
+	@Override
+	public void dispose() { }
+
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+	@Override
+	public Object[] getElements(Object inputElement) {
+		NodeList nlist = (NodeList) inputElement;
+		Object[] children = new Object[nlist.getLength()];
+		for(int i = 0 ; i < children.length ; i++)
+			children[i] = nlist.item(i);
+		System.out.println("Elements: "+Arrays.toString(children)); //$NON-NLS-1$
+		return children;
+	}
+
+	@Override
+	public Object[] getChildren(Object parentElement) {
+		if( parentElement == null ) return new Object[0];
+		if( parentElement instanceof Element) {
+			Element elem = (Element) parentElement;
+			System.out.println("elem: "+elem); //$NON-NLS-1$
+			if( elem.getNodeName().equals(parentName)) {
+				NodeList nlist = elem.getElementsByTagName(childName);
+				Object[] children = new Object[nlist.getLength()];
+				for(int i = 0 ; i < children.length ; i++)
+					children[i] = nlist.item(i);
+				return children;
+			} else {
+				return new Object[0];
+			}
+		}
+		return new Object[0];
+	}
+
+	@Override
+	public Object getParent(Object element) {
+		if( element instanceof Element) {
+			Element elem = (Element) element;
+			if( elem.getNodeName().equals(parentName)) {
+				return null;
+			} else {
+				return elem.getParentNode();
+			}
+
+		}
+		return null;
+	}
+
+	@Override
+	public boolean hasChildren(Object element) {
+		if( element instanceof Element) {
+			return ((Element)element).getChildNodes().getLength() > 0;
+		}
+		return false;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementTreeContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListContentProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListContentProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListContentProvider.java	(revision 122)
@@ -0,0 +1,26 @@
+package org.txm.rcpapplication.swt.provider;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+
+public class ListContentProvider implements IStructuredContentProvider {
+
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { }
+
+	@Override
+	public Object[] getElements(Object inputElement) {
+		if (inputElement instanceof List) {
+			return ((List)inputElement).toArray();
+		}
+		return new Object[0];
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ListContentProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementColumnLabelProvider.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementColumnLabelProvider.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementColumnLabelProvider.java	(revision 122)
@@ -0,0 +1,32 @@
+package org.txm.rcpapplication.swt.provider;
+
+import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.w3c.dom.Element;
+
+public class ElementColumnLabelProvider extends ColumnLabelProvider {
+	
+	String key;
+	
+	public ElementColumnLabelProvider(String key) {
+		this.key = key;
+	}
+	/** (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 * 
+	 * @param element 
+	 * @param columnIndex 
+	 */
+	public Image getColumnImage(Object element, int columnIndex) {
+		return null;
+	}
+	
+	@Override
+	public String getText(Object element) {
+		if (element != null && element instanceof Element) {
+			Element elem = (Element) element;
+			return elem.getAttribute(key);
+		}
+		return "#no Element"; //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/swt/provider/ElementColumnLabelProvider.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru_utf8.properties
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru_utf8.properties	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru_utf8.properties	(revision 122)
@@ -0,0 +1,973 @@
+About_Menu_Label=О платформе TXM...
+AdapterFactory_0=** Предупреждение: корпус {0} поврежден. Некоторые команды могут быть недоступны или функционировать некорркетно.
+AddBase_1=Новый корпус: {0}.
+AddBase_10=Платформа TXM готова к использованию.
+AddBase_16=** Невозможно записать язык {0} как свойство ''LANG'' структуры <txmcorpus>
+AddBase_17=** Файл {0} недоступен
+AddBase_19=Внимание
+AddBase_2=** Ошибка загрузки корпуса из папки: {0}.\nНевозможно найти необходимые составные элементы.
+AddBase_20=Корпус {0} уже существует. Хотите ли вы его заменить?
+AddBase_22=Файл {0} не соответствует формату TXM.
+AddBase_23=Корпус {0} не имеет свойства ''LANG'' при структуре <txmcorpus>
+AddBase_24=** Не удалось загрузить корпус {0}
+AddBase_25=Корпус TXM в бинарном формате - это либо файл с расширением .txm или .zip, либо директория с папками ''html'', ''data'', ''registry'', ''txm''
+AddBase_27=Загрузить корпус
+AddBase_28=Извлечение бинарного корпуса
+AddBase_29=Извлечено {0} за {1}
+AddBase_31=** Не удалось загрузить бинарный корпус: {0}
+AddBase_32=Загрузка корпуса в платформу
+AddBase_33=Перезагрузка платформы
+AddBase_34=Рабочая среда TXM не инициализирована. Пожалуйста, перезагрузите TXM.
+AddBase_4=** Не удалось загрузить бинарный корпу (null error).
+AddBase_7=** Не удалось создать бинарный корпус.
+AddProject_3=Введите название проекта
+AdvancePreferencePage_1=Папка установки TXM
+AdvancePreferencePage_12=Уровень детализации отчета
+AdvancePreferencePage_13=Добавить технический комментарий
+AdvancePreferencePage_14=Копировать отчет в файл
+AdvancePreferencePage_2=Папка пользователя TXM
+AdvancePreferencePage_3=Показывать время выполнения на консоли
+AdvancePreferencePage_4=N/A_Expert user mode
+ApplicationWorkbenchAdvisor_0=Инициализация платформы...
+ApplicationWorkbenchAdvisor_1=Инициализация платформы...
+ApplicationWorkbenchAdvisor_11=Загрузка демонстрационных корпусов
+ApplicationWorkbenchAdvisor_12=** Ошибка: переменная среды ''TXMHOME'' задана ({0}), но нет папки: 
+ApplicationWorkbenchAdvisor_13=** Не удалось создать папку TXMHOME : {0}
+ApplicationWorkbenchAdvisor_14=\ проверка расширения:  
+ApplicationWorkbenchAdvisor_16=N/A_Removing old corpus backup directory: 
+ApplicationWorkbenchAdvisor_17=N/A_.
+ApplicationWorkbenchAdvisor_18=N/A_Corpus already backuped: 
+ApplicationWorkbenchAdvisor_19=** Не удалось задать параметры программы TreeTagger : {0}
+ApplicationWorkbenchAdvisor_2=Загрузка опций установки TXM из: {0}
+ApplicationWorkbenchAdvisor_20=N/A_\ in 
+ApplicationWorkbenchAdvisor_22=N/A_Processing folder: 
+ApplicationWorkbenchAdvisor_23=N/A_\ ...
+ApplicationWorkbenchAdvisor_24=N/A_Failed moving old corpus from 
+ApplicationWorkbenchAdvisor_25=Чтение опций из места установки: {0}
+ApplicationWorkbenchAdvisor_26=N/A_\ to  
+ApplicationWorkbenchAdvisor_27=Рабочая папка TXM уже существует. Загрузить ранее созданные корпусы?
+ApplicationWorkbenchAdvisor_28=Сохранение рабочей папки...
+ApplicationWorkbenchAdvisor_29=N/A_Error: 
+ApplicationWorkbenchAdvisor_3=Проверка наличия рабочей папки
+ApplicationWorkbenchAdvisor_30=Перемещение существующих корпусов...
+ApplicationWorkbenchAdvisor_31=** Не удалось создать рабочее пространство ''default.xml''
+ApplicationWorkbenchAdvisor_32=** TreeTagger не установлен или неверно заданы пути доступа.
+ApplicationWorkbenchAdvisor_33=Пути доступа к TreeTagger приведены к значениями по умолчанию.
+ApplicationWorkbenchAdvisor_34=** Ошибка: не удалсоь создать папку для сохранения корпуса
+ApplicationWorkbenchAdvisor_35=N/A_\nCorpus 
+ApplicationWorkbenchAdvisor_36=Перемещение \ 
+ApplicationWorkbenchAdvisor_37=\ в 
+ApplicationWorkbenchAdvisor_38=Внимание: корпус уже был сохранен.
+ApplicationWorkbenchAdvisor_39=Не хватает папки в директории установки TXM : {0}
+ApplicationWorkbenchAdvisor_4=Проверка установки TreeTagger
+ApplicationWorkbenchAdvisor_40=** Не удалось скопировать файлы из папки TXMINSTALL в TXMHOME: {0}
+ApplicationWorkbenchAdvisor_41=** Не удалось задать опции: {0}
+ApplicationWorkbenchAdvisor_42=\ перемещение 
+ApplicationWorkbenchAdvisor_43=Corpora {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_43_single=Corpus {0} not restored, since this setup provides more recent ones.
+ApplicationWorkbenchAdvisor_44=** Невозможно перенести корпус 
+ApplicationWorkbenchAdvisor_45=** Файл не читается: {0}
+ApplicationWorkbenchAdvisor_46=N/A_\nCorpus 
+ApplicationWorkbenchAdvisor_47=** Невозможно сохранить существующие корпусы:
+ApplicationWorkbenchAdvisor_48=\nCorpus ''{0}'' could not be restored and are moved to ''{1}''.
+ApplicationWorkbenchAdvisor_49=N/A_Initializing the toolbox...
+ApplicationWorkbenchAdvisor_5=Стандартный выход
+ApplicationWorkbenchAdvisor_51=** Не удалось загрузить корпус из файла: 
+ApplicationWorkbenchAdvisor_52=** Не удалось загрузить демонстрационные корпусы: {0}
+ApplicationWorkbenchAdvisor_53=Восстановление корпусов из {0}
+ApplicationWorkbenchAdvisor_54=Преобразование корпусов из формата TXM 0.5 
+ApplicationWorkbenchAdvisor_55=\ в формат TXM 0.6.
+ApplicationWorkbenchAdvisor_56=** Не удалось преобразовать корпус в формат TXM 0.6
+ApplicationWorkbenchAdvisor_57=Загрузка преобразованного корпуса 0.5 
+ApplicationWorkbenchAdvisor_58=Загрузка корпуса 0.6 
+ApplicationWorkbenchAdvisor_59=** Ошибка во время загрузки 
+ApplicationWorkbenchAdvisor_6=Исключение: 
+ApplicationWorkbenchAdvisor_60=** Ошибка: корпус 
+ApplicationWorkbenchAdvisor_61=\ не является бинарным корпусом TXM 0.6
+ApplicationWorkbenchAdvisor_7=Создание рабочего пространства пользователя TXM.
+ApplicationWorkbenchAdvisor_71=Загрузка демонстрационных корпусов.
+ApplicationWorkbenchAdvisor_8=Путь установки: {0}
+ApplicationWorkbenchAdvisor_9=** Ошибка чтения файла опций установки
+ApplicationWorkbenchAdvisor_init=Запуск...
+ApplicationWorkbenchAdvisor_init_failed=** Запуск платформы прерван. Пожалуйста, отрегулируйте опции (в меню ''Файл>Опции'')
+ApplicationWorkbenchAdvisor_ready=Готово.
+Application_4=N/A_This file is not meant to run TXM. Please consult TXM user manual.
+Application_6=** Вы должны установить версию 1.6 Java или более поздниюю, прежде чем запустить TXM, установленная на этой машине версия Java: {0}
+AssistedQueryWidget_0=Ouvrir l''assistant de requêtes
+BackToText_0=Показать в полнотекстовом режиме
+CAHEditor_0=N/A_Computing CAH
+CAHPreferencePage_0=Показывать графики в 2D
+CAHPreferencePage_1=Классификация
+CAHPreferencePage_2=Число кластеров
+CAHPreferencePage_3=Метод
+CAHPreferencePage_4=Метрика
+CANT_CREATE_GRAPHIC=** Невозможно создать график
+CAPreferencePage_0=Формат колонки Качество
+CAPreferencePage_1=Формат колонки Вклад
+CAPreferencePage_3=Показать колонки в графике факторного плана
+CAPreferencePage_4=Показать строчки в графике факторного плана
+CAPreferencePage_5=Формат колонки Масса
+CAPreferencePage_6=Формат колонки Дистанция
+CAPreferencePage_7=Формат колонки Cos²
+CAPreferencePage_8=Формат колонки Coord
+CQPPreferenceInitializer_0=localhost
+CQPPreferenceInitializer_1=anonymous
+CQPPreferencePage_0=N/A_CQPlib path
+CQPPreferencePage_1=Использовать сетевой протокол
+CQPPreferencePage_10=Удаленный &сервер CWB
+CQPPreferencePage_11=Удаленный сервер: &имя машины
+CQPPreferencePage_12=Удаленный сервер: &номер порта
+CQPPreferencePage_13=Удаленный сервер: &логин
+CQPPreferencePage_14=Удаленный сервер: &пароль
+CQPPreferencePage_15=Путь к исполняемому &файлу ''cqpserver''
+CQPPreferencePage_16=Путь к папке &Регистр сервера CWB
+CQPPreferencePage_17=Путь к файлу инициализации сервера CWB
+CQPPreferencePage_18=Дополнительные опции сервера CWB: 
+Cannot_ask_simple_when_advance=Невозможно отобразить закладку простых опций, когда пользователь выбрал отображение дополнительных опций
+ColRowInfosLabelProvider_19=Qual
+ColRowInfosLabelProvider_9=\u03C7²
+ColsRowsInfosEditor_0=Ошибочный ввод
+ColsRowsInfosEditor_2=Информация: {0}
+Commands_0=Ошибка: невозможно инициализировать команды
+ComplexSortSelector_0=Ключи для сортировки:
+ComplexSortSelector_1=Мульти-сортировка
+ComplexSortSelector_2=Сортировка
+ComplexSortSelector_5=** Ошибка при сортировке: {0}
+ComplexSortSelector_6=по умолчанию
+ComplexSort_0=Открытие диалогового окна сложной сортировки
+ComplexSort_1=&Сложная сортировка
+ComplexSort_10=Недопустимый блок сравнения
+ComplexSort_11=Необходимо выбрать не менее двух блоков сравнения
+ComplexSort_12=Добавить в выделенному
+ComplexSort_14=Удалить из выделенного
+ComplexSort_16=Поднять выделение на один уровень
+ComplexSort_18=Опустить выделение на один уровень
+ComplexSort_2=Задать и использовать сложную сортировку
+ComplexSort_3=Выберите сложную сортировку
+ComplexSort_4=&Новый
+ComplexSort_5=Создать новый метод сортировки
+ComplexSort_6=Имя: 
+ComplexSort_9=Поле Имя обязательно.
+ComplexSubcorpusPanel_0=Выделить
+ComplexSubcorpusPanel_1=Все критерии
+ComplexSubcorpusPanel_16=не содержит
+ComplexSubcorpusPanel_2=отдельные критерии
+ComplexSubcorpusPanel_4=Запрос 
+ComplexSubcorpusPanel_5=Обновить
+ComputeCAH_0=Расчет Классификации {0}
+ComputeCAH_1=Показать график
+ComputeCAH_2=** Не удается записать данные во временный файл
+ComputeCAH_3=Расчет классификации с 
+ComputeClassification_5=Колонки
+ComputeClassification_6=Строчки
+ComputeConcordance_0=Открытие окна конкорданса
+ComputeConcordance_1=N/A_Failed to open concordance editor.
+ComputeCoocFromLines_0=Идет расчет совместной встречаемости
+ComputeCoocFromLines_1=Открытие таблицы совместной встречаемости
+ComputeCoocMatrix_0=N/A_Cooc matrix: 
+ComputeCoocMatrix_1=N/A_Number of nodes: 
+ComputeCoocMatrix_10=N/A_Distance
+ComputeCoocMatrix_11=N/A_Minimal co frequence
+ComputeCoocMatrix_12=N/A_Outfile : none
+ComputeCoocMatrix_13=N/A_Choose outfile
+ComputeCoocMatrix_2=N/A_Number of edges: 
+ComputeCoocMatrix_3=N/A_Distance: 
+ComputeCoocMatrix_4=N/A_Writing cooc matrix in GRAPHML file: 
+ComputeCoocMatrix_5=N/A_\"
+ComputeCoocMatrix_7=N/A_CoocMatrix parameters
+ComputeCooccurrences_0=Загрузка таблицы совместной встречаемости
+ComputeCooccurrences_1=** Невозможно вычислить совместную встречаемость в выделении
+ComputeCorrespondanceAnalysisDialog_0=Факторный анализ соответствий {0}
+ComputeCorrespondanceAnalysisDialog_1=Свойства: 
+ComputeCorrespondanceAnalysisDialog_2=Число строк:
+ComputeCorrespondanceAnalysis_0=Расчет факторного анализа соответствий
+ComputeCorrespondanceAnalysis_1=** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок в таблице
+ComputeCorrespondanceAnalysis_13=** Невозможно провести факторный анализ соответствий при наличии менее 4-х колонок
+ComputeCorrespondanceAnalysis_14=Открытие результатов факторного анализа соответствий
+ComputeCorrespondanceAnalysis_15=Создание окна ФАС
+ComputeCorrespondanceAnalysis_16=Создание словарной таблицы для ФАС
+ComputeCorrespondanceAnalysis_17=Расчет ФАС
+ComputeCorrespondanceAnalysis_3=** Ошибка
+ComputeCorrespondanceAnalysis_4=** Невозможно провести факторный анализ соответствий при наличии только 
+ComputeCorrespondanceAnalysis_6=ОК
+ComputeCorrespondanceAnalysis_8=Загрузка результатов факторного анализа
+ComputeFrequencyList_2=Расчет списка значений свойства {0} в корпусе {1}
+ComputeIndexFromLines_0=Выполнить команду Индекс на выделении
+ComputeLexicalTable_0=Составление словарной таблицы {0}
+ComputeLexicalTable_1=Составление словарной таблицы {0} со свойством {1}
+ComputeLexicalTable_10=Открытие словарной таблицы
+ComputeLexicalTable_12=Употребления в индексе
+ComputeLexicalTable_13=Выберите пределы для расчетов
+ComputeLexicalTable_16=Использовать все употребления
+ComputeLexicalTable_2=N/A_no property
+ComputeLexicalTable_3=Открытие диалогового окна конфигурации пределов
+ComputeLexicalTable_5=** Невозможно построить словарную таблицу из Индекса, рассчитанного на корпусе
+ComputeLexicalTable_6=** Списки значений должны строиться на одинаковых сочетаниях свойств: {0}
+ComputeLexicalTable_7=Списки значений должны иметь одинаковое распределение: {0}
+ComputeLexicalTable_9=** Диалоговое окно словарной таблицы: невозможно получить размер корпуса. Причина {0}
+ComputeReferencer_0=Открытие результата Ссылок
+ComputeSpecificitiesDialog_0=** Диалоговое окно ''Расчет специфичности'' - {0}
+ComputeSpecificitiesDialog_1=** Синтаксическая ошибка в регулярном выражении: {0}
+ComputeSpecificitiesDialog_3=Фокус:
+ComputeSpecificitiesDialog_4=Фокус части:
+ComputeSpecificitiesDialog_9=Нет доступного фильтра для части
+ComputeSpecificities_0=Расчет специфичности
+ComputeSpecificities_2=Расчет специфичности {0}, свойство {1} 
+ComputeSpecifities_10=Открытие таблицы результатов специфичности
+ComputeSpecifities_11=Расчет специфичности в словарной таблице {0}
+ComputeSpecifities_2=Обновление вида корпусов...
+ComputeSpecifities_3=Расчет специфичности в подкорпусе {0} корпуса {1}, свойство {2}
+ComputeIndex_0=Открытие Индекса
+Compute_Specificities=Расчет специфичности
+ConcordancerPreferencePage_3=Параметры конкордансов
+ConcordancerPreferencePage_4=Количество строк на &Странице : 
+ConcordancerPreferencePage_5=&Левый контекст (в словах)
+ConcordancerPreferencePage_6=&Правый контекст (в словах)
+ConcordancesEditorContributor_0=Конкорданс
+ConcordancesEditor_0=Последняя ошибка CQi : 
+ConcordancesEditor_1=Ссылка
+ConcordancesEditor_11=|<
+ConcordancesEditor_12=<
+ConcordancesEditor_13=>
+ConcordancesEditor_14=>|
+ConcordancesEditor_16=&Мотив: 
+ConcordancesEditor_18=&Редактировать
+ConcordancesEditor_19={0} употреблений
+ConcordancesEditor_2=Левый контекст
+ConcordancesEditor_20=Загрузка данных о строке...
+ConcordancesEditor_26=идентификатор проекта {0} идентификатор корпуса {1} идентификатор текста {2}
+ConcordancesEditor_27=Возврат к тексту: текст {0} отсутствует
+ConcordancesEditor_29=Страница не найдена... для 
+ConcordancesEditor_3=Мотив
+ConcordancesEditor_30=Возврат к тексту: издание по умолчанию не найдено
+ConcordancesEditor_34=Загрузка конкорданса
+ConcordancesEditor_37=Сортировка ссылок
+ConcordancesEditor_38=Скрыть параметры
+ConcordancesEditor_39=Показать параметры
+ConcordancesEditor_4=Правый контекст
+ConcordancesEditor_41=Сортировка левого контекста
+ConcordancesEditor_43=Корпус {0} не имеет ссылок по умолчанию: {1}
+ConcordancesEditor_45=Сортировка мотива
+ConcordancesEditor_46=** Невозможно показать в тексте: {0}
+ConcordancesEditor_48=Сортировка правого контекста
+ConcordancesEditor_5=Конкорданс мотива <{0}> в корпусе {1}
+ConcordancesEditor_50=Открытие издания
+ConcordancesEditor_52=Готово: один результат
+ConcordancesEditor_55=Открытие диалогового окна свойств
+ConcordancesEditor_56=Начало расчета конкордансов
+ConcordancesEditor_6=Сортировка...
+ConcordancesEditor_7=N/A_CQP error: 
+ConcordancesEditor_8=N/A_The corpus has no text_id property
+ConvertCorpus_0=N/A_Corpus conversion failed.
+CoocPreferencePage_0=Формат индекса (по умолчанию 0.0000E00)
+CoocPreferencePage_1=Минимальный порог количества совместных употреблений
+CoocPreferencePage_11=Минимум справа
+CoocPreferencePage_12=Максимум справа
+CoocPreferencePage_2=Минимальный порог частотности совместной встречаемости
+CoocPreferencePage_3=Минимальный порог индекса совместной встречаемости
+CoocPreferencePage_4=Максимум слева
+CoocPreferencePage_5=Совместная встречаемость
+CoocPreferencePage_6=Минимум слева
+CoocPreferencePage_8=N/A_Use partial lexical table
+CooccurrencesEditor_0=Сортировать по: {0}
+CooccurrencesEditor_10=Совместная частотность
+CooccurrencesEditor_11=Значение индекса не соответствует формату двойной плавающей точки
+CooccurrencesEditor_12=Расчет совместной встречаемости {0}
+CooccurrencesEditor_13=Отладка расчета совместной встречаемости
+CooccurrencesEditor_14=Расчет совместной встречаемости
+CooccurrencesEditor_15=Отображение результатов
+CooccurrencesEditor_16=** Невозможно вычислить совместную встречаемость без контекстов
+CooccurrencesEditor_17=Индекс
+CooccurrencesEditor_18=Порог индекса должен быть действительным числом, отличным от {0}
+CooccurrencesEditor_2=Рассчитать
+CooccurrencesEditor_20=Расчет совместной встречаемости  <{0}> в корпусе {1}
+CooccurrencesEditor_23=Готово: ни одного результата.
+CooccurrencesEditor_24=Готово: один результат.
+CooccurrencesEditor_27=Расчет запроса
+CooccurrencesEditor_28=Расчет ответов
+CooccurrencesEditor_29=Расчет подписей к строкам
+CooccurrencesEditor_3=Свойства совместных употреблений: 
+CooccurrencesEditor_30=Подсчет
+CooccurrencesEditor_31=Расчет словарной таблицы
+CooccurrencesEditor_32=Расчет показателей специфичности\t
+CooccurrencesEditor_33=Начало расчета совместной встречаемости
+CooccurrencesEditor_34=Готово: {1} совместных употреблений на {0} употреблений мотива
+CooccurrencesEditor_4=Пороги: Част \u2265
+CooccurrencesEditor_5= Совм-част \u2265 
+CooccurrencesEditor_6=Показатель \u2265 
+CooccurrencesEditor_8=Кооккуррент
+CooccurrencesEditor_9=Средняя дистанция
+CorporaView_0=Корпус
+CorporaView_1=** Ошибка: {0}
+CorporaView_2=** Не удалось получить размеры корпуса {0}
+CorporaView_3=** Произошла ошибка при расчете конкорданса
+CorporaView_4=N/A_CoocMatrix symbol is: 
+CorporaView_5=** Произошла ошибка при расчете специфичности
+CorporaView_6=** Не удалось открыть окно Мастера ссылок\t
+CorporaView_7=** Произошла ошибка при расчете словарной таблицы
+CorporaView_9=** Ошибка: не удается проивести запись в {0}
+CorpusPage_0=Издания
+CorpusPage_1=Добавить издание
+CorpusPage_10=Свойства слова
+CorpusPage_11=Добавить определение свойства
+CorpusPage_12=Добавить опредление свойства структуры
+CorpusPage_13=Удалить определение свойства
+CorpusPage_14=Подкорпуса и распределения по умолчанию
+CorpusPage_15=Добавить подкорпус
+CorpusPage_16=N/A_punctuation characters
+CorpusPage_17=Удалить подкорпус
+CorpusPage_18=Добавить распределение
+CorpusPage_19=N/A_Elision characters
+CorpusPage_2=Удалить издание
+CorpusPage_20=Удалить распределение
+CorpusPage_21=Добавить запрос
+CorpusPage_22=N/A_End of sentence characters
+CorpusPage_23=Удалить запрос
+CorpusPage_24=Свойства структуры
+CorpusPage_25=Добавить определение свойства структуры
+CorpusPage_26=N/A_Annotate the corpus
+CorpusPage_27=Удалить определение свойства структуры
+CorpusPage_28=Использовать только эти тесты при словарной сегментации
+CorpusPage_29=Добавить параметр
+CorpusPage_3=Шрифт
+CorpusPage_31=Удалить параметр
+CorpusPage_32=Добавить тест
+CorpusPage_33=Добавить параметр
+CorpusPage_34=Удалить тест
+CorpusPage_35=1.\tНажмите на значок 
+CorpusPage_36= ''папка'', чтобы 
+CorpusPage_37=выбрать папку с исходными материалами.
+CorpusPage_38=2.\tВы можете изменить параметры на следующих этапах.
+CorpusPage_39=3.\tВы можете 
+CorpusPage_4=Добавить параметр
+CorpusPage_40=сохранить параметры импорта,
+CorpusPage_41=\ нажав на значок дискеты: 
+CorpusPage_42=4.\tЧтобы
+CorpusPage_43=начать импортирование,
+CorpusPage_44=\ нажмите на этот значок: 
+CorpusPage_45=ПИ
+CorpusPage_46=Папка с исходными материалами не содержала файл ''import.xml''. Создан новый.
+CorpusPage_47=Ошибка при создании файла ''import.xml'' 
+CorpusPage_48=Загрузка параметров импорта из файла: 
+CorpusPage_49=N/A_Default
+CorpusPage_5=N/A_Whitespace characters
+CorpusPage_50=Параметры модуля: 
+CorpusPage_51=Только эти тесты
+CorpusPage_52=Сохранение параметров импорта...
+CorpusPage_53=Имя корпуса обязательно
+CorpusPage_54=Имя корпуса должно содержать хотя бы одну букву
+CorpusPage_55=Только эти тесты
+CorpusPage_6=Удалить параметр
+CorpusPage_60=N/A_OK
+CorpusPage_65=N/A_Cannot save import configuration. No source folder selected.
+CorpusPage_66=N/A_Cannot start import configuration. No source folder selected.
+CorpusPage_7=Общая информация
+CorpusPage_8=Имя корпуса*
+CorpusPage_9=Описание - HTML
+CorrespondanceAnalysisEditorInput_0=Собственные значения
+CorrespondanceAnalysisEditorInput_1=Факт. план
+CorrespondanceAnalysisEditorInput_10=ФАС
+CorrespondanceAnalysisEditorInput_2=Гистограмма собственных значений propres
+CorrespondanceAnalysisEditorInput_26=Масса
+CorrespondanceAnalysisEditorInput_27=Дист
+CorrespondanceAnalysisEditorInput_29=Конт
+CorrespondanceAnalysisEditorInput_3=Результат анализа соответствий не может быть пустым 
+CorrespondanceAnalysisEditorInput_30=Cos²
+CorrespondanceAnalysisEditorInput_4=Фактор
+CorrespondanceAnalysisEditorInput_8=Инф Строчки
+CorrespondanceAnalysisEditorInput_9=Инф Колонки
+CreateFile_1=Новый файл: {0}
+CreateFolder_1=Новая папка: {0}
+CreateFrequencyList_8=Загрузка таблицы частотности
+CreateMacro_0=N/A_Macro name
+CreateMacro_1=N/A_Please write the macro name
+CreatePartitionDialog_0=Создать Распределение
+CreatePartitionDialog_1=Простое
+CreatePartitionDialog_16=Запросы не должны быть пустыми
+CreatePartitionDialog_2=&Структура: 
+CreatePartitionDialog_3=С подсказкой
+CreatePartitionDialog_4=С&войство: 
+CreatePartitionDialog_5=Продвинутое
+CreatePartitionDialog_6=&Имя: 
+CreatePartitionDialog_7=Часть 
+CreatePartitionDialog_8=Не задана ни одна часть
+CreatePartitionDialog_9=Имя распределения не вводилось. Автоматическое имя: {0}
+CreatePartition_0=Создание распределения по {0}
+CreatePartition_2=** Ошибка: распределение не создано
+CreatePartition_5=Готово: {0} пунктов на {1} употреблений
+CreatePartition_55=N/A_Done: {0} items for {1} occurrences
+CreatePartition_6=Готово: {0} частей
+CreatePartition_9=Обновление вида корпусов...
+CreateSubCorpus_0=** Ошибка: подкорпус не был создан
+CreateSubCorpus_1=Последняя ошибка CQP: 
+CreateSubCorpus_2=N/A_Failed to get last CQP error: 
+CreateSubCorpus_begin=Новый &Подкорпус
+CreateSubCorpus_create=Создать новый подокорпус для {0}
+CreateSubcorpusDialog_0=Создать подкорпус
+CreateSubcorpusDialog_10=&Запрос: 
+CreateSubcorpusDialog_11=Некорректное имя
+CreateSubcorpusDialog_13=Некорректный запрос
+CreateSubcorpusDialog_14=Поле Запрос не должно быть пустым.
+CreateSubcorpusDialog_6=Зна&чение: 
+CreateSubcorpusDialog_8=Имя подкорпуса создано автоматически.
+CreateSubcorpus_7=Составление подкорпуса для {0}, структура {1}, свойство {2} : {3}
+CreateSubcorpus_8=Готово : {0} образован 
+CreateSubcorpus_9=Составление подкорпуса для {0} по запросу <{1}>
+DONE=Готово: {0}
+DefineReferencePattern_0=Шаблон ссылок для отображения
+DefineReferencePattern_1=Шаблон ссылок для &отображения
+DefineReferencePattern_2=Шаблон ссылок для отображения
+DefineReferencePattern_3=Шаблон ссылок для &сортировки
+DefineReferencePattern_4=Шаблон ссылок для сортировки
+DefineReferencePattern_5=Шаблон ссылок для сортировки
+DeleteFile_0=Вы уверены, что хотите удалить 
+DeleteFile_2=** Не удалось удалить файл 
+DeleteInCorporaView_1=** Ошибка при удалении подкорпуса {0}
+DeleteInCorporaView_2=** Ошибка при удалении распределения {0}
+DeleteLines_0=Таблица должна содержать хотя бы одну строчку
+DeleteLines_1=Вы уверены?
+DeleteObject_0=Вы действительно хотите удалить {0}?
+DeleteObject_10={0} удален(о)
+DeleteObject_3=** Ошибка во время удаления
+DeleteObject_4=Ошибка во время удаления {0} : {1}
+DeleteObject_5=Удаление {0}
+DiagnosticPreferencePage_1=Описание
+DiagnosticPreferencePage_2=Число отображаемых значений свойства
+DiagnosticPreferencePage_3=Сортировать части по размеру
+Diagnostique_0=Структурные единицы {0}
+Diagnostique_1=Информация о {0} уже сформирована. Хотите ли Вы ее обновить?
+Diagnostique_10=Получение информации о структурных единицах
+Diagnostique_11=Открытие окна
+Diagnostique_2=** Ошибка при чтении файла *informations* 
+Diagnostique_7=Создание окна с информацией
+Diagnostique_8=Получение общей информации
+Diagnostique_9=Получение данных о словарных единицах
+DictionnaryEditor_1=Словарь:\n\tРаспределение {0}\n\tЗапрос {1}\n\tСвойства {2}\n\tFmin {3}\n\tFmax {4}
+DictionnaryEditor_3=Словарь:\n\tКорпус {0}\n\tЗапрос {1}\n\tСвойства {2}\n\tFmin {3}\n\tFmax {4}
+ERROR_WHILE_LOADING_CONCORDANCE_LINE=** Ошибка во время загрузки строк конкорданса: {0}
+ElementTreeLabelProvider_0=** Ошибка: элемент не записан 
+ElementTreeLabelProvider_1=** Ошибка: объект не является ''org.w3c.Element''
+EmpantWidget_0=Контекст: 
+EmpantWidget_1=форма
+EmpantWidget_2=структура
+EmpantWidget_3=от -
+EmpantWidget_4=до -
+EmpantWidget_5=и от
+EmpantWidget_6=до
+EmpantWidget_7=вклюая структуру, содержащую мотив
+EmpantWidget_8=Активный левый контекст
+EmpantWidget_9=Активный правый контекст
+Error_computing_specificities=** Ошибка во время расчета специфичности: {0}
+Error_creating_partition=** Ошибка во время создания распределения: {0}
+ExecuteGroovyScriptFromFile_2=Скрипт Groovy должен находиться в папке {0}
+ExecuteGroovyScript_0=\ мс
+ExecuteGroovyScript_1=N/A_Error during parameters initialisation
+ExecuteGroovyScript_2=N/A_The user canceled the script execution
+ExecuteRScript_1=Выполнение 
+ExecuteRScript_2=Готово: 
+ExecuteRScript_3=\ мс
+ExecuteRText_0=Выполнение выделения текста... 
+ExecuteRText_1=** Ошибка во время выполнения скрипта R {0}: {1}
+ExecuteRText_2=\ мс
+ExecuteScriptImport_0=Начало импортирования
+ExecuteScriptImport_1=** Файл скрипта {0} не найден
+ExecuteScriptImport_2=** Ошибка: папка ''corpora'' не существует: 
+ExecuteScriptImport_3=N/A_Error: the folder {0} still exists. Cannot continue import. You can delete it manually and restart the import.
+ExecuteScriptImport_5=** Ошибка в параметрах словарной сегментации: импортирование прервано.
+ExecuteScriptImport_6=Импортирование не завершено.
+ExecuteScriptImport_7=Импортирование завершено: 
+ExecuteScriptImport_8=** Ошибка при загрузке корпуса
+ExecuteScriptR_0=** Файл скрипта R {0} не найден
+ExecuteScriptR_1=** Ошибка при выполнении скрипта R {0}: {1}
+ExecuteScript_3=** Не найдено ни одного интерпретатора для расширения файла скрипта 
+Exit_Menu_Label=Выход
+Explorer_0=Папка {0} не должна быть удалена
+Explorer_1=N/A_Go to parent folder
+Explorer_2=N/A_Go to TXM home
+Explorer_3=TXM
+Explorer_4=\u21E7
+Explorer_5=\u21BB
+Explorer_6=N/A_Refresh
+Explorer_7=N/A_\u2302
+Explorer_8=N/A_Go to TXM Home
+ExportCorpus_0=** Не удалось экспортировать корпу {0}
+ExportCorpus_3=Экпортирование 
+ExportCorpus_4=Готово, бинарный файл - {0}
+ExportPreferencePage_1=Конфигурация экспорта
+ExportPreferencePage_18=Разделитель полей
+ExportPreferencePage_19=Разделитель текста
+ExportPreferencePage_21=Формат графиков R по умолчанию
+ExportPreferencePage_3=Кодировка экспортируемых файлов
+ExportPreferencePage_4=Показать результаты экспорта в текстовом редакторе
+ExportResult_0=Экспорт результатов
+ExportResult_1=N/A_Exporting...
+ExportResult_2=Результаты экспорта сохранены: 
+ExportResult_3=** Экспорт: невозможно создать файл {0}: {1}
+ExportResult_4=** Не удалось произвести экспорт в 
+ExportResult_5=** Не удается прочитать {0}
+ExportResult_6=** Не удалось экспортировать результат {0}: {1}
+ExportSVG_0=N/A_Exporting SVG...
+ExportSVG_2=N/A_Exporting with device: 
+FAILED_TO_PARSE_OPTIONS=** Не удалось проанализировать опции TXM {0}: {1}
+FAILED_TO_SAVE_PREFERENCES=** Не удалось сохранить персональные настройки
+FactorialMapEditor_0=Факторы:  
+FactorialMapEditor_10=** Внутренняя ошибка: ошибка выбора плана ФАС
+FactorialMapEditor_11=Изменить размер
+FactorialMapEditor_13=Обновление факторного плана
+FactorialMapEditor_4=Показать: 
+FactorialMapEditor_5=колонки
+FactorialMapEditor_6=строки
+FactorialMapEditor_8=Перезагрузка факторного плана
+FileExplorerPreferencePage_0=Рег. выр. скрытых файлов
+FileExplorerPreferencePage_1=Показать скрытые файлы
+FileExplorerPreferencePage_2=Показать папки
+FileTreeContentProvider_1=** Проводник: некорректное регулярное выражение
+FileTreeContentProvider_2=\ ОШИБКА 
+FileTreeContentProvider_3=Элемент ошибки: ''
+FileTreeContentProvider_4=''
+FrequencyListEditorInput_0=Список форм
+FrequencyListEditorInput_1=Pareto
+FrequencyListEditorInput_2=Список форм не может быть пустым
+FrequencyListEditorInput_3=Форма
+FrequencyListEditorInput_4=Частотность
+FrequencyListEditorInput_5=Цепочка знаков
+FrequencyListEditorInput_6=Целое
+FrequencyListEditorInput_9=Тип
+GenericMultiPageEditor_1=** Внутренняя ошибка: невозможно показать данные {0}.
+GenericMultiPageEditor_3=** Внутренняя ошибка: число редакторов RCP ({0}) должно соответствовать числу вводов ({1}).
+GetConcordancesDialog_0=** Диалоговое окно конкордансов: {0}
+GetConcordancesDialog_1=Расчет специфичности 
+GetConcordancesDialog_13=Вы должны выбрать одно свойство
+GetConcordancesDialog_14=Некорректное свойство
+GetConcordancesDialog_15=Вы должны выбрать одно свойство
+GetConcordancesDialog_4=С&войство : 
+GetConcordancesDialog_5=&Левый контекст (слова) : 
+GetConcordancesDialog_6=&Правый контекст (слова) : 
+GetConcordancesDialog_7=&Ссылка: 
+GetConcordances_4=** Ошибка при расчете конкордансов: {0}
+GraphicalLogger_0=** Ошибка {0}
+GroovyConsole_4=\nВнутренняя ошибка.
+GroovyConsole_5=Ошибка: 
+ImportDialog_0=Параметры импорта - {0}
+ImportDialog_1=Папка с исходными материалами
+ImportDialog_13=Не удается найти корпус в бинарном формате в этой папке
+ImportDialog_14=Кодировка по умолчанию этого компьютера
+ImportDialog_16=Угадать
+ImportDialog_19=Язык по умолчанию этого компьютера
+ImportDialog_22=Выбрать
+ImportDialog_23=Опции
+ImportDialog_4=Кодировка букв: 
+ImportDialog_5=Основной язык: 
+ImportDialog_6=Параметры словарной сегментации: 
+ImportFormEditor_0=** отсутствует скрипт для импорта {0} 
+ImportPreferencePage_0=Кодировка
+ImportSelectedText_0=Импорт текста из буфера обмена
+ImportSelectedText_1=буфер обмена
+ImportSelectedText_10=Идентифицированный язык 
+ImportSelectedText_12=Невозможно определить язык текста. Будет использован 
+ImportSelectedText_2=** Буфер обмена пуст
+ImportSelectedText_3=Подтвердить
+ImportSelectedText_4=Корпус {0} будет удален
+ImportSelectedText_6=** Внутренняя ошибка: не удается найти проект ''default'' 
+InternalCorpusView_0=** Ошибка при подготовке информации о корпусе
+InternalCorpusView_1=Перезагрузить
+InternalCorpusView_2=** Внутренняя ошибка: getText {0}
+InternalViewEditor_1=Подготовка внутреннего вида...
+InternalViewEditor_10=Внутренний вид: ошибка инициализации: 
+InternalViewEditor_11=OK
+InternalViewEditor_16=Ошибка
+InternalViewEditor_2=Получение следующего результата...
+InternalViewEditor_25=сформированный запрос: 
+InternalViewEditor_3=Перезагрузка интерфейса
+InternalViewEditor_4=Структура: 
+InternalViewEditor_5=Свойство структуры: 
+Invalid_analysis_property=Некорректное свойство
+JobHandler_0=N/A_Canceling...
+JobHandler_1=N/A_Canceling 
+JobHandler_2=N/A_\ canceling requested
+JobHandler_3=N/A_Failed to cancel 
+JobsTimer_12=ч., 
+JobsTimer_13=\ мин. и 
+JobsTimer_15=Проделано за {0} ({1}).
+JobsTimer_16=. (
+JobsTimer_17=\ мс)
+JobsTimer_19=\u041F\u0440\u043E\u0434\u0435\u043B\u0430\u043D\u043E \u0437\u0430 {0}.
+JobsTimer_2=\ мс
+JobsTimer_20=Job: 
+JobsTimer_21=Exec: 
+JobsTimer_5=\ с
+JobsTimer_9=\ мин. и 
+LanguageSwitchHandler_0=Язык интерфейса (LOCALE) не был определен
+LanguageSwitchHandler_1=Файл {0} не найден
+LanguageSwitchHandler_3=Выбрать язык
+LanguageSwitchHandler_5=** Изменение яызка: некорректый формат URL {0}
+LanguageSwitchHandler_7=TXM.ini : 
+LexicalTableEditor_1=** Ошибка: Не совпадает число колонок: до 
+LexicalTableEditor_10=Объед. или Удал. колонок
+LexicalTableEditor_11=Объед. колонок: {0}
+LexicalTableEditor_12=Удал. колонок: {0}
+LexicalTableEditor_13=Объед. или Удал. строк
+LexicalTableEditor_14=** Не удалось импортировать словарную таблицу
+LexicalTableEditor_15=** Ошибка при импортировании данных:  
+LexicalTableEditor_16=Фильтрация строк
+LexicalTableEditor_18=Объединение строк
+LexicalTableEditor_2=, Fmin 
+LexicalTableEditor_3=, Fmax 
+LexicalTableEditor_4=Оставить
+LexicalTableEditor_5=Оставить {0} строк, Fmin {1}
+LexicalTableEditor_6=Fmin :
+LexicalTableEditor_7=\ после  
+LexicalTableEditor_8=Число строк 
+LexicalTablePreferencePage_0=Словарная таблица
+LexicalTablePreferencePage_1=Минимальная частотность
+LexicalTable_1=Свойство
+LineLabelProvider_1=Не должно происходить
+LocalePreferencePage_1=Конфигрурация языка пользовательского интерфейса
+LocalePreferencePage_2=Язык интерфейса 
+MacrosExplorer_0=N/A_New macro
+MacrosExplorer_1=N/A_Create a new macro from a template
+MainPage_0=Главная страница
+MainPage_1=Главный
+MainPage_10=\tЧтобы перейти на следующую панель, используйте закладку снизу.\n
+MainPage_11=3-\tВы можете сохранить параметры импорта с помощью значка дискеты.\n
+MainPage_12=4-\tДля запуска импорта нажмите на зелёную стрелку.
+MainPage_13=параллелизм
+MainPage_14=Корпуса
+MainPage_15=Добавить параллельный корпус
+MainPage_17=Введите имя корпуса
+MainPage_18=Входная стилевая таблица XSL
+MainPage_19=Параметры словарной сегментации
+MainPage_2=Параметры импорта в модуле {0}
+MainPage_20=Основной язык
+MainPage_22=Удалить корпус
+MainPage_23=Кодировка
+MainPage_25=Введите имя удаляемого корпуса
+MainPage_27=Гиперссылки
+MainPage_28=** Ошибка при получении кодировки
+MainPage_29=Добавить гиперссылку
+MainPage_3=Папка с исходными материалами: 
+MainPage_30=Создать гиперссылку из корпуса: 
+MainPage_31=Выберите 2 корпуса:
+MainPage_33=seg
+MainPage_34=Удалить гиперссылку
+MainPage_36=Введите номер удаляемой строки
+MainPage_38=Убрать гиперссылку №
+MainPage_39=Введите корректное число
+MainPage_4=Имя корпуса (базы)
+MainPage_40=Первый корпус
+MainPage_42=Структура выравнивания
+MainPage_44=* \n(имя архива без расширения, в котором будет храниться корпус)
+MainPage_45=Описание
+MainPage_46=Добавить 
+MainPage_47=N/A_
+MainPage_49=N/A_base name is mandatory
+MainPage_5=N/A_Opening...
+MainPage_50=N/A_refresh links table
+MainPage_52=N/A_The source directory does not contain import.xml
+MainPage_53=N/A_Sorry, ''the import.xml'' file could not been created
+MainPage_54=N/A_Load params from: 
+MainPage_55=N/A_Params: 
+MainPage_6=N/A_Saving...
+MainPage_7=N/A_Starting...
+MainPage_8=N/A_1-\tClick on the ''folder'' icon to choose the source directory\n
+MainPage_9=N/A_2-\tIf you want to add details such as default subcorpus, exemple queries or types of word properties,\n
+MergeCols_1=Новое имя
+MergeCols_2=Имя новой колонки, образованной объединением
+MergeCols_5=Имена: 
+MergeCols_6=Объединение колонок завершено.
+MergeDeleteDialog_0=объединить
+MergeDeleteDialog_1=Объединить/Удалить
+MergeDeleteDialog_4=имя результата объединения
+MergeLines_2=Наберите имя новой строки, образованной в результате объединения
+MetadataPage_1=Метаданные
+MetadataPage_2=Параметры метаданных
+MetadataPage_3=Открыть файл с метаданными
+MetadataPage_4=Заглавия колонок в файле с метаданными 
+MetadataPage_5=Индентификатор текста
+MetadataPage_7=** Не удалось найти файл с метаданными {0}
+MultipleValueTreeDialog_0=добавление: 
+NavigationWidget_0=N/A_Error while getting current position value : 
+ObjectExplorer_0=Информация: 
+ObjectExplorer_10=Удалить свойство
+ObjectExplorer_12=Набрать имя удаляемого свойства
+ObjectExplorer_15=Добавить свойство нижестоящим элементам
+ObjectExplorer_2=Значение
+ObjectExplorer_21=Удалить свойство у нижестоящих элементов
+ObjectExplorer_26=Имя
+ObjectExplorer_27=Ключ
+ObjectExplorer_3=Новое свойство
+ObjectExplorer_4=Имя свойства
+ObjectExplorer_5=Введите имя добавляемого свойства
+ObjectExplorer_7=новое имя
+ObjectExplorer_9=
+ObjectSelectionDialog_0=Селектор значений
+ObjectSelectionDialog_3=Найдено {0} значений
+ObjectSelectionDialog_5=Некорректное регулярное выражение: {0}
+ObjectSelector_0=Объект: 
+ObjectSelector_1=Выбор
+OpenBiblio_1=** В корпусе нет ни одного текста {0}
+OpenBiblio_2=Выбрать текст
+OpenBiblio_7=** Не удается найти текст {0} в корпусе {1}
+OpenBiblio_9=** Нет ни одной библиографической записи для текста {0}
+OpenBrowser_0=** Ошибка при открытии библиографической записи 
+OpenBrowser_1=. URL
+OpenEdition_0=Выбрать часть
+OpenEdition_1=** Не удалось загрузить издание {0}
+OpenEdition_3=Открытие издания 
+OpenEdition_5=** Не удается найти первый текст с идентификатором {0} в корпусе или
+OpenEdition_7=** Не удается найти издание по умолчанию 
+OpenEdition_8=** Не удается найти первую страницу издания 
+OpenEmptyEditor_2=** Библиография: не удается найти папку {0}
+OpenGraph_8=** Не удается октрыть график {0}
+OpenParaBrowser_0=Открытие Парабраузер//
+OpenSVGGraph_0=График SVG 
+OpenTXMUserPreferences_0=Параметры по умолчанию
+OpenURI_0=** OpenURL : Рабочий стол не поддерживается
+OpenURI_1=** Ошибка при открытии файла {0}
+ParaBrowserEditor_11=ParaBrowser : get next({0}) struct {1} paraid {2} value {3}
+ParaBrowserEditor_18=-Перейти к 
+ParaBrowserEditor_19=-Оставаться на месте!!!!! NEXT - 
+ParaBrowserEditor_21=_
+ParaBrowserEditor_22=Открыть встроенный браузер
+ParaBrowserEditor_3=Ссылка : 
+ParaBrowserEditor_4=Ссылки
+ParaBrowserEditor_5=Структура
+ParaBrowserEditor_9=Ссылки: {0} : {1}
+ParametersDialog_0={0} parameters input
+ParametersDialog_1=N/A_Run
+ParametersDialog_10=N/A_Unknowed widget name: ''
+ParametersDialog_11=N/A_(* mandatory fields)
+ParametersDialog_12=N/A_** Error : missing value: 
+ParametersDialog_13=N/A_** Error : format error: 
+ParametersDialog_14=N/A_Error in @Option name declaration: 
+ParametersDialog_15=N/A_Error: the bean is not a groovy.lang.Script object
+ParametersDialog_17=N/A_Error: the ''monitor'' (JobHandler class) binding is missing. Got\: {0}.
+PartitionComposer_0=Структура: 
+PartitionComposer_11=Удалить
+PartitionComposer_2=Выбрать значения для назначения: 
+PartitionComposer_3=Новая часть
+PartitionComposer_5=Часть
+PartitionComposer_6=Удалить все части
+PartitionComposer_8=Заголовок: 
+PartitionComposer_9=Назначить
+PartsSize_0=N/A_\n Sorted by size
+PartsSize_10=Размеры распределения {0} корпуса {1} в порядке величины
+PartsSize_18=Размеры: {0}
+PartsSize_2=N/A_Number of words per part
+PasteFile_1=** Ошибка при копировании  
+PasteFile_3=** Не удалось удалить
+PasteFile_4= : 
+Preferences_Menu_Label=Опции
+ProgressionForm_0=N/A_Type :
+ProgressionForm_1=N/A_cumulatif
+ProgressionForm_10=N/A_R�p�t�
+ProgressionForm_11=N/A_N&&B
+ProgressionForm_12=N/A_REQUETES :
+ProgressionForm_13=N/A_ajouter
+ProgressionForm_14=N/A_supprimer
+ProgressionForm_2=N/A_densit�
+ProgressionForm_3=N/A_Echelle
+ProgressionForm_5=N/A_Options d''affichage
+ProgressionForm_6=N/A_Unit� structurelle :
+ProgressionForm_7=N/A_Propri�t� :
+ProgressionForm_8=N/A_Exp. R�g. :
+ProgressionForm_9=N/A_Syles de ligne diff�rents
+PropertiesSelector_0=Не удается загрузить свойства корпуса {0} ({1})
+PropertiesSelector_1=Свойства: 
+PropertiesSelector_2=Править
+PropertySelector_0=Выбрать свойство
+PurgeCorpora_0=Осторожно! Эта команда приведет к удалению всех выделенных корпусов. Продолжить?
+PurgeCorpora_1=Удаляемые корпуса 
+PurgeCorpora_10=Создание нового рабочего пространства
+PurgeCorpora_12=Перезагрузка платформы
+PurgeCorpora_13=** Ошибка: не удалось найти рабочее пространство: 
+PurgeCorpora_2=** Внимание! не были удалены корпуса: 
+PurgeCorpora_3=Осторожно! Эта команда приведет к удалению всех корпусов. Продолжить?
+PurgeCorpora_4=** Ошибка: переменная окружения ''TXMHOME'' не задана (ее значение по умолчанию -  ''$HOME/TXM''). Работа прекращена.
+PurgeCorpora_5=Удаление всех корпусов
+PurgeCorpora_7=** Не удалось удалить корпуса
+PurgeCorpora_9=** Не удалось удалить регистр
+QueriesView_1=Экспортировать всё
+QueriesView_10=ошибка: 
+QueriesView_5=Запросы:\n
+QueryAssistDialog_0=Мастер Запросов
+QueryAssistDialog_1=Дополнительное слово
+QueryAssistDialog_10=совпадает с
+QueryAssistDialog_11=начинается с
+QueryAssistDialog_12=заканчивается на
+QueryAssistDialog_13=содержит
+QueryAssistDialog_2=Я ищу: 
+QueryAssistDialog_3= слово
+QueryAssistDialog_32=за ним 
+QueryAssistDialog_33=с интервалом не менее 0 слов
+QueryAssistDialog_34=с интервалом не менее 1 слова
+QueryAssistDialog_8=- Слово №
+QueryIndexEditor_0=N/A_Query Index of 
+QueryIndexEditor_1=N/A_replacing line: 
+QueryIndexEditor_10=N/A_queries
+QueryIndexEditor_11=N/A_QueryIndex tooltip
+QueryIndexEditor_2=N/A_Failed to add line with query: 
+QueryIndexEditor_3=N/A_Line added.
+QueryIndexEditor_4=N/A_Load from a file
+QueryIndexEditor_5=N/A_*.properties
+QueryIndexEditor_6=N/A_Cannot read from file: 
+QueryIndexEditor_7=N/A_Link to concordance
+QueryIndexEditor_8=N/A_Link to progression
+QueryIndexEditor_9=N/A_delete lines
+RPreferencePage_0=N/A_Run RServe in debug mode
+RPreferencePage_1=N/A_Port (default is 6311)
+RPreferencePage_2=Путь к исполняемому &файлу R
+RPreferencePage_3=Удаленное соединение
+RPreferencePage_4=Адрес сервера
+RPreferencePage_5=Пользователь
+RPreferencePage_6=Пароль
+RPreferencePage_7=Использовать передачу данных R через файл
+RVariablesView_1=Обновить переменные
+RVariablesView_2=Показать отчет об оценках
+RVariablesView_9=имя TXM {0} >> имя R {1}
+ReferencerEditor_0=Расчет ссылок <{0}> в {1} с приоритетом {2} по шаблону {3}
+ReferencerEditor_10=Получение индексов
+ReferencerEditor_11=Ссылки
+ReferencerEditor_12=Группировка позиций по индексам
+ReferencerEditor_13=Обновление интерфейса
+ReferencerEditor_17=Показ первой страницы результатов 
+ReferencerEditor_19=Показ последней страницы результатов 
+ReferencerEditor_21=Показ следующей страницы результатов 
+ReferencerEditor_23=Показ предыдущей страницы результатов 
+ReferencerEditor_25=Открытие конкорданса
+ReferencerEditor_5=Расчет ссылок {0}
+ReferencerEditor_6=Шаблон ссылок 
+ReferencerEditor_7=Ни одного результата
+ReferencerEditor_8=Получение употреблений
+ReferencerEditor_9=Единицы
+ReferencerPreferencePage_2=Ссылки
+ReferencerPreferencePage_3=Сортировать ссылки по частотности
+RenameFile_0=Переименовать файл
+RenameFile_2=Переименование через: 
+RenameFile_3=** Не удалось переименовать 
+ProgressionDialog_0=Параметры прогрессии 
+ProgressionDialog_1=Тип графа: 
+ProgressionDialog_10=Прогрессия: некорректное регулярное выражение: 
+ProgressionDialog_11=Масштаб полос
+ProgressionDialog_13=Опции вида
+ProgressionDialog_14=Различные стили строк
+ProgressionDialog_15=Повторять идентичные значения
+ProgressionDialog_16=Ч/Б
+ProgressionDialog_17=Ошибка: мультипликатор полосы: 
+ProgressionDialog_2=кумулятивный
+ProgressionDialog_3=плотность
+ProgressionDialog_4=Структурная единица: 
+ProgressionDialog_5=удалить
+ProgressionDialog_7=Рег. Выр.: 
+ProgressionDialog_8=Запросы: 
+ProgressionDialog_9=добавить
+ProgressionEditorInput_0=PROGRESSION NAME
+RestartTXM_0=Перезагрузка видов...
+RestartTXM_1=Перезагрузить TXM
+RunGroovyScript_0=Выполнение скрипта
+RunGroovyScript_1=&Выполнить скрипт
+RunGroovyScript_2=Выполнить скрипт
+RunGroovyScript_3=*.groovy
+RunGroovyScript_4=Ошибка при открытии скрипта groovy : {0}
+RunGroovyScript_8=** Ошибка при выполнении скрипта groovy : {0}
+RunGroovyScript_9=Выполнение скрипта
+SVGGraphicEditor_1=Не удается показать график на основе предоставленной информации.
+SaveAs_2=** Не удалось сохранить 
+ScriptPreferencePage_0=Следующий номер сессии 
+ScriptPreferencePage_3=&Корневая папка
+SendToR_0=Передача в рабочее пространство R: 
+SendToR_3=Поиск видов...
+SetContextSize_1=Задать размер &контекстов
+SetContextSize_2=Задать размер контекстов
+SetContextSize_3=Размер левого контекста
+SetContextSize_4=Размер правого контекста
+SetEncoding_0=Изменить кодировку
+SetEncoding_1=Изменить кодировку.\n\n\tИспользуемая кодировка: 
+SetEncoding_2=\n\tКодировка по умолчанию:  
+SetLineNumber_0=Количество строк на странице
+SetLineNumber_1=№ строки
+SetSortProperty_1=Задать свойство &Сортировки
+SetSortProperty_2=Задать свойство сортировки
+SetSortProperty_3=Свойство сортировки
+ShowSelected_4=Править свойство ''LANG''
+ShowSvgHelp_0=Команды SVG
+ShowSvgHelp_1=Перевод: Shift + Левый щелчок + Перетащить\n
+ShowSvgHelp_2=Масштаб +/- : Shift + Правый щелчок + Перетащить\n
+ShowSvgHelp_3=Увеличение выделения: Ctrl + Левый щелчок + Перетащить\n
+ShowSvgHelp_4=Поворот: Ctrl + Правый щелчок + Перетащить\n
+ShowSvgHelp_5=Исходное состояние: F5
+SingularValuesEditor_0=Ошибочный ввод
+SortPropertySelection_0=Выбрать свойства для сортировки
+Structure_field_not_empty=Поле Структура не должно быть пустым.
+Submit_0=Сохранить
+TXMCqpServerWatcher_0=Поисковая машина остановлена
+TXMCqpServerWatcher_1=Пожалуйста, подождите, пока поисковая машина перезагружается...
+TXMRServeWatcher_0=Статистическая машина остановлена
+TXMRServeWatcher_1=Пожалуйста, подождите, пока статистическая машина перезагружается...
+TXMRServeWatcher_2=Ok
+TXMRServeWatcher_3=Перезагрузка вида корпусов...
+TXMRServeWatcher_4=Пожалуйста, подождите...
+TablableVector_0=Обе таблицы должны быть одинакового размера.
+TableEditor_0=Невозможно показать таблицу с предложенной информацией
+TableKeyListener_1=Наберите регулярное выражение вашего запроса
+TableKeyListener_6=Скопированные строки: \n
+TableSorter_0=Номер колонки слишком велик.
+TextometriePreferencePage_0=N/A_Automatically find new updates and notify me
+TextometriePreferencePage_1=N/A_General preferences
+TextometriePreferencePage_14=Настройки сохранены в 
+TextometriePreferencePage_15=Экспорт настроек в файл
+TextometriePreferencePage_18=Настройки импортированы из 
+TextometriePreferencePage_19=Необходимо закрыть окно настроек, чтобы TXM могла их обновить
+TextometriePreferencePage_2=N/A_Auto updates
+TextometriePreferencePage_20=Импортировать из файла
+TreeTaggerPreferencePage_0=N/A_Don''t normalize apotrophes to '' 
+TreeTaggerPreferencePage_1=Путь к установочной папке TreeTagger
+TreeTaggerPreferencePage_2=Путь к папке с языковыми моделами для TreeTagger
+TreeTaggerPreferencePage_3=Опции [разделитель ''  '' (2 пробела)]
+TxmBrowser_0=Начало
+TxmBrowser_10=Не удается запустить встроенные браузер. Вы должны отрегулировать соответствующий параметр в Настройках, с помощью меню Общие / Веб браузер
+TxmBrowser_11=Нет предыдущего текста
+TxmBrowser_12=Нет следующего текста
+TxmBrowser_5=предыдущая страница
+TxmBrowser_6=следующая страница
+TxmBrowser_7=В конец
+TxmBrowser_8=следующий текст
+TxmBrowser_9=предыдущий текст
+TxmCommand_1=Загрузка расширения
+TxtEditor_0=ТекстовыйРедактор: 
+TxtEditor_1=Найденная кодировка 
+UIParameterException_0=N/A_Error  
+UserPreferencePage_0=Страница Пользователя
+UserPreferencePage_3=Не требуется подтверждение для удаления объекта
+ViewPropertySelectionDialog_0=Выбрать свойства
+ViewPropertySelection_0=Выбрать свойства
+IndexEditor_0=Запрос пуст
+IndexEditor_1=** Не удалось вычислить индекс
+IndexEditor_10=N/A_CQP error:
+IndexEditor_17=Индекс:\n\tРаспределение {0}\n\tЗапрос {1}\n\tсвойства {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_18=Индекс:\n\tКорпус {0}\n\tЗапрос {1}\n\tсвойства {2}\n\tFmin {3}\n\tFmax {4}
+IndexEditor_2=Индекс <{0}> со свойством {1} в корпусе {2}
+IndexEditor_20=Индекс <{0}> со свойством {1} в корпусе {2}
+IndexEditor_22=Не удается инициализировать таблицу индекса
+IndexEditor_25=, fmin 
+IndexEditor_26=, fmax 
+IndexEditor_27=t 
+IndexEditor_28=, v 
+IndexEditor_29=Открытие таблицы индекса
+IndexEditor_3=Запрос: 
+IndexEditor_31=Ни одного результата
+IndexEditor_33=Расчет индекса
+IndexEditor_36=Колонка для сортировке
+IndexEditor_37=Сортировка завершена.
+IndexEditor_4=&Искать
+IndexEditor_5=Fmin : 
+IndexEditor_6=Fmax : 
+IndexEditor_7=Vmax : 
+IndexEditor_8=Число результатов на странице: 
+IndexEditor_9=Пороги: 
+IndexToCooccurrence_0=** Ошибка при связывании Индекса и Совместной встречаемости
+IndexToLexicalTable_0=Невозможно составить словарную таблицу из Индекса, полученного на Корпусе
+WordCloudPreferencePage_0=N/A_Maximum number of words
+WordCloudPreferencePage_1=N/A_Minimal frequency
+WordCloudPreferencePage_2=N/A_Percents of rotated words
+WordCloudPreferencePage_3=N/A_Random color order

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/messages_ru_utf8.properties
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/i18n/txm.po
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/i18n/txm.po	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/i18n/txm.po	(revision 122)
@@ -0,0 +1,3246 @@
+# Serge Heiden <slh@ens-lyon.fr>, 2011.
+#. extracted from messages.properties, messages_fr.properties
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-09-14 12:10+0200\n"
+"PO-Revision-Date: 2011-09-19 16:27+0200\n"
+"Last-Translator: Serge Heiden <slh@ens-lyon.fr>\n"
+"Language-Team: LinCoBaTO\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.5.2\n"
+
+#: About_Menu_Label
+msgid "About TXM..."
+msgstr "À propos de TXM..."
+
+#: AdapterFactory_0
+msgid ""
+"Warning: the corpus {0} is corrupted. Some commands won't work correctly. "
+msgstr ""
+"Avertissement : le corpus {0} est corrompu. Certaines commandes ne "
+"fonctionneront pas correctement."
+
+#: AddBase_1
+msgid "Add a Base: {0}"
+msgstr "La base {0} a été ajoutée."
+
+#: AddBase_10
+msgid "TXM is ready."
+msgstr "TXM prêt."
+
+#: AddBase_11
+msgid "Failed to copy the registry file: {0} to: {1}"
+msgstr "Échec de la copie du fichier de registre : {0} vers {1}"
+
+#: AddBase_16
+msgid "Cannot set the 'LANG' property from the 'txmcorpus' structure: "
+msgstr ""
+"Impossible d'affecter la langue {0} à la propriété 'LANG' de la structure "
+"<txmcorpus>"
+
+#: AddBase_17
+msgid "Cannot read the file {0}"
+msgstr "Impossible de lire le fichier {0}"
+
+#: AddBase_19
+msgid "Warning"
+msgstr "Attention"
+
+#: AddBase_2
+msgid ""
+"Failed to load base from directory: {0}.\n"
+"We cannot find the necessary components"
+msgstr ""
+"Échec du chargement du corpus à partir du répertoire : {0}.\n"
+"Impossible de trouver les composants nécessaires."
+
+#: AddBase_20
+msgid "The {0} directory already exists. Do you want to replace it ?"
+msgstr "Le répertoire {0} existe déjà. Voulez-vous le remplacer ?"
+
+#: AddBase_22
+msgid "This file is not a TXM file: {0}"
+msgstr "Le fichier {0} n'est pas un fichier TXM."
+
+#: AddBase_23
+msgid "The corpus {0} has no 'LANG' set in 'txmcorpus'"
+msgstr ""
+"Le corpus {0} n'a pas de propriété 'LANG' associée à la structure "
+"<txmcorpus>"
+
+#: AddBase_24
+msgid "Failed to load base {0} "
+msgstr "Échec du chargement du corpus {0}"
+
+#: AddBase_25
+msgid "A binary corpus is a TXM file (extension .txm or .zip)"
+msgstr ""
+"Un corpus TXM au format binaire est soit un fichier d'extension .txm ou "
+".zip, soit un répertoire composé des sous-répertoires 'html', 'data', "
+"'registry', 'txm'"
+
+#: AddBase_27
+msgid "Load binary corpus"
+msgstr "Charger un corpus"
+
+#: AddBase_28
+msgid "Unziping binary corpus"
+msgstr "Extraction du corpus binaire"
+
+#: AddBase_29
+msgid "Unziping {0} in {1}"
+msgstr "Extraction de {0} dans {1}"
+
+#: AddBase_3
+msgid "Enter the base name"
+msgstr "Saisissez le nom du corpus"
+
+#: AddBase_31
+msgid "Could not dezip binary corpus, reason= "
+msgstr "Échec de l'extraction du corpus binaire : "
+
+#: AddBase_32
+msgid "Loading the corpus in the toolbox"
+msgstr "Chargement du corpus dans la plateforme"
+
+#: AddBase_33
+msgid "Restarting the toolbox"
+msgstr "Redémarrage de la plateforme"
+
+#: AddBase_34
+msgid "TXM workspace is not initialized, please restart TXM."
+msgstr ""
+"L'espace de travail de TXM n'est pas initialisé, veuillez redémarrer TXM."
+
+#: AddBase_37
+msgid "TXM registry directory not set: "
+msgstr "Répertoire de registre de TXM non défini : "
+
+#: AddBase_38
+msgid "The copy of the registry file '{0}' failed"
+msgstr "La copie du fichier de registre '{0}' n'a pas abouti"
+
+#: AddProject_3
+msgid "Enter project name"
+msgstr "Saisissez le nom du projet"
+
+#: AdvancePreferencePage_0
+msgid "TXM Advanced settings"
+msgstr "Préférences avancées"
+
+#: AdvancePreferencePage_1
+msgid "TXM Install directory"
+msgstr "Dossier d'installation de TXM"
+
+#: AdvancePreferencePage_12
+msgid "Log level"
+msgstr "Niveau de commentaire"
+
+#: AdvancePreferencePage_13
+msgid "Log in the console"
+msgstr "Commentaires dans la console"
+
+#: AdvancePreferencePage_14
+msgid "Log in a file"
+msgstr "Commentaires dans un fichier"
+
+#: AdvancePreferencePage_2
+msgid "TXM user directory"
+msgstr "Répertoire utilisateur TXM"
+
+#: ApplicationWorkbenchAdvisor_0
+msgid "Initializing Toolbox..."
+msgstr "Initialisation de la plateforme..."
+
+#: ApplicationWorkbenchAdvisor_1
+msgid "Initialization of the Toolbox"
+msgstr "Initialisation de la plateforme..."
+
+#: ApplicationWorkbenchAdvisor_11
+msgid "Load sample corpora"
+msgstr "Chargement des corpus d'exemple "
+
+#: ApplicationWorkbenchAdvisor_12
+msgid "TXMHOME was set ({0}) sbut not created: "
+msgstr "La variable TXMHOME était bien définie ({0}) mais pas créée : "
+
+#: ApplicationWorkbenchAdvisor_13
+msgid "Could not create TXMHOME directory : {0}"
+msgstr "Échec de la création du répertoire TXMHOME : {0}"
+
+#: ApplicationWorkbenchAdvisor_19
+msgid "Could not configure TreeTagger parameters, reason= {0}"
+msgstr "Impossible de configurer les paramètres du logiciel TreeTagger : {0}"
+
+#: ApplicationWorkbenchAdvisor_2
+msgid "Loading TXM install preferences"
+msgstr "Chargement des préférences d'installation de TXM"
+
+#: ApplicationWorkbenchAdvisor_22
+msgid ""
+"The UI locale has been set to {0}, changes will be applied at next startup"
+msgstr ""
+"La langue de l'interface a été positionnée à {0}, les modifications seront "
+"appliquées au prochain démarrage."
+
+#: ApplicationWorkbenchAdvisor_24
+msgid "Restart TXM to apply language changes."
+msgstr "Redémarrez TXM pour appliquer le changement de langue."
+
+#: ApplicationWorkbenchAdvisor_25
+msgid "reading preferences from the install path: {0}"
+msgstr "Lecture des préférences depuis le chemin d'installation : {0}"
+
+#: ApplicationWorkbenchAdvisor_3
+msgid "Checking if the workspace directory already exists"
+msgstr "Vérification de la présence du répertoire de travail"
+
+#: ApplicationWorkbenchAdvisor_31
+msgid "Failed to create TXM default.xml workspace"
+msgstr "Échec de la création de l'espace de travail 'default.xml'"
+
+#: ApplicationWorkbenchAdvisor_32
+msgid "TreeTagger is not installed or paths are incorrect."
+msgstr "TreeTagger n'est pas installé, ou les chemins d'accès sont incorrects."
+
+#: ApplicationWorkbenchAdvisor_33
+msgid "TreeTagger paths have been set to default values"
+msgstr ""
+"Les chemins d'accès à TreeTagger ont été réglés à des valeurs par défaut."
+
+#: ApplicationWorkbenchAdvisor_39
+msgid "Missing folder in TXM install dir: {0}"
+msgstr "Répertoire manquant dans le répertoire d'installation de TXM : {0}"
+
+#: ApplicationWorkbenchAdvisor_4
+msgid "Checking TreeTagger installation"
+msgstr "Vérification de l'installation de TreeTagger"
+
+#: ApplicationWorkbenchAdvisor_40
+msgid "Failed to copy TXM files from TXMINSTALL DIR to TXMHOME : {0}"
+msgstr ""
+"Échec de la copie des fichiers TXM du répertoire TXMINSTALL vers TXMHOME : "
+"{0}"
+
+#: ApplicationWorkbenchAdvisor_41
+msgid "Failed to set preferences : {0}"
+msgstr "Échec de réglage des préférences : {0}"
+
+#: ApplicationWorkbenchAdvisor_45
+msgid "Cannot read file {0}"
+msgstr "Impossible de lire le fichier {0}"
+
+#: ApplicationWorkbenchAdvisor_5
+msgid "System Output"
+msgstr "Sortie standard"
+
+#: ApplicationWorkbenchAdvisor_52
+msgid "Failed to load sample corpora. reason={0}"
+msgstr "Impossible de charger les corpus d'exemple : {0}"
+
+#: ApplicationWorkbenchAdvisor_7
+msgid ""
+"Creating TXM user working directory\n"
+"Loading sample corpora."
+msgstr ""
+"Création de l'espace de travail utilisateur de TXM.\n"
+"Chargement des corpus d'exemple."
+
+#: ApplicationWorkbenchAdvisor_8
+msgid "install path: {0}"
+msgstr "Chemin d'installation : {0}"
+
+#: ApplicationWorkbenchAdvisor_9
+msgid "Could not read install preferences file"
+msgstr "Échec de lecture du fichier des préférences d'installation"
+
+#: ApplicationWorkbenchAdvisor_init
+msgid "Starting up..."
+msgstr "Démarrage..."
+
+#: ApplicationWorkbenchAdvisor_init_failed
+msgid ""
+"Startup failed, please check TXM preferences (in the 'File>Preferences' "
+"menu) or contact txm-users mailing list (menu: Help>"
+msgstr ""
+"Le démarrage de la plateforme a été interrompu, veuillez régler les "
+"préférences de TXM (dans le menu 'Fichier>Préférences')"
+
+#: ApplicationWorkbenchAdvisor_ready
+msgid "Ready."
+msgstr "Prêt."
+
+#: ApplicationWorkbenchWindowAdvisor_statusready
+msgid "Waking up..."
+msgstr "Démarrage en cours..."
+
+#: Application_6
+msgid ""
+"You need to install Java version 1.6 at least before launching TXM, your "
+"actual Java version is {0} "
+msgstr ""
+"Vous devez installer la version 1.6 de Java ou supérieur avant de lancer "
+"TXM, la version courante de Java sur cette machine est {0}"
+
+#: AssistedQueryWidget_0
+msgid "Open the query assistant"
+msgstr "Ouvrir l'assistant de requêtes"
+
+#: BackToText_0
+msgid "Display in full text"
+msgstr "Afficher en plein texte"
+
+#: CAHPreferencePage_0
+msgid "Display graphics in 2D"
+msgstr "Afficher les graphiques en 2D"
+
+#: CAHPreferencePage_1
+msgid "Classification"
+msgstr "Classification"
+
+#: CAHPreferencePage_2
+msgid "Number of cluster"
+msgstr "Nombre de clusters"
+
+#: CAHPreferencePage_3
+msgid "Method"
+msgstr "Méthode"
+
+#: CAHPreferencePage_4
+msgid "Metric"
+msgstr "Métrique"
+
+#: CANT_CREATE_GRAPHIC
+msgid "Cannot create the graphic"
+msgstr "Impossible de créer le graphique"
+
+#: CAPreferencePage_0
+msgid "Quality column format"
+msgstr "Format de la colonne Qualité"
+
+#: CAPreferencePage_1
+msgid "Contribution column format"
+msgstr "Format de la colonne Contribution"
+
+#: CAPreferencePage_3
+msgid "Show the individuals (columns) in the factorial plane graphic"
+msgstr "Afficher les colonnes dans le graphique du plan factoriel"
+
+#: CAPreferencePage_4
+msgid "Show the variables (rows) in the factorial plane graphic"
+msgstr "Afficher les lignes dans le graphique du plan factoriel"
+
+#: CAPreferencePage_5
+msgid "Mass column format"
+msgstr "Format de la colonne Masse"
+
+#: CAPreferencePage_6
+msgid "Distance column format"
+msgstr "Format de la colonne Distance"
+
+#: CAPreferencePage_7
+msgid "Cos² column format"
+msgstr "Format de la colonne Cos²"
+
+#: CAPreferencePage_8
+msgid "Coord column format"
+msgstr "Format de la colonne Coord"
+
+#: CQPPreferenceInitializer_0
+msgid "localhost"
+msgstr "localhost"
+
+#: CQPPreferenceInitializer_1
+msgid "anonymous"
+msgstr "anonymous"
+
+#: CQPPreferenceInitializer_6
+msgid " -b 1000000"
+msgstr " -b 1000000"
+
+#: CQPPreferencePage_0
+msgid "CWB Server Configuration"
+msgstr "Configuration du serveur CWB"
+
+#: CQPPreferencePage_10
+msgid "&Remote CWB server address:"
+msgstr "&Serveur CWB distant"
+
+#: CQPPreferencePage_11
+msgid "CWB server : &host:"
+msgstr "Serveur distant : nom de machine"
+
+#: CQPPreferencePage_12
+msgid "CWB server : &port:"
+msgstr "Serveur distant : numéro de &port"
+
+#: CQPPreferencePage_13
+msgid "CWB server : &login:"
+msgstr "Serveur distant : &login"
+
+#: CQPPreferencePage_14
+msgid "CWB server : &password:"
+msgstr "Serveur distant : &mot de passe"
+
+#: CQPPreferencePage_15
+msgid "Path to CWB server binary"
+msgstr "Chemin vers le fichier &exécutable 'cqpserver'"
+
+#: CQPPreferencePage_16
+msgid "Path to CWB server registry"
+msgstr "Chemin vers le répertoire de &Registre du serveur CWB"
+
+#: CQPPreferencePage_17
+msgid "Path to CWB server initialisation file"
+msgstr "Chemin vers le fichier d'initialisation du serveur CWB"
+
+#: CQPPreferencePage_18
+msgid "Additionnal &options for the CWB server:"
+msgstr "Options additionnelles pour le serveur CWB : "
+
+#: Cannot_ask_simple_when_advance
+msgid ""
+"Cannot ask for the simple tab when the user has selected the advanced tab"
+msgstr ""
+"Impossible d'afficher l'onglet des options simples quand l'utilisateur a "
+"sélectionné l'affichage des options avancées"
+
+#: ColRowInfosLabelProvider_19
+msgid "Qual"
+msgstr "Qual"
+
+#: ColRowInfosLabelProvider_9
+msgid "Chi²"
+msgstr "χ²"
+
+#: ColsRowsInfosEditor_0
+msgid "Wrong input"
+msgstr "Entrée erronée"
+
+#: ColsRowsInfosEditor_2
+msgid "Infos: {0}"
+msgstr "Infos: {0}"
+
+#: ComplexSortSelector_0
+msgid "sort keys: "
+msgstr "Clés de tri : "
+
+#: ComplexSortSelector_1
+msgid "Complex sort: "
+msgstr "Tri multiple : "
+
+#: ComplexSortSelector_5
+msgid "Error during sort: {0}"
+msgstr "Erreur pendant le tri : {0}"
+
+#: ComplexSortSelector_6
+msgid "default"
+msgstr "par défaut"
+
+#: ComplexSort_0
+msgid "Opening complex sort dialog"
+msgstr "Ouverture de la boite de dialogue du tri composé"
+
+#: ComplexSort_1
+msgid "&Multiple Sort"
+msgstr "&Tri composé"
+
+#: ComplexSort_10
+msgid "Invalid comparator"
+msgstr "Comparateur invalide"
+
+#: ComplexSort_11
+msgid "you must select at least 2 comparators"
+msgstr "Il faut sélectionner au moins deux comparateurs"
+
+#: ComplexSort_12
+msgid "Adding to selection"
+msgstr "Ajouter à la sélection"
+
+#: ComplexSort_14
+msgid "Remove from selection"
+msgstr "Retirer de la sélection"
+
+#: ComplexSort_16
+msgid "Moving up the selection"
+msgstr "Monter d'un cran la sélection"
+
+#: ComplexSort_18
+msgid "Moving down the selection"
+msgstr "Descendre d'un cran la sélection"
+
+#: ComplexSort_2
+msgid "Define and use a composite sorter"
+msgstr "Définir et utiliser un tri composé"
+
+#: ComplexSort_3
+msgid "Select a composite sorter"
+msgstr "Sélectionnez un tri composé"
+
+#: ComplexSort_4
+msgid "&New"
+msgstr "&Nouveau"
+
+#: ComplexSort_5
+msgid "Create a new sorter"
+msgstr "Créer une nouvelle méthode de tri"
+
+#: ComplexSort_6
+msgid "Name:"
+msgstr "Nom : "
+
+#: ComplexSort_9
+msgid "Name is mandatory."
+msgstr "Le champ Nom est obligatoire."
+
+#: ComplexSubcorpusPanel_0
+msgid "Match"
+msgstr "Sélectionner"
+
+#: ComplexSubcorpusPanel_1
+msgid "All criteria"
+msgstr "Tous les critères"
+
+#: ComplexSubcorpusPanel_16
+msgid "does not contain"
+msgstr "ne contient pas"
+
+#: ComplexSubcorpusPanel_2
+msgid "Some criteria"
+msgstr "certains critères"
+
+#: ComplexSubcorpusPanel_4
+msgid "Query "
+msgstr "Requête "
+
+#: ComplexSubcorpusPanel_5
+msgid "Refresh"
+msgstr "Rafraîchir"
+
+#: ComputeCAH_0
+msgid "Compute Classification"
+msgstr "Calcul de la Classification"
+
+#: ComputeCAH_1
+msgid "Show graphic"
+msgstr "Afficher le graphique"
+
+#: ComputeCAH_2
+msgid "Error: temporary file created cannot be written: "
+msgstr "** Impossible d'écrire dans le fichier temporaire"
+
+#: ComputeClassification_0
+msgid "create Classification"
+msgstr "Création de la Classification"
+
+#: ComputeClassification_1
+msgid "draw Classification"
+msgstr "Affichage de la Classification"
+
+#: ComputeClassification_3
+msgid "Classification parameters"
+msgstr "Paramètres de la Classification"
+
+#: ComputeClassification_4
+msgid "N cluster"
+msgstr "Clusters"
+
+#: ComputeClassification_5
+msgid "Cols"
+msgstr "Colonnes"
+
+#: ComputeClassification_6
+msgid "Rows"
+msgstr "Lignes"
+
+#: ComputeConcordance_0
+msgid "Opening the Concordance result"
+msgstr "Ouverture de la fenêtre de concordance"
+
+#: ComputeCoocFromLines_0
+msgid "Computing Cooccurrents"
+msgstr "Calcul des cooccurrents en cours"
+
+#: ComputeCoocFromLines_1
+msgid "Opening the Cooccurrents table"
+msgstr "Ouverture du tableau de cooccurrents"
+
+#: ComputeCooccurrences_0
+msgid "Opening cooccurrents table"
+msgstr "Chargement du tableau de cooccurrents"
+
+#: ComputeCooccurrences_1
+msgid "cannot compute cooccurrences with the selection "
+msgstr "** Impossible de calculer les cooccurrents de la sélection"
+
+#: ComputeCorrespondanceAnalysisDialog_0
+msgid "Correspondance analysis"
+msgstr "Analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysisDialog_1
+msgid "Property:"
+msgstr "Propriétés : "
+
+#: ComputeCorrespondanceAnalysisDialog_2
+msgid "Max lines N: "
+msgstr "Nombre de lignes :"
+
+#: ComputeCorrespondanceAnalysis_0
+msgid "Computing Correspondance analysis on {0} with property {1}"
+msgstr "Calcul de l'analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysis_13
+msgid "Can't compute CA on lexical table with less than 4 columns"
+msgstr ""
+"** Impossible de calculer l'analyse factorielle des correspondances avec "
+"moins de 4 colonnes "
+
+#: ComputeCorrespondanceAnalysis_14
+msgid "Opening the Correspondance Analysis results"
+msgstr "Ouverture des résultats de l'analyse factorielle des correspondances"
+
+#: ComputeCorrespondanceAnalysis_15
+msgid "Create CA"
+msgstr "Création de la fenêtre de l'AFC"
+
+#: ComputeCorrespondanceAnalysis_16
+msgid "Get LexicalTable CA"
+msgstr "Création de la table lexicale pour l'AFC"
+
+#: ComputeCorrespondanceAnalysis_17
+msgid "Compute CA"
+msgstr "Calcul de l'AFC"
+
+#: ComputeCorrespondanceAnalysis_3
+msgid "Error"
+msgstr "Erreur"
+
+#: ComputeCorrespondanceAnalysis_4
+msgid ""
+"Cannot compute factorial analysis with only {0} parts (the minimum is 4 "
+"parts)."
+msgstr "** Impossible de calculer l'analyse factorielle avec seulement "
+
+#: ComputeCorrespondanceAnalysis_6
+msgid "OK"
+msgstr "OK"
+
+#: ComputeCorrespondanceAnalysis_8
+msgid "Loading correspondances analysis results..."
+msgstr "Chargement des résultats de l'analyse factorielle"
+
+#: ComputeFrequencyList_2
+msgid "Processing word lexicon of {0} in the corpus {1}"
+msgstr "Calcul du lexique de la propriété {0} dans le corpus {1}"
+
+#: ComputeIndexFromLines_0
+msgid "Send selection to Index"
+msgstr "Envoyer la sélection vers la commande Index"
+
+#: ComputeLexicalTable_0
+msgid "Computing the Lexical Table"
+msgstr "Calcul de la table lexicale"
+
+#: ComputeLexicalTable_1
+msgid "Computing the Lexical Table {0} with the property {1} "
+msgstr "Calcul de la table lexicale {0} avec la propriété {1}"
+
+#: ComputeLexicalTable_10
+msgid "Opening the lexical table"
+msgstr "Ouverture de la table lexicale"
+
+#: ComputeLexicalTable_12
+msgid "User index occurrences"
+msgstr "Occurrences d'index"
+
+#: ComputeLexicalTable_13
+msgid "Select which margins you want to use"
+msgstr "Sélectionnez les marges à utiliser"
+
+#: ComputeLexicalTable_16
+msgid "Use all occurrences"
+msgstr "Total = toutes les occurrences du corpus "
+
+#: ComputeLexicalTable_3
+msgid "Opening marge configuration dialog"
+msgstr "Ouverture de la boite de dialogue de configuration des marges"
+
+#: ComputeLexicalTable_5
+msgid "Can not create a lexical table with an Index created on a Corpus"
+msgstr ""
+"** Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"corpus"
+
+#: ComputeLexicalTable_6
+msgid "Vocabularies must share the same properties: {0}"
+msgstr ""
+"** Les vocabulaires doivent être composés de la même combinaison de "
+"propriétés : {0}"
+
+#: ComputeLexicalTable_7
+msgid "Vocabularies must share the same partition: {0}"
+msgstr "Les vocabulaires doivent avoir la même partition : {0}"
+
+#: ComputeLexicalTable_9
+msgid "LexicalTable dialog, failed to get corpus size. Reason={0} "
+msgstr ""
+"** Boite de dialogue de la table lexicale : impossible d'obtenir la taille "
+"du corpus. Cause {0}"
+
+#: ComputeReferencer_0
+msgid "Open references editor"
+msgstr "Ouverture du résultat du Référenceur"
+
+#: ComputeProgression_10
+msgid "Opening progression graphic"
+msgstr "Ouverture du graphique de progression"
+
+#: ComputeProgression_12
+msgid "Done: Number of positions: {0}"
+msgstr "Terminé : {0} positions affichées"
+
+#: ComputeProgression_13
+msgid "Progression failed: {0}"
+msgstr "** Échec du calcul de la progression : {0}"
+
+#: ComputeProgression_2
+msgid "Computing progression of {0} in the corpus {1} "
+msgstr "Calcul de la progression de <{0}> dans le corpus {1}"
+
+#: ComputeProgression_4
+msgid ""
+"Computing progression of {0} with queries: {1}, structural unit: {2}, "
+"property: {3}, cumulative: {4}"
+msgstr ""
+"Calcul de la progression de {0} avec la requête : {1}, la structure : {2}, "
+"la propriété : {3}, cumulatif: {4}"
+
+#: ComputeProgression_9
+msgid "{0} is not writable"
+msgstr "** {0} n'est pas accessible en écriture"
+
+#: ComputeSpecificitiesDialog_0
+msgid "ERROR_ComputeSpecificitiesDialog {0}"
+msgstr "** Boite de dialogue 'Calcul des Spécificités' - {0}"
+
+#: ComputeSpecificitiesDialog_1
+msgid "Regex syntax error: {0}"
+msgstr "Erreur de syntaxe dans l'expression régulière : {0}"
+
+#: ComputeSpecificitiesDialog_3
+msgid "Focus:"
+msgstr "Focus :"
+
+#: ComputeSpecificitiesDialog_4
+msgid "Part focus:"
+msgstr "Focus de partie :"
+
+#: ComputeSpecificitiesDialog_9
+msgid "No filtering of part available"
+msgstr "Pas de filtrage de partie disponible"
+
+#: ComputeSpecificities_0
+msgid "Computing Specificites"
+msgstr "Calcul des spécificités sur"
+
+#: ComputeSpecificities_1
+msgid "&Specificities"
+msgstr "&Specificités"
+
+#: ComputeSpecificities_10
+msgid "Computing Specificities on subcorpus {0} with corpus {1}. Property: {2}"
+msgstr "Calcul des spécificités du sous-corpus {0} du corpus {1}, propriété {2}"
+
+#: ComputeSpecificities_2
+msgid ""
+"Computing Specificites on {0} and property {1} with word focus: {2} and part "
+"focus: {3} "
+msgstr ""
+"Calcul des spécificités de {0}, propriété {1} focus de mot : {2}, focus de "
+"partie : {3} "
+
+#: ComputeSpecificities_7
+msgid "Loading specificities results..."
+msgstr "Chargement du tableau des spécificités..."
+
+#: ComputeSpecifities_10
+msgid "Opening specificities results table"
+msgstr "Ouverture du tableau de résultats des spécificités"
+
+#: ComputeSpecifities_11
+msgid "Compute Specificities on with lexical table {0}"
+msgstr "Calcul des spécificités de la table lexicale {0}"
+
+#: ComputeSpecifities_2
+msgid "Refreshing corpora view..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: ComputeSpecifities_3
+msgid ""
+"Computing Specificities on subcorpus {0} with corpus {1}. Properties: {2} "
+msgstr "Calcul des spécificités du sous-corpus {0} du corpus {1}, propriété {2}"
+
+#: ComputeVocabulary_0
+msgid "Opening Index results"
+msgstr "Ouverture de l'Index"
+
+#: Compute_Specificities
+msgid "Computing specificities."
+msgstr "Calcul des Spécificités"
+
+#: ConcordancerPreferencePage_3
+msgid "Concordance Parameters"
+msgstr "Paramètres des Concordances "
+
+#: ConcordancerPreferencePage_4
+msgid "Number of lines per &Page:"
+msgstr "Lignes par &Page : "
+
+#: ConcordancerPreferencePage_5
+msgid "&Left context length in words"
+msgstr "Contexte &Gauche (en mots)"
+
+#: ConcordancerPreferencePage_6
+msgid "&Right context length in words"
+msgstr "Contexte &Droit (en mots)"
+
+#: ConcordancesEditorContributor_0
+msgid "Concordance"
+msgstr "Concordance"
+
+#: ConcordancesEditor_1
+msgid "Reference"
+msgstr "Référence"
+
+#: ConcordancesEditor_11
+msgid "|<"
+msgstr "|<"
+
+#: ConcordancesEditor_12
+msgid "<"
+msgstr "<"
+
+#: ConcordancesEditor_13
+msgid ">"
+msgstr ">"
+
+#: ConcordancesEditor_14
+msgid ">|"
+msgstr ">|"
+
+#: ConcordancesEditor_16
+msgid "&Keyword:"
+msgstr "&Pivot: "
+
+#: ConcordancesEditor_18
+msgid "&Edit"
+msgstr "&Editer"
+
+#: ConcordancesEditor_19
+msgid "Found {0} occurrences"
+msgstr "{0} occurrences"
+
+#: ConcordancesEditor_2
+msgid "Left context"
+msgstr "Contexte gauche"
+
+#: ConcordancesEditor_20
+msgid "Loading line informations..."
+msgstr "Chargement des informations sur la ligne..."
+
+#: ConcordancesEditor_23
+msgid "BackToText: Project {0} is missing"
+msgstr "Retour au texte : projet {0} manquant"
+
+#: ConcordancesEditor_25
+msgid "BackToText: Base {0} is missing"
+msgstr "Retour au texte : corpus {0} manquant "
+
+#: ConcordancesEditor_26
+msgid "Project id {0} Base id {1} Text id {2}"
+msgstr "id projet {0} id corpus {1} id texte {2}"
+
+#: ConcordancesEditor_27
+msgid "BackToText: Text {0} is missing"
+msgstr "Retour au texte : texte {0} manquant"
+
+#: ConcordancesEditor_29
+msgid "No page found... for "
+msgstr "Page non trouvée... pour "
+
+#: ConcordancesEditor_3
+msgid "Keyword"
+msgstr "Pivot"
+
+#: ConcordancesEditor_30
+msgid "BackToText: default edition is missing"
+msgstr "Retour au texte : édition par défaut introuvable"
+
+#: ConcordancesEditor_34
+msgid "Opening the Concordance"
+msgstr "Chargement de la concordance"
+
+#: ConcordancesEditor_37
+msgid "Sorting reference column"
+msgstr "Tri des références"
+
+#: ConcordancesEditor_38
+msgid "Hide settings"
+msgstr "Cacher paramètres"
+
+#: ConcordancesEditor_39
+msgid "Show settings"
+msgstr "Afficher paramètres"
+
+#: ConcordancesEditor_4
+msgid "Right context"
+msgstr "Contexte droit"
+
+#: ConcordancesEditor_41
+msgid "Sorting left context column"
+msgstr "Tri du contexte gauche"
+
+#: ConcordancesEditor_43
+msgid "The {0} corpus has no default references: {1} "
+msgstr "Le corpus {0} n'a pas de références par défaut : {1}"
+
+#: ConcordancesEditor_45
+msgid "Sorting keyword column"
+msgstr "Tri du pivot"
+
+#: ConcordancesEditor_46
+msgid "Full text display failed: {0}"
+msgstr "** Impossible d'afficher en plein texte : {0}"
+
+#: ConcordancesEditor_48
+msgid "Sorting right context column"
+msgstr "Tri du contexte droit"
+
+#: ConcordancesEditor_5
+msgid "Concordance of <{0}> in corpus {1}"
+msgstr "Concordance de <{0}> dans le corpus {1}"
+
+#: ConcordancesEditor_50
+msgid "Opening corpus edition"
+msgstr "Ouverture de l'édition"
+
+#: ConcordancesEditor_52
+msgid "Done: one result"
+msgstr "Terminé : un résultat"
+
+#: ConcordancesEditor_55
+msgid "Opening view property dialog"
+msgstr "Ouverture de la boite de dialogue des propriétés"
+
+#: ConcordancesEditor_56
+msgid "Start computing concordance"
+msgstr "Début du calcul des concordances"
+
+#: CoocPreferencePage_0
+msgid "Score format (default 0.0000E00)"
+msgstr "Format de l'indice (par défault 0.0000E00)"
+
+#: CoocPreferencePage_1
+msgid "Minimum frequency threshold of the cooccurent"
+msgstr "Seuil minimum de fréquence du cooccurrent"
+
+#: CoocPreferencePage_2
+msgid "Minimum cooccurency count threshold"
+msgstr "Seuil minimum de fréquence de cooccurrences"
+
+#: CoocPreferencePage_3
+msgid "Minimum cooccurency score threshold"
+msgstr "Seuil minimum de l'indice de cooccurrences"
+
+#: CoocPreferencePage_5
+msgid "Cooccurrences"
+msgstr "Cooccurrences"
+
+#: CooccurrencesEditor_0
+msgid "Sort by: {0}"
+msgstr "Trier par : {0}"
+
+#: CooccurrencesEditor_10
+msgid "Cofrequency"
+msgstr "Cofréquence"
+
+#: CooccurrencesEditor_11
+msgid "Score value is not a double float"
+msgstr "La valeur de l'indice n'est pas un flottant double"
+
+#: CooccurrencesEditor_12
+msgid "Computing the cooccurrents of {0}"
+msgstr "Calcul des cooccurrents de {0}"
+
+#: CooccurrencesEditor_13
+msgid "Setting up cooccurrences process"
+msgstr "Réglage du calcul des cooccurrents"
+
+#: CooccurrencesEditor_14
+msgid "Computing cooccurrents"
+msgstr "Calcul des cooccurrents"
+
+#: CooccurrencesEditor_15
+msgid "Displaying results"
+msgstr "Affichage des résultats"
+
+#: CooccurrencesEditor_16
+msgid "Can't compute cooccurrences with no context"
+msgstr "** Impossible de calculer les cooccurrences sans contexte"
+
+#: CooccurrencesEditor_17
+msgid "Score"
+msgstr "Indice"
+
+#: CooccurrencesEditor_18
+msgid "The score threshold must be a real number != {0}"
+msgstr "Le seuil d'indice doit être un nombre réel différent de {0}"
+
+#: CooccurrencesEditor_2
+msgid "Search"
+msgstr "Calculer"
+
+#: CooccurrencesEditor_20
+msgid "Computing the cooccurrents of <{0}> in the {1} corpus"
+msgstr "Calcul des cooccurrents de <{0}> dans le corpus {1}"
+
+#: CooccurrencesEditor_23
+msgid "Done: no result."
+msgstr "Terminé : aucun résultat."
+
+#: CooccurrencesEditor_24
+msgid "Done: one result."
+msgstr "Terminé : un résultat."
+
+#: CooccurrencesEditor_27
+msgid "build queries"
+msgstr "Calcul des requêtes"
+
+#: CooccurrencesEditor_28
+msgid "get matches"
+msgstr "Calcul des retours"
+
+#: CooccurrencesEditor_29
+msgid "build line signatures"
+msgstr "Calcul des signatures de lignes"
+
+#: CooccurrencesEditor_3
+msgid "Cooccurrents properties: "
+msgstr "Propriétés des cooccurrents : "
+
+#: CooccurrencesEditor_30
+msgid "counting"
+msgstr "Comptage"
+
+#: CooccurrencesEditor_31
+msgid "build lexical table"
+msgstr "Calcul de la table lexicale"
+
+#: CooccurrencesEditor_32
+msgid "get specif scores"
+msgstr "Calcul des indices de spécificité\t"
+
+#: CooccurrencesEditor_33
+msgid "Start computing cooccurrences"
+msgstr "Début du calcul des cooccurrences"
+
+#: CooccurrencesEditor_34
+msgid "Done: {0} cooccurrents for {1} keywords"
+msgstr "Terminé : {0} cooccurrents de {1} occurrences de pivot"
+
+#: CooccurrencesEditor_4
+msgid "Thresholds: Freq ≥ "
+msgstr "Seuils : Fréq ≥ "
+
+#: CooccurrencesEditor_5
+msgid " Co-freq ≥ "
+msgstr " Co-fréq ≥ "
+
+#: CooccurrencesEditor_6
+msgid " Score ≥ "
+msgstr "Indice ≥ "
+
+#: CooccurrencesEditor_8
+msgid "Cooccurrent"
+msgstr "Cooccurrent"
+
+#: CooccurrencesEditor_9
+msgid "Mean distance"
+msgstr "Distance moyenne"
+
+#: CorporaView_0
+msgid "Corpus"
+msgstr "Corpus"
+
+#: CorporaView_1
+msgid "Error: {0}"
+msgstr "** Erreur : {0}"
+
+#: CorporaView_10
+msgid "&Refresh"
+msgstr "&Rafraîchir"
+
+#: CorporaView_11
+msgid "Refresh the view"
+msgstr "Rafraîchir l'affichage"
+
+#: CorporaView_2
+msgid "Can't retrieve {0} corpus size"
+msgstr "** Échec de récupération de la dimension du corpus {0}"
+
+#: CorporaView_3
+msgid "Error while computing the concordance: "
+msgstr "** Une erreur est survenue lors du calcul de la concordance"
+
+#: CorporaView_5
+msgid "Error while computing specificities:"
+msgstr "** Une erreur est survenue lors du calcul des spécificités"
+
+#: CorporaView_6
+msgid "Failed to open referencer editor: "
+msgstr "** Échec de l'ouverture de la fenêtre du Référenceur\t"
+
+#: CorporaView_7
+msgid "Error while computing the lexical table:"
+msgstr "** Une erreur est survenue lors du calcul du tableau lexical"
+
+#: CorporaView_9
+msgid "Error: {0} is not writeable"
+msgstr "** Erreur : impossible d'écrire dans {0}"
+
+#: CorrespondanceAnalysisEditorInput_0
+msgid "Singular values"
+msgstr "Valeurs propres"
+
+#: CorrespondanceAnalysisEditorInput_1
+msgid "Fact. plan"
+msgstr "Plan fact."
+
+#: CorrespondanceAnalysisEditorInput_10
+msgid "CA"
+msgstr "AFC"
+
+#: CorrespondanceAnalysisEditorInput_2
+msgid "Singular values histogram"
+msgstr "Histogramme des valeurs propres"
+
+#: CorrespondanceAnalysisEditorInput_25
+msgid "Q23"
+msgstr "Q23"
+
+#: CorrespondanceAnalysisEditorInput_26
+msgid "Mass"
+msgstr "Mass"
+
+#: CorrespondanceAnalysisEditorInput_27
+msgid "Dist"
+msgstr "Dist"
+
+#: CorrespondanceAnalysisEditorInput_29
+msgid "Cont"
+msgstr "Cont"
+
+#: CorrespondanceAnalysisEditorInput_3
+msgid "Correspondance analysis result cannot be null"
+msgstr "Le résultat de l'analyse des correspondances ne peut être nul "
+
+#: CorrespondanceAnalysisEditorInput_30
+msgid "Cos²"
+msgstr "Cos²"
+
+#: CorrespondanceAnalysisEditorInput_32
+msgid "c1"
+msgstr "c1"
+
+#: CorrespondanceAnalysisEditorInput_33
+msgid "c2"
+msgstr "c2"
+
+#: CorrespondanceAnalysisEditorInput_34
+msgid "c3"
+msgstr "c3"
+
+#: CorrespondanceAnalysisEditorInput_4
+msgid "Factor"
+msgstr "Facteur"
+
+#: CorrespondanceAnalysisEditorInput_46
+msgid "Q12"
+msgstr "Q12"
+
+#: CorrespondanceAnalysisEditorInput_47
+msgid "Q13"
+msgstr "Q13"
+
+#: CorrespondanceAnalysisEditorInput_8
+msgid "Rows infos "
+msgstr "Info Lignes"
+
+#: CorrespondanceAnalysisEditorInput_9
+msgid "Cols infos"
+msgstr "Info Colonnes"
+
+#: Correspondance_Analysis
+msgid "Compute Correspondance Analysis"
+msgstr "Calcul de l'analyse factorielle des correspondances"
+
+#: CreateFile_1
+msgid "New file: {0}"
+msgstr "Nouveau fichier : {0}"
+
+#: CreateFolder_1
+msgid "New folder: {0}"
+msgstr "Nouveau répertoire : {0}"
+
+#: CreateFrequencyList_0
+msgid "Processing word lexicon of corpus {0}"
+msgstr "Calcul de la liste des fréquences de formes du corpus {0}"
+
+#: CreateFrequencyList_1
+msgid "&Dictionary"
+msgstr "&Liste des fréquences"
+
+#: CreateFrequencyList_2
+msgid "Creating a lexicon."
+msgstr "Création d'une liste de fréquences"
+
+#: CreateFrequencyList_7
+msgid "Computing frequencies"
+msgstr "Calcul des fréquences"
+
+#: CreateFrequencyList_8
+msgid "Loading frequencies results..."
+msgstr "Chargement du tableau des fréquences"
+
+#: CreatePartitionDialog_0
+msgid "Create Partition"
+msgstr "Créer une Partition"
+
+#: CreatePartitionDialog_1
+msgid "Simple"
+msgstr "Simple"
+
+#: CreatePartitionDialog_11
+msgid "All property values must be assigned to a part"
+msgstr "Toutes les valeurs de la propriété doivent être attribuées à une partie"
+
+#: CreatePartitionDialog_16
+msgid "Queries cannot be left empty."
+msgstr "Les requêtes ne doivent pas être vides"
+
+#: CreatePartitionDialog_2
+msgid "&Structure:"
+msgstr "&Structure : "
+
+#: CreatePartitionDialog_20
+msgid ""
+"Cannot ask for the advanced tab when the user has selected the simple tab"
+msgstr ""
+"Impossible d'afficher l'onglet des options simples quand l'utilisateur a "
+"sélectionné l'affichage des options avancées"
+
+#: CreatePartitionDialog_3
+msgid "Assisted"
+msgstr "Assisté"
+
+#: CreatePartitionDialog_4
+msgid "&Property:"
+msgstr "&Propriété : "
+
+#: CreatePartitionDialog_5
+msgid "Advanced"
+msgstr "Avancé"
+
+#: CreatePartitionDialog_6
+msgid "&Name:"
+msgstr "&Nom : "
+
+#: CreatePartitionDialog_7
+msgid "&Part "
+msgstr "&Partie "
+
+#: CreatePartitionDialog_9
+msgid "No partition name was specified. We've generated one."
+msgstr "Un nom de partition a été généré."
+
+#: CreatePartition_0
+msgid "Creating a new partition on "
+msgstr "Création d'une partition sur "
+
+#: CreatePartition_1
+msgid "New &Partition"
+msgstr "Nouvelle &Partition"
+
+#: CreatePartition_5
+msgid "Done: {0} result(s)"
+msgstr "Terminé : {0} occurrences"
+
+#: CreatePartition_6
+msgid "Done: {0} part(s)"
+msgstr "Terminé : {0} partie(s)"
+
+#: CreatePartition_9
+msgid "Refreshing corpora..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: CreateSubCorpus_begin
+msgid "Creating a sub-corpus in the Search Engine"
+msgstr "Nouveau &Sous-corpus"
+
+#: CreateSubCorpus_create
+msgid "Creating a sub-corpus on {0}"
+msgstr "Créer un nouveau sous-corpus de {0}"
+
+#: CreateSubcorpusDialog_0
+msgid "Create subcorpus"
+msgstr "Créer un sous-corpus"
+
+#: CreateSubcorpusDialog_10
+msgid "&Query:"
+msgstr "&Requête : "
+
+#: CreateSubcorpusDialog_11
+msgid "Invalid name"
+msgstr "Nom incorrect"
+
+#: CreateSubcorpusDialog_13
+msgid "Invalid query"
+msgstr "Requête invalide"
+
+#: CreateSubcorpusDialog_14
+msgid "Query cannot be left empty."
+msgstr "Le champ Requête ne doit pas être vide."
+
+#: CreateSubcorpusDialog_6
+msgid "&Value:"
+msgstr "&Valeur : "
+
+#: CreateSubcorpusDialog_8
+msgid "No subcorpus name was specified. We've generated one."
+msgstr "Un nom de sous-corpus a été généré."
+
+#: CreateSubcorpus_1
+msgid "New &Subcorpus"
+msgstr "Nouveau &Sous-corpus"
+
+#: CreateSubcorpus_10
+msgid "Refresh corpora..."
+msgstr "Mise à jour de la vue des corpus..."
+
+#: CreateSubcorpus_7
+msgid "Compute SubCorpus on {0}. Structs: {1} & props {2}: {3}"
+msgstr "Calcul d'un sous-corpus de {0}, structure {1}, propriété {2} : {3}"
+
+#: CreateSubcorpus_8
+msgid "Done: created  "
+msgstr "Terminé : créé  "
+
+#: CreateSubcorpus_9
+msgid "Compute SubCorpus on {0}. Query: {1}"
+msgstr "Calcul d'un sous-corpus de {0} avec la requête <{1}>"
+
+#: DefineReferencePattern_0
+msgid "References pattern definition"
+msgstr "Patron des références"
+
+#: DefineReferencePattern_1
+msgid "Define &references' pattern"
+msgstr "Patron des &références"
+
+#: DefineReferencePattern_2
+msgid "Define the references' pattern"
+msgstr "Patron des références"
+
+#: DeleteInCorporaView_1
+msgid "Error while deleting subcorpus: {0}"
+msgstr "** Erreur lors de la suppression du sous-corpus {0}"
+
+#: DeleteInCorporaView_2
+msgid "Error while deleting partition: {0}"
+msgstr "** Erreur lors de la suppression de la partition {0}"
+
+#: DeleteLines_0
+msgid "The table must contain at least one line"
+msgstr "Le tableau doit comporter au moins une ligne"
+
+#: DeleteLines_1
+msgid "Are you sure ?"
+msgstr "Sûr(e) ?"
+
+#: DeleteObject_0
+msgid "Deleting {0}, continue ?"
+msgstr "Voulez-vous vraiment supprimer {0} ?"
+
+#: DeleteObject_10
+msgid "Deleted: {0}"
+msgstr "{0} supprimé"
+
+#: DeleteObject_3
+msgid "Error: delete() returned 'false'"
+msgstr "** Erreur lors de la suppression"
+
+#: DeleteObject_4
+msgid "Error while deleting {0}: {1}"
+msgstr "Erreur lors de la suppression de {0} : {1}"
+
+#: DeleteObject_5
+msgid "Deleting {0}"
+msgstr "Suppression de {0}"
+
+#: DiagnosticPreferencePage_1
+msgid "Description"
+msgstr "Description"
+
+#: DiagnosticPreferencePage_2
+msgid "Number of property's value shown"
+msgstr "Nombre de valeurs de propriété affiché"
+
+#: DiagnosticPreferencePage_3
+msgid "Order partition's parts by size"
+msgstr "Ordonner les parties par taille"
+
+#: Diagnostique_0
+msgid "Structural Units of {0}"
+msgstr "Unités de structure de {0}"
+
+#: Diagnostique_1
+msgid "Informations of {0} already exists. Do you want to compute a new one ?"
+msgstr ""
+"Les informations de {0} ont déjà été calculées. Souhaitez vous les "
+"recalculer ?"
+
+#: Diagnostique_10
+msgid "get structural units data"
+msgstr "Récupération des informations sur les unités de structure"
+
+#: Diagnostique_11
+msgid "Open editor..."
+msgstr "Ouverture de la fenêtre"
+
+#: Diagnostique_7
+msgid "create Informations"
+msgstr "Création de la fenêtre d'informations"
+
+#: Diagnostique_8
+msgid "get general data"
+msgstr "Récupération des informations générales"
+
+#: Diagnostique_9
+msgid "get lexical properties data"
+msgstr "Récupération des données sur les unités lexicales"
+
+#: DictionnaryEditor_1
+msgid ""
+"Lexicon:\n"
+"\tPartition {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Lexique :\n"
+"\tPartition {0}\n"
+"\tRequête {1}\n"
+"\tPropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: DictionnaryEditor_3
+msgid ""
+"Lexicon:\n"
+"\tCorpus {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Lexique :\n"
+"\tCorpus {0}\n"
+"\tRequête {1}\n"
+"\tPropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: ERROR_WHILE_LOADING_CONCORDANCE_LINE
+msgid "An error occurred while retrieving the concordance lines: {0}"
+msgstr ""
+"** Une erreur est survenue lors du chargement des lignes de la concordance : "
+"{0}"
+
+#: EmpantWidget_0
+msgid "Context: "
+msgstr "Contexte : "
+
+#: EmpantWidget_1
+msgid "word"
+msgstr "forme"
+
+#: EmpantWidget_2
+msgid "structure"
+msgstr "structure"
+
+#: EmpantWidget_3
+msgid "from -"
+msgstr "de -"
+
+#: EmpantWidget_4
+msgid "to -"
+msgstr "à -"
+
+#: EmpantWidget_5
+msgid "and from"
+msgstr "et de"
+
+#: EmpantWidget_6
+msgid "to"
+msgstr "à"
+
+#: EmpantWidget_7
+msgid "include the keyword structure in the count"
+msgstr "inclure la structure contenant le pivot dans les décomptes"
+
+#: Error_computing_specificities
+msgid "Error while computing specificities: {0}"
+msgstr "** Erreur lors du calcul des spécificités : {0}"
+
+#: Error_creating_partition
+msgid "Error while creating a partition: {0}"
+msgstr "** Erreur lors de la création de la partition : {0}"
+
+#: ExecuteRText_1
+msgid "Error while executing R code {0} : {1}"
+msgstr "** Erreur lors de l'exécution du script R {0} : {1}"
+
+#: ExecuteScriptGroovy_1
+msgid " does not exist"
+msgstr " n'existe pas"
+
+#: ExecuteScriptGroovy_10
+msgid "end of execution "
+msgstr "fin d'exécution "
+
+#: ExecuteScriptGroovy_4
+msgid "caused by::\n"
+msgstr "causé par :\n"
+
+#: ExecuteScriptGroovy_6
+msgid "start execution of "
+msgstr "début de l'exécution de  "
+
+#: ExecuteScriptGroovy_Error_loading
+msgid "Error while loading script : "
+msgstr "** Erreur lors du chargement du script : "
+
+#: ExecuteScriptImport_0
+msgid "Start importing"
+msgstr "Début de l'importation"
+
+#: ExecuteScriptImport_1
+msgid "Script file {0} does not exists"
+msgstr "Le fichier de script {0} n'existe pas"
+
+#: ExecuteScriptImport_19
+msgid "writing import report..."
+msgstr "Écriture du rapport d'importation"
+
+#: ExecuteScriptImport_43
+msgid "Failed to save report: {0} "
+msgstr "** Échec de la sauvegarde du rapport d'importation : {0}"
+
+#: ExecuteScriptR_0
+msgid "The script R does not exists : {0}"
+msgstr "Le fichier de script R {0} n'existe pas"
+
+#: ExecuteScriptR_1
+msgid "Error while executing R file {0}: {1}"
+msgstr "** Erreur lors de l'exécution du script R {0} : {1}"
+
+#: Exit_Menu_Label
+msgid "Exit"
+msgstr "Quitter"
+
+#: Explorer_0
+msgid "Folder {0} should not be delete"
+msgstr "Le répertoire {0} ne devrait pas être supprimé"
+
+#: Explorer_1
+msgid "^"
+msgstr "^"
+
+#: Explorer_2
+msgid "GO"
+msgstr "GO"
+
+#: Explorer_3
+msgid "TXM"
+msgstr "TXM"
+
+#: ExportCorpus_0
+msgid "Failed to export corpus: {0}"
+msgstr "** Échec de l'exportation du corpus {0}"
+
+#: ExportPreferencePage_1
+msgid "Export settings"
+msgstr "Configuration de l'export"
+
+#: ExportPreferencePage_18
+msgid "Column separator"
+msgstr "Séparateur de champs"
+
+#: ExportPreferencePage_19
+msgid "Text separator"
+msgstr "Séparateur de texte"
+
+#: ExportPreferencePage_21
+msgid "Default R graphical device"
+msgstr "Format des graphiques R par défaut"
+
+#: ExportPreferencePage_3
+msgid "Export file encoding"
+msgstr "Encodage des fichiers d'export"
+
+#: ExportPreferencePage_4
+msgid "Show export result in the text editor"
+msgstr "Afficher le résultat de l'export dans un éditeur de texte"
+
+#: ExportResult_0
+msgid "Exporting results."
+msgstr "Exportation des résultats"
+
+#: ExportResult_3
+msgid "Export: Can't create file {0}: {1} "
+msgstr "** Export : impossible de créer le fichier {0} : {1}"
+
+#: ExportResult_5
+msgid "Error: {0} is not readable"
+msgstr "** Impossible de lire {0}"
+
+#: ExportResult_6
+msgid "Failed to export result {0}: {1} "
+msgstr "** Échec d'exportation du résultat {0} : {1}"
+
+#: FAILED_TO_PARSE_OPTIONS
+msgid "Failed to parse TXM options {0}: {1}"
+msgstr "** Échec d'analyse des options de TXM {0} : {1}"
+
+#: FAILED_TO_SAVE_PREFERENCES
+msgid "Failed to save preferences: "
+msgstr "** Échec de la sauvegarde des préférences"
+
+#: FactorialMapEditor_0
+msgid "Factors: "
+msgstr "Facteurs:  "
+
+#: FactorialMapEditor_10
+msgid "Internal error: CA plan selection error"
+msgstr "** Erreur interne : erreur de sélection du plan de l'AFC"
+
+#: FactorialMapEditor_11
+msgid "Resize"
+msgstr "Redimensionner"
+
+#: FactorialMapEditor_13
+msgid "Reseting factorial map"
+msgstr "Mise à jour du plan factoriel"
+
+#: FactorialMapEditor_4
+msgid "Show: "
+msgstr "Afficher : "
+
+#: FactorialMapEditor_5
+msgid "individuals"
+msgstr "colonnes"
+
+#: FactorialMapEditor_6
+msgid "variables"
+msgstr "lignes"
+
+#: FactorialMapEditor_8
+msgid "Reloading factorial map"
+msgstr "Rechargement du plan factoriel"
+
+#: FrequencyListEditorInput_0
+msgid "Lexicon"
+msgstr "Lexique"
+
+#: FrequencyListEditorInput_1
+msgid "Pareto"
+msgstr "Pareto"
+
+#: FrequencyListEditorInput_11
+msgid "add pareto input "
+msgstr "ajouter l'entrée de pareto"
+
+#: FrequencyListEditorInput_2
+msgid "Lexicon cannot be null"
+msgstr "Le lexique ne peut être vide"
+
+#: FrequencyListEditorInput_3
+msgid "Form"
+msgstr "Forme"
+
+#: FrequencyListEditorInput_4
+msgid "Frequency"
+msgstr "Fréquence"
+
+#: FrequencyListEditorInput_5
+msgid "String"
+msgstr "Chaîne de caractères"
+
+#: FrequencyListEditorInput_6
+msgid "Integer"
+msgstr "Entier"
+
+#: FrequencyListEditorInput_7
+msgid "processing pareto graphic"
+msgstr "Calcul du graphique de Pareto"
+
+#: FrequencyListEditorInput_9
+msgid "Type"
+msgstr "Type"
+
+#: GenericMultiPageEditor_0
+msgid "page creation: "
+msgstr "Création de la page : "
+
+#: GenericMultiPageEditor_1
+msgid "The input {0} cannot be displayed."
+msgstr "** Erreur interne : Impossible d'afficher la donnée {0}."
+
+#: GenericMultiPageEditor_3
+msgid "The number of editors ({0}) and number of inputs ({1}) must be equal."
+msgstr ""
+"** Erreur interne : le nombre d'éditeurs RCP ({0}) doit correspondre au "
+"nombre d'inputs ({1})."
+
+#: GetConcordancesDialog_0
+msgid "ERROR_GetConcordancesDialog: {0}"
+msgstr "** Fenêtre de dialogue de concordances : {0}"
+
+#: GetConcordancesDialog_1
+msgid "Compute specificities"
+msgstr "Calcul des spécificités "
+
+#: GetConcordancesDialog_13
+msgid "you must select a property."
+msgstr "Vous devez sélectionner une propriété"
+
+#: GetConcordancesDialog_14
+msgid "Invalid view property"
+msgstr "Propriété invalide"
+
+#: GetConcordancesDialog_15
+msgid "you must select an view property."
+msgstr "Vous devez sélectionner une propriété"
+
+#: GetConcordancesDialog_17
+msgid "\\[.*\\]"
+msgstr "\\[.*\\]"
+
+#: GetConcordancesDialog_18
+msgid ".*\".*\""
+msgstr ".*\".*\""
+
+#: GetConcordancesDialog_4
+msgid "&View property:"
+msgstr "&Propriété : "
+
+#: GetConcordancesDialog_5
+msgid "&Left context size:"
+msgstr "Contexte &Gauche (mots) : "
+
+#: GetConcordancesDialog_6
+msgid "&Right context size:"
+msgstr "Contexte &Droit (mots) : "
+
+#: GetConcordancesDialog_7
+msgid "&Reference:"
+msgstr "&Référence : "
+
+#: GetConcordances_1
+msgid "&Concordancer"
+msgstr "&Concordance"
+
+#: GetConcordances_2
+msgid "Get concordances."
+msgstr "Récupérer les concordances."
+
+#: GetConcordances_4
+msgid "Error while computing concordances: {0}"
+msgstr "** Erreur lors du calcul des concordances : {0}"
+
+#: GraphicalLogger_0
+msgid "Error {0}"
+msgstr "** Erreur {0}"
+
+#: GraphicalLogger_1
+msgid ""
+"\n"
+"CWB search engine error ("
+msgstr ""
+"\n"
+"** Erreur du moteur de recherche CWB ("
+
+#: GraphicalLogger_2
+msgid "\n"
+msgstr "\n"
+
+#: GraphicalLogger_3
+msgid ""
+"\n"
+"Connection lost with CWB search engine"
+msgstr ""
+"\n"
+"Connexion au moteur de recherche CWB perdue"
+
+#: GraphicalLogger_4
+msgid ""
+"\n"
+"Statistical engine error"
+msgstr ""
+"\n"
+"** Erreur du moteur statistique R"
+
+#: GraphicalLogger_5
+msgid ":\n"
+msgstr ":\n"
+
+#: GroovyConsole_4
+msgid ""
+"\n"
+"Console reports an Internal error."
+msgstr ""
+"\n"
+"Erreur Interne."
+
+#: GroovyConsole_5
+msgid "The error is: "
+msgstr "L'erreur est :  "
+
+#: ImportDialog_0
+msgid "Import setup - {0}"
+msgstr "Paramètres d'importation - {0}"
+
+#: ImportDialog_1
+msgid "Source directory: "
+msgstr "Répertoire source"
+
+#: ImportDialog_13
+msgid "This directory seems to contain a binary corpus"
+msgstr "Ce répertoire semble contenir un corpus au format binaire"
+
+#: ImportDialog_14
+msgid "This computer encoding: "
+msgstr "Encodage par défaut de cet ordinateur"
+
+#: ImportDialog_16
+msgid "Guess: "
+msgstr "Deviner"
+
+#: ImportDialog_19
+msgid "This computer language: "
+msgstr "Langue par défaut de cet ordinateur"
+
+#: ImportDialog_22
+msgid "Select: "
+msgstr "Sélectionner"
+
+#: ImportDialog_23
+msgid "Options"
+msgstr "Options"
+
+#: ImportDialog_3
+msgid "- Optional parameters -"
+msgstr "- Paramètres Optionnels -"
+
+#: ImportDialog_4
+msgid "Sources characters encoding: "
+msgstr "Encodage des caractères des sources : "
+
+#: ImportDialog_5
+msgid "Main language: "
+msgstr "Langue principale : "
+
+#: ImportDialog_6
+msgid "Tokenizer parameter file: "
+msgstr "Paramètres du segmenteur lexical : "
+
+#: ImportFormEditor_0
+msgid "Warning: the import script is missing: {0}"
+msgstr "** le script d'import est manquant {0} "
+
+#: ImportSelectedText_0
+msgid "Import clipboard text "
+msgstr "Importe le texte du presse-papier"
+
+#: ImportSelectedText_1
+msgid "text"
+msgstr "texte"
+
+#: ImportSelectedText_2
+msgid "Clipboard is empty"
+msgstr "Le presse-papier est vide"
+
+#: ImportSelectedText_3
+msgid "Confirm"
+msgstr "Confirmer"
+
+#: ImportSelectedText_4
+msgid "The base and the corpus {0} will be deleted"
+msgstr "Le corpus {0} va être supprimé"
+
+#: InternalCorpusView_0
+msgid "Error while computing corpus summary"
+msgstr "** Erreur lors du calcul des informations du corpus"
+
+#: InternalCorpusView_1
+msgid "Reload"
+msgstr "Recharger"
+
+#: InternalCorpusView_2
+msgid "Error: getText: {0}"
+msgstr "** Erreur interne : getText {0}"
+
+#: Invalid_analysis_property
+msgid "Invalid property"
+msgstr "Propriété invalide"
+
+#: LanguageSwitchHandler_0
+msgid "Interface language (LOCALE) was not set"
+msgstr "La langue de l'interface (LOCALE) n'a pas été fixée"
+
+#: LanguageSwitchHandler_1
+msgid "The file {0} does not exist"
+msgstr "Le fichier {0} n'existe pas"
+
+#: LanguageSwitchHandler_3
+msgid "Choose the language"
+msgstr "Choisir la langue"
+
+#: LanguageSwitchHandler_5
+msgid "SwitchLanguage: Malformed url: {0}"
+msgstr "** Changement de langue : URL {0} mal formée"
+
+#: LanguageSwitchHandler_7
+msgid "TXM.ini : "
+msgstr "TXM.ini : "
+
+#: LexicalTableEditor_10
+msgid "Merge or Delete columns"
+msgstr "Fusion ou Suppr. de colonnes"
+
+#: LexicalTableEditor_11
+msgid "Merge cols: {0}"
+msgstr "Fusion de colonnes : {0}"
+
+#: LexicalTableEditor_12
+msgid "Delete cols: {0}"
+msgstr "Suppr. de colonnes : {0}"
+
+#: LexicalTableEditor_13
+msgid "Merge or Delete rows"
+msgstr "Fusion ou Suppr. de lignes"
+
+#: LexicalTableEditor_16
+msgid "Filtering lines"
+msgstr "Filtrage de lignes"
+
+#: LexicalTableEditor_18
+msgid "Merging lines"
+msgstr "Fusion de lignes"
+
+#: LexicalTableEditor_2
+msgid ", Fmin "
+msgstr ", Fmin "
+
+#: LexicalTableEditor_3
+msgid ", Fmax "
+msgstr ", Fmax "
+
+#: LexicalTableEditor_4
+msgid "Keep"
+msgstr "Garder"
+
+#: LexicalTableEditor_5
+msgid "keep: {0} lines and Fmin={1}"
+msgstr "Garder {0} lignes, Fmin={1}"
+
+#: LexicalTableEditor_6
+msgid "Fmin:"
+msgstr "ET Fmin "
+
+#: LexicalTableEditor_8
+msgid "Number of lines: "
+msgstr "Nombre de lignes"
+
+#: LexicalTablePreferencePage_0
+msgid "Lexical table"
+msgstr "Table lexicale"
+
+#: LexicalTablePreferencePage_1
+msgid "Lower frequency"
+msgstr "Fréquence minimale"
+
+#: LexicalTable_1
+msgid "Property: "
+msgstr "Propriété"
+
+#: LexicalTable_2
+msgid "Number of types: {0}"
+msgstr "Nombre de formes : {0}"
+
+#: LexicalTable_3
+msgid "Number of tokens: {0}"
+msgstr "Nombre d'occurrences : {0}"
+
+#: LexicalTable_4
+msgid "Token"
+msgstr "Occurrence"
+
+#: LineLabelProvider_1
+msgid "Should not happen"
+msgstr "Ne devrait pas se produire"
+
+#: LocalePreferencePage_1
+msgid "Configuration of the user interface language"
+msgstr "Configuration de la langue de l'interface utilisateur"
+
+#: LocalePreferencePage_2
+msgid "User interface language "
+msgstr "Langue de l'interface "
+
+#: MainPage_0
+msgid "MainPage"
+msgstr "Page principale"
+
+#: MainPage_1
+msgid "Main"
+msgstr "Principal"
+
+#: MainPage_11
+msgid "TXM workspace is not initialise, please restart TXM."
+msgstr ""
+"** L'espace de travail de TXM n'est pas initialisé, veuillez relancer TXM."
+
+#: MainPage_12
+msgid "yes"
+msgstr "oui"
+
+#: MainPage_13
+msgid "no"
+msgstr "non"
+
+#: MainPage_14
+msgid "Warning this corpus already exists"
+msgstr "Avertissement : ce corpus existe déjà"
+
+#: MainPage_15
+msgid "The corpus {0} already exists. Do you want to erase it ?"
+msgstr "Le corpus {0} existe déjà. Souhaitez vous supprimer l'ancien ?"
+
+#: MainPage_17
+msgid "Abandon import of {0}"
+msgstr "** Abandon de l'importation de {0}"
+
+#: MainPage_18
+msgid "Front XSLT"
+msgstr "Feuille XSL"
+
+#: MainPage_19
+msgid "Tokenizer parameters"
+msgstr "Paramètres du segmenteur lexical"
+
+#: MainPage_2
+msgid "Import parameters of {0}"
+msgstr "Paramètres d'importation de {0}"
+
+#: MainPage_20
+msgid "Main language"
+msgstr "Langue principale"
+
+#: MainPage_23
+msgid "Source characters encoding"
+msgstr "Encodage des caractères des sources"
+
+#: MainPage_28
+msgid "Error while getting encoding"
+msgstr "** Erreur lors de la récupération de l'encodage"
+
+#: MainPage_29
+msgid "Sources location"
+msgstr "Localisation des sources"
+
+#: MainPage_3
+msgid "Base infos"
+msgstr "Informations sur la base"
+
+#: MainPage_30
+msgid "From directory"
+msgstr "À partir d'un répertoire"
+
+#: MainPage_31
+msgid "From file selection"
+msgstr "À partir d'une sélection de fichiers"
+
+#: MainPage_32
+msgid "From URL list"
+msgstr "À partir d'une liste d'URL"
+
+#: MainPage_33
+msgid "from url"
+msgstr "À partir d'une URL"
+
+#: MainPage_34
+msgid "Files"
+msgstr "Fichiers"
+
+#: MainPage_4
+msgid "Base name"
+msgstr "Nom de la base"
+
+#: MainPage_6
+msgid "Import: base name must not be empty"
+msgstr "** importation : le nom de la base doit être renseigné"
+
+#: MainPage_7
+msgid "Import: No source directory has been selected"
+msgstr "** importation : aucun répertoire source n'a été indiqué"
+
+#: MainPage_8
+msgid "Import: No source files"
+msgstr "** importation : aucun fichier source"
+
+#: MergeCols_1
+msgid "New name"
+msgstr "Nouveau nom"
+
+#: MergeCols_2
+msgid "Edit the name of the new column created by the merged columns"
+msgstr "Nom de la nouvelle colonne issue de la fusion"
+
+#: MergeCols_5
+msgid "Names: "
+msgstr "Noms : "
+
+#: MergeCols_6
+msgid "End of column merge."
+msgstr "Fin de la fusion des colonnes."
+
+#: MergeDeleteDialog_0
+msgid "merge"
+msgstr "fusionner"
+
+#: MergeDeleteDialog_1
+msgid "Merge/Delete"
+msgstr "Fusionner/Supprimer"
+
+#: MergeDeleteDialog_4
+msgid "merge result name"
+msgstr "nom du résultat de la fusion"
+
+#: MergeLines_2
+msgid "Edit the name of the new line created by the merged lines"
+msgstr "Saisissez le nom de la nouvelle ligne issue de la fusion"
+
+#: MetadataPage_1
+msgid "Metadata"
+msgstr "Métadonnées"
+
+#: MetadataPage_10
+msgid "noname"
+msgstr "noname"
+
+#: MetadataPage_11
+msgid "noshortname"
+msgstr "noshortname"
+
+#: MetadataPage_12
+msgid "nolongname"
+msgstr "nolongname"
+
+#: MetadataPage_14
+msgid "Remove selected metadata definitions"
+msgstr "Supprimer les définitions de métadonnées sélectionnées"
+
+#: MetadataPage_16
+msgid "Longname"
+msgstr "Nom long"
+
+#: MetadataPage_18
+msgid "Selection"
+msgstr "Sélection"
+
+#: MetadataPage_19
+msgid "Partition"
+msgstr "Partition"
+
+#: MetadataPage_2
+msgid "Metadatas parameters"
+msgstr "Paramètres des méta"
+
+#: MetadataPage_20
+msgid "Display"
+msgstr "Affichage"
+
+#: MetadataPage_3
+msgid "Open a metadata file"
+msgstr "Ouvrir un fichier de métadonnées"
+
+#: MetadataPage_7
+msgid "No metadata file : {0}"
+msgstr "** Fichier de métadonnées {0} introuvable"
+
+#: MetadataPage_8
+msgid "Clear metadata definitions"
+msgstr "Effacer les définitions de métadonnées"
+
+#: MetadataPage_9
+msgid "Add a new metadata definition"
+msgstr "Ajouter une définition de métadonnée"
+
+#: ObjectExplorer_0
+msgid "Informations: "
+msgstr "Informations : "
+
+#: ObjectExplorer_1
+msgid "Key\t"
+msgstr "Clé\t"
+
+#: ObjectExplorer_10
+msgid "Remove property"
+msgstr "Supprimer une propriété"
+
+#: ObjectExplorer_12
+msgid "Enter a property name to remove"
+msgstr "Saisir le nom d'une propriété à supprimer"
+
+#: ObjectExplorer_15
+msgid "add a new property to all children"
+msgstr "ajouter une propriété aux descendants"
+
+#: ObjectExplorer_2
+msgid "Value"
+msgstr "Valeur"
+
+#: ObjectExplorer_21
+msgid "remove a property from the children"
+msgstr "retirer une propriété aux descendants"
+
+#: ObjectExplorer_26
+msgid "Name"
+msgstr "Nom"
+
+#: ObjectExplorer_27
+msgid "Key"
+msgstr "Clé"
+
+#: ObjectExplorer_3
+msgid "New property"
+msgstr "Nouvelle propriété"
+
+#: ObjectExplorer_4
+msgid "Property name"
+msgstr "Nom de la propriété"
+
+#: ObjectExplorer_5
+msgid "Enter a property name to add"
+msgstr "Saisir le nom d'une propriété à ajouter"
+
+#: ObjectExplorer_6
+msgid "No metadata for this Object"
+msgstr "Cet objet n'a pas de métadonnée"
+
+#: ObjectExplorer_7
+msgid "new name"
+msgstr "nouveau nom"
+
+#: ObjectExplorer_9
+msgctxt "ObjectExplorer_9"
+msgid ""
+msgstr ""
+
+#: ObjectSelectionDialog_0
+msgid "Value selector"
+msgstr "Sélecteur de valeurs"
+
+#: ObjectSelectionDialog_3
+msgid "Found {0} value(s)"
+msgstr "Trouvé {0} valeur(s)"
+
+#: ObjectSelectionDialog_5
+msgid "Wrong regular expression: {0}"
+msgstr "Expression régulière incorrecte : {0}"
+
+#: ObjectSelector_0
+msgid "Obj:"
+msgstr "Objet : "
+
+#: ObjectSelector_1
+msgid "Select"
+msgstr "Sélection"
+
+#: OpenBiblio_0
+msgid "Openbiblio error: corpus base is null."
+msgstr "** Bibliographie : corpus introuvable."
+
+#: OpenBiblio_1
+msgid "No text in base: {0}"
+msgstr "** Aucun texte {0} dans le corpus"
+
+#: OpenBiblio_2
+msgid "Select text id"
+msgstr "Sélectionner un texte"
+
+#: OpenBiblio_7
+msgid "Could not find text {0} in base {1}"
+msgstr "** Impossible de trouver le texte {0} dans le corpus {1}"
+
+#: OpenBiblio_9
+msgid "Text {0} has no bibliographic record"
+msgstr "** Le texte {0} n'a aucune entrée bibliographique"
+
+#: OpenEdition_0
+msgid "Select a part"
+msgstr "Sélectionner une partie"
+
+#: OpenEdition_1
+msgid "Failed to load edition of {0}"
+msgstr "** Échec de chargement de l'édition de {0}"
+
+#: OpenEdition_2
+msgid "Error while loading the edition of the corpus {0}"
+msgstr "** Erreur lors du chargement de l'édition du corpus {0}"
+
+#: OpenEdition_4
+msgid "OpenEdition error : corpus base is null."
+msgstr "** Bibliographie : corpus corrompu"
+
+#: OpenEmptyEditor_2
+msgid "Could not find directory: {0}"
+msgstr "** Bibliographie : répertoire {0} introuvable"
+
+#: OpenGraph_8
+msgid "Can't open graphic {0}"
+msgstr "** Impossible d'ouvrir le graphique {0}"
+
+#: OpenParaBrowser_0
+msgid "Opening the parabrowser"
+msgstr "Ouverture du Navigateur//"
+
+#: OpenSVGGraph_0
+msgid "SVG Graphic"
+msgstr "Graphique SVG "
+
+#: OpenTXMUserPreferences_0
+msgid "Default settings"
+msgstr "Paramètres par défaut"
+
+#: OpenURI_0
+msgid "Desktop is not supported (fatal)"
+msgstr "** OpenURL : Bureau non supporté"
+
+#: OpenURI_1
+msgid "Error while oponing file {0}"
+msgstr "** Erreur lors de l'ouverture du fichier {0}"
+
+#: ParaBrowserEditor_11
+msgid "get next({0}) struct {1} paraid {2} value {3}"
+msgstr "ParaBrowser : get next({0}) struct {1} paraid {2} value {3}"
+
+#: ParaBrowserEditor_18
+msgid "-MOVE to "
+msgstr "N/A_-MOVE to "
+
+#: ParaBrowserEditor_19
+msgid "-Don't MOVE !!!!! NEXT is "
+msgstr "N/A_-Don't MOVE !!!!! NEXT is "
+
+#: ParaBrowserEditor_21
+msgid "_"
+msgstr "N/A__"
+
+#: ParaBrowserEditor_22
+msgid "Open Parabrowser"
+msgstr "Ouvrir le Navigateur//"
+
+#: ParaBrowserEditor_3
+msgid "Ref: "
+msgstr "Réf : "
+
+#: ParaBrowserEditor_4
+msgid "Références"
+msgstr "Références"
+
+#: ParaBrowserEditor_5
+msgid "Structure"
+msgstr "Structure"
+
+#: ParaBrowserEditor_9
+msgid "Ref: {0} : {1}"
+msgstr "Réf : {0} : {1}"
+
+#: PartitionComposer_0
+msgid "Structure: "
+msgstr "Structure : "
+
+#: PartitionComposer_10
+msgid "Add selected values: {0} "
+msgstr "Ajouter les valeurs sélectionnés : {0}"
+
+#: PartitionComposer_11
+msgid "Remove"
+msgstr "Supprimer"
+
+#: PartitionComposer_12
+msgid "Rmv selected values: {0}"
+msgstr "Supprimer les valeurs sélectionnées : {0}"
+
+#: PartitionComposer_2
+msgid "Select values to assign: "
+msgstr "Sélectionner les valeurs à affecter : "
+
+#: PartitionComposer_3
+msgid "New part"
+msgstr "Nouvelle partie"
+
+#: PartitionComposer_4
+msgid "add part"
+msgstr "ajouter une partie"
+
+#: PartitionComposer_5
+msgid "Part "
+msgstr "Partie"
+
+#: PartitionComposer_6
+msgid "Rmv all the parts"
+msgstr "Supp. toutes les parties"
+
+#: PartitionComposer_8
+msgid "Title: "
+msgstr "Titre : "
+
+#: PartitionComposer_9
+msgid "Assign"
+msgstr "Affecter"
+
+#: PartsSize_10
+msgid "Dimensions of partition {0} of corpus {1} ordered by size"
+msgstr "Dimensions de la partition {0} du corpus {1} ordonnées par taille"
+
+#: PartsSize_18
+msgid "Dimensions: {0}"
+msgstr "Dimensions : {0}"
+
+#: Preferences_Menu_Label
+msgid "Preferences"
+msgstr "Préférences"
+
+#: ProgressionPreferencePage_2
+msgid "Progression"
+msgstr "Progression"
+
+#: ProgressionPreferencePage_3
+msgid "Default graph type is cumulative"
+msgstr "Graphe de progression cumulatif"
+
+#: ProgressionPreferencePage_4
+msgid "Curves are Monochrome"
+msgstr "Traits N/B"
+
+#: ProgressionPreferencePage_5
+msgid "Curves have the same style"
+msgstr "Traits de même style"
+
+#: ProgressionPreferencePage_6
+msgid "Repeat the values of the structure properties"
+msgstr "Répéter les valeurs de propriétés de structures"
+
+#: ProgressionPreferencePage_7
+msgid "Bande size multiplier"
+msgstr "Échelle des limites de structures"
+
+#: PropertiesSelector_0
+msgid "Can't load properties from corpus {0} (reason: {1})"
+msgstr "Impossible de charger les propriétés du corpus {0} ({1})"
+
+#: PropertiesSelector_1
+msgid "Properties: "
+msgstr "Propriétés : "
+
+#: PropertiesSelector_2
+msgid "Edit"
+msgstr "Editer"
+
+#: PropertiesSelector_3
+msgid " (reason:"
+msgstr " (cause : "
+
+#: PropertiesSelector_4
+msgid ")"
+msgstr ")"
+
+#: PropertySelector_0
+msgid "Select a property"
+msgstr "Sélectionner une propriété"
+
+#: QueriesView_1
+msgid "Export all"
+msgstr "Tout exporter"
+
+#: QueriesView_10
+msgid "Error with element {0}"
+msgstr "erreur : "
+
+#: QueriesView_5
+msgid "Queries:\n"
+msgstr "Requêtes :\n"
+
+#: QueryAssistDialog_0
+msgid "Query Assistant"
+msgstr "Assistant de Requête"
+
+#: QueryAssistDialog_1
+msgid "Add a word"
+msgstr "Mot supplémentaire"
+
+#: QueryAssistDialog_10
+msgid "equals to"
+msgstr "correspond à"
+
+#: QueryAssistDialog_11
+msgid "starts with"
+msgstr "commence par"
+
+#: QueryAssistDialog_12
+msgid "ends with"
+msgstr "se termine par"
+
+#: QueryAssistDialog_13
+msgid "contains"
+msgstr "contient"
+
+#: QueryAssistDialog_2
+msgid "I'm looking for one word"
+msgstr "Je recherche : "
+
+#: QueryAssistDialog_3
+msgid "I'm looking for {0} words"
+msgstr " mot"
+
+#: QueryAssistDialog_32
+msgid "followed by "
+msgstr "suivi de "
+
+#: QueryAssistDialog_33
+msgid "separated by at least 0 word"
+msgstr "séparé d'au moins 0 mot"
+
+#: QueryAssistDialog_34
+msgid "separated by at least 1 word"
+msgstr "séparé d'au moins 1 mot"
+
+#: QueryAssistDialog_8
+msgid "- Word n° {0} with its property "
+msgstr "- Mot n°"
+
+#: RPreferencePage_1
+msgid "R Configuration"
+msgstr "Configuration de R"
+
+#: RPreferencePage_2
+msgid "Path to R binary"
+msgstr "Chemin vers l'&exécutable de R"
+
+#: RPreferencePage_3
+msgid "Remote connexion"
+msgstr "Connexion distante"
+
+#: RPreferencePage_4
+msgid "Server adress"
+msgstr "Adresse du serveur"
+
+#: RPreferencePage_5
+msgid "user"
+msgstr "Utilisateur"
+
+#: RPreferencePage_6
+msgid "password"
+msgstr "Mot de passe"
+
+#: RPreferencePage_7
+msgid "Use file based R data transfert"
+msgstr "Utiliser la transmission de données R par fichier"
+
+#: RVariablesView_1
+msgid "Refresh variables"
+msgstr "Rafraîchir les variables"
+
+#: RVariablesView_2
+msgid "Show eval logs"
+msgstr "Afficher le journal des évaluations"
+
+#: RVariablesView_9
+msgid "\"TXM name {0} >> R name {1} "
+msgstr "nom TXM {0} >> nom R {1}"
+
+#: ReferencerEditor_0
+msgid "Compute references of <{0}> in {1} with property {2} and pattern {3}"
+msgstr ""
+"Calcul des références de <{0}> dans {1} avec la propriété {2} et le patron "
+"{3}"
+
+#: ReferencerEditor_10
+msgid "Get indexes"
+msgstr "Récupération des index"
+
+#: ReferencerEditor_11
+msgid "References"
+msgstr "Références"
+
+#: ReferencerEditor_12
+msgid "Group positions by indexes"
+msgstr "Regroupement des positions par index"
+
+#: ReferencerEditor_13
+msgid "Refresh ui"
+msgstr "Mise à jour de l'interface"
+
+#: ReferencerEditor_17
+msgid "Showing first result page"
+msgstr "Affichage de la première page de résultats"
+
+#: ReferencerEditor_19
+msgid "Showing last result page"
+msgstr "Affichage de la dernière page de résultats"
+
+#: ReferencerEditor_21
+msgid "Showing next result page"
+msgstr "Affichage de la page de résultats suivante "
+
+#: ReferencerEditor_23
+msgid "Showing previous result page"
+msgstr "Affichage de la page de résultats précédente "
+
+#: ReferencerEditor_25
+msgid "Opening concordances"
+msgstr "Ouverture de la concordance"
+
+#: ReferencerEditor_5
+msgid "Computing references of {0}"
+msgstr "Calcul des références de {0}"
+
+#: ReferencerEditor_6
+msgid "Reference pattern "
+msgstr "Patron des références "
+
+#: ReferencerEditor_7
+msgid "No results"
+msgstr "Aucun résultat"
+
+#: ReferencerEditor_8
+msgid "Get matches"
+msgstr "N/A_Get matches"
+
+#: ReferencerEditor_9
+msgid "Units"
+msgstr "Unités"
+
+#: ReferencerPreferencePage_2
+msgid "Referencer"
+msgstr "Références"
+
+#: ReferencerPreferencePage_3
+msgid "Order references by frequency"
+msgstr "Ordonner les références par fréquence"
+
+#: ProgressionDialog_0
+msgid "Progression Parameters"
+msgstr "Paramètres de la progression "
+
+#: ProgressionDialog_1
+msgid "Graph type: "
+msgstr "Type de graphe : "
+
+#: ProgressionDialog_10
+msgid "Progression dialog : wrong regular expression: "
+msgstr "Progression : mauvaise expression régulière : "
+
+#: ProgressionDialog_11
+msgid "Bandewidth multiplier :"
+msgstr "Échelle des bandeaux"
+
+#: ProgressionDialog_13
+msgid "Display options"
+msgstr "Options d'affichage"
+
+#: ProgressionDialog_14
+msgid "Multiple line style"
+msgstr "N/A_Multiple line style"
+
+#: ProgressionDialog_15
+msgid "Repeat same values"
+msgstr "Répéter les valeurs identiques"
+
+#: ProgressionDialog_16
+msgid "Monochrome"
+msgstr "N/B"
+
+#: ProgressionDialog_17
+msgid "Bande multiplier error : "
+msgstr "N/A_Bande multiplier error : "
+
+#: ProgressionDialog_2
+msgid "cumulative"
+msgstr "cumulatif"
+
+#: ProgressionDialog_3
+msgid "density"
+msgstr "densité"
+
+#: ProgressionDialog_4
+msgid "Structural Unit: "
+msgstr "Unité structurelle : "
+
+#: ProgressionDialog_5
+msgid "delete"
+msgstr "supprimer"
+
+#: ProgressionDialog_7
+msgid "Regex: "
+msgstr "Exp. Rég. : "
+
+#: ProgressionDialog_8
+msgid "Queries: "
+msgstr "Requêtes : "
+
+#: ProgressionDialog_9
+msgid "add"
+msgstr "ajouter"
+
+#: ProgressionEditorInput_0
+msgid "PROGRESSION NAME"
+msgstr "PROGRESSION NAME"
+
+#: RestartTXM_1
+msgid "Restart TXM"
+msgstr "Redémarrer TXM"
+
+#: RunGroovyScript_0
+msgid "Script execution"
+msgstr "Execution du script"
+
+#: RunGroovyScript_1
+msgid "&Run script"
+msgstr "&Exécuter un script"
+
+#: RunGroovyScript_2
+msgid "Run script"
+msgstr "Exécuter un script"
+
+#: RunGroovyScript_3
+msgid "*.groovy"
+msgstr "*.groovy"
+
+#: RunGroovyScript_4
+msgid "Error while opening groovy script: {0}"
+msgstr "Erreur lors de l'ouverture du script groovy : {0}"
+
+#: RunGroovyScript_5
+msgid "Error while loading script: {0}"
+msgstr "** Erreur lors du chargement du script groovy : {0}"
+
+#: RunGroovyScript_6
+msgid "Error while parsing script: {0}"
+msgstr "** Erreur lors de l'analyse du script groovy : {0}"
+
+#: RunGroovyScript_8
+msgid "Error while running script: {0}"
+msgstr "** Erreur lors de l'exécution du script groovy : {0}"
+
+#: RunGroovyScript_9
+msgid "Execute script"
+msgstr "Execution du script"
+
+#: SVGGraphicEditorInput_0
+msgid "SVG graphic "
+msgstr "graphique SVG "
+
+#: SVGGraphicEditor_1
+msgid "Cannot draw a graphic with the information provided."
+msgstr "Impossible d'afficher un graphique avec les informations fournies."
+
+#: SVGPanel_0
+msgid "Center"
+msgstr "N/A_Center"
+
+#: ScriptPreferencePage_0
+msgid "The next session number"
+msgstr "N/A_The next session number"
+
+#: ScriptPreferencePage_2
+msgid "Groovy Scripts configuration"
+msgstr "Paramètres des scripts Groovy"
+
+#: ScriptPreferencePage_3
+msgid "&Root folder"
+msgstr "Dossier &racine"
+
+#: ScriptPreferencePage_4
+msgid "&Current folder"
+msgstr "Dossier &courrant"
+
+#: SetContextSize_1
+msgid "Set &contexts' size"
+msgstr "Définir la taille des &contextes"
+
+#: SetContextSize_2
+msgid "Set the contexts size"
+msgstr "Définir la taille des contextes"
+
+#: SetContextSize_3
+msgid "Left context size"
+msgstr "Taille du contexte gauche"
+
+#: SetContextSize_4
+msgid "Right context size"
+msgstr "Taille du contexte droit"
+
+#: SetLineNumber_0
+msgid "Lines per page"
+msgstr "Lignes par page"
+
+#: SetLineNumber_1
+msgid "Line nÃÂ°"
+msgstr "N° de ligne"
+
+#: SetSortProperty_1
+msgid "Set &Sort property"
+msgstr "Définir la propriété de &Tri"
+
+#: SetSortProperty_2
+msgid "Set the sort property"
+msgstr "Définir la propriété de tri"
+
+#: SetSortProperty_3
+msgid "Sort property"
+msgstr "Propriété de tri"
+
+#: ShowSelected_0
+msgid "informations: \n"
+msgstr "informations : \n"
+
+#: ShowSelected_4
+msgid "Set the 'LANG' property"
+msgstr "Régler la propriété 'LANG'"
+
+#: ShowSelected_5
+msgid "ISO-638 code for the 'LANG' property"
+msgstr "Code ISO-638 de la propriété 'LANG'"
+
+#: ShowSvgHelp_0
+msgid "SVG controls"
+msgstr "Commandes SVG"
+
+#: ShowSvgHelp_1
+msgid "\tPan : Shif t+Left Mouse+drag\n"
+msgstr "Translation : Shift + Click Gauche + Glisser\n"
+
+#: ShowSvgHelp_2
+msgid "\tZoom in&out : Shif t+Right Mouse+drag\n"
+msgstr "Zoom +/- : Shift + Click Droit + Glisser\n"
+
+#: ShowSvgHelp_3
+msgid "\tZoom to selection : Ctrl+Left Mouse+drag\n"
+msgstr "Zoomer sur la sélection : Ctrl + Click Gauche + Glisser\n"
+
+#: ShowSvgHelp_4
+msgid "\tRotate : Ctrl+Right Mouse+drag\n"
+msgstr "Rotation : Ctrl + Click Droit + Glisser\n"
+
+#: ShowSvgHelp_5
+msgid "\tReset the view : F5"
+msgstr "État initial : F5"
+
+#: SingularValuesEditor_0
+msgid "wrong input"
+msgstr "Entrée erronée"
+
+#: SortPropertySelectionDialog_0
+msgctxt "SortPropertySelectionDialog_0"
+msgid "Select sort properties"
+msgstr "Sélectionner les propriétés de tri"
+
+#: SortPropertySelection_0
+msgctxt "SortPropertySelection_0"
+msgid "Select sort properties"
+msgstr "Sélectionner les propriétés de tri"
+
+#: SpecificitiesPreferencePage_1
+msgid "Monochrome graph"
+msgstr "Graphique N/B"
+
+#: SpecificitiesPreferencePage_2
+msgid "Specificities"
+msgstr "Spécificités"
+
+#: SpecificitiesPreferencePage_4
+msgid "Group graphic bars by line entry"
+msgstr "N/A_Group graphic bars by line entry"
+
+#: SpecificitiesPreferencePage_5
+msgid "Graphic : draw curves"
+msgstr "Graphique : dessiner les courbes"
+
+#: SpecificitiesPreferencePage_6
+msgid "Graphic : draw bars"
+msgstr "Graphique : dessiner les barres"
+
+#: SpecificitiesResultEditorInput_0
+msgid "Values"
+msgstr "Valeurs"
+
+#: SpecificitiesResultEditorInput_1
+msgid "Graphic"
+msgstr "Graphique"
+
+#: SpecificitiesResultEditorInput_11
+msgid "Double"
+msgstr "Flottant"
+
+#: SpecificitiesResultEditorInput_2
+msgid "Cannot compute simultaneously part and form specificities"
+msgstr ""
+"On ne peut pas calculer à la fois les spécificités d'une partie et des "
+"formes"
+
+#: SpecificitiesResultEditorInput_5
+msgid "Total frequency"
+msgstr "Fréquence totale"
+
+#: SpecificitiesResultEditorInput_6
+msgid "Sub frequency"
+msgstr "Sous-fréquence"
+
+#: SpecificitiesResultEditorInput_7
+msgid "Specificities index"
+msgstr "Index des spécificités"
+
+#: SpecificitiesTableEditor_0
+msgid "Unable to compute the specificities"
+msgstr "Le calcul des spécificités a échoué"
+
+#: SpecificitiesTableEditor_1
+msgid "Error while sorting specificities: {0}"
+msgstr "** Erreur lors du tri des spécificités"
+
+#: SpecificitiesTableEditor_11
+msgid " T"
+msgstr " T"
+
+#: SpecificitiesTableEditor_16
+msgid "Graph: "
+msgstr "Graphique : "
+
+#: SpecificitiesTableEditor_17
+msgid "Opening the specificities table"
+msgstr "Chargement de la table des spécificités"
+
+#: SpecificitiesTableEditor_3
+msgid "Types"
+msgstr "Types"
+
+#: SpecificitiesTableEditor_5
+msgid "Unexpected error in the statistical engine R {0}"
+msgstr "Erreur inattendue dans le moteur statistique R"
+
+#: SpecificitiesTableEditor_8
+msgid "Compute the histogram of the lines selected"
+msgstr "Calculer le diagramme en bâtons des lignes sélectionnées"
+
+#: Structure_field_not_empty
+msgid "structure field is mandatory."
+msgstr "Le champ structure ne doit pas être vide."
+
+#: Submit_0
+msgid "Save script"
+msgstr "Enregistrer"
+
+#: Submit_1
+msgid "Error during R data transfert"
+msgstr "Erreur de transfert des données vers R"
+
+#: TXMCqpServerWatcher_0
+msgid "CQP server is down"
+msgstr "Le moteur de recherche est arrêté"
+
+#: TXMCqpServerWatcher_1
+msgid "Please wait for searchengine to restart..."
+msgstr "Veuillez attendre que le moteur de recherche ai redémarré..."
+
+#: TXMRServeWatcher_0
+msgid "StatEngine server is down"
+msgstr "Le moteur statistique est arrêté"
+
+#: TXMRServeWatcher_1
+msgid "Please wait for StatEngine to restart..."
+msgstr "Veuillez attendre que le moteur statistique ai redémarré..."
+
+#: TXMRServeWatcher_2
+msgid "Ok"
+msgstr "Ok"
+
+#: TXMRServeWatcher_3
+msgid "Reloading corpora view..."
+msgstr "Rechargement de la vue des corpus..."
+
+#: TXMRServeWatcher_4
+msgid "Please wait..."
+msgstr "Veuillez patienter..."
+
+#: TablableVector_0
+msgid "The two arrays must have the same size."
+msgstr "Les deux tables doivent être de même taille."
+
+#: TableEditor_0
+msgid "Cannot draw a table with the information provided: {0}"
+msgstr "Impossible d'afficher un tableau avec les informations fournies"
+
+#: TableSorter_0
+msgid "Column index is too big."
+msgstr "Le numéro de colonne est trop grand."
+
+#: TestCreateSVGGraphic_1
+msgid "Test new &SVG graphic"
+msgstr "Test nouveau graphique &SVG"
+
+#: TestCreateSVGGraphic_2
+msgid "Test the creation of a new SVG graphic."
+msgstr "Test de création de nouveau graphique SVG"
+
+#: TestCreateSVGGraphic_4
+msgid "library(grDevices)"
+msgstr "Librairie(grDevices)"
+
+#: TestCreateSVGGraphic_5
+msgid "data(iris); attach(iris)"
+msgstr "données(iris); attaché(iris)"
+
+#: TestCreateSVGGraphic_8
+msgid "Can't open svg graphics device:\n"
+msgstr "Ne peut ouvrir le device svg graphics :\n"
+
+#: TextometriePreferencePage_1
+msgid "TXM Settings"
+msgstr "Préférences de TXM"
+
+#: TreeTaggerPreferencePage_0
+msgid "TreeTagger"
+msgstr "TreeTagger"
+
+#: TreeTaggerPreferencePage_1
+msgid "Path to treetagger install directory"
+msgstr "Chemin du répertoire d'installation de TreeTagger"
+
+#: TreeTaggerPreferencePage_2
+msgid "Path to treetagger models directory"
+msgstr "Chemin du répertoire de modèles linguistiques de TreeTagger"
+
+#: TxmBrowser_0
+msgid "Beginning"
+msgstr "Début"
+
+#: TxmBrowser_1
+msgid "firstPage "
+msgstr "première page "
+
+#: TxmBrowser_10
+msgid ""
+"Could not launch the internal web browser. You must set that parameter in "
+"the preferences, menu: General>WebNavigator"
+msgstr ""
+"Impossible de lancer le navigateur interne. Vous devez régler ce paramètre "
+"dans les préférences, au menu : Général / Navigateur web"
+
+#: TxmBrowser_2
+msgid "lastPage"
+msgstr "dernière page"
+
+#: TxmBrowser_3
+msgid "previousPage"
+msgstr "page précédente"
+
+#: TxmBrowser_4
+msgid "nextPage"
+msgstr "page suivante"
+
+#: TxmBrowser_5
+msgid "Previous page"
+msgstr "page précédente"
+
+#: TxmBrowser_6
+msgid "Next page"
+msgstr "page suivante"
+
+#: TxmBrowser_7
+msgid "End"
+msgstr "Fin"
+
+#: TxmBrowser_8
+msgid "Next text"
+msgstr "prochain texte"
+
+#: TxmBrowser_9
+msgid "Previous text"
+msgstr "texte précedent"
+
+#: UserPreferencePage_0
+msgid "User page"
+msgstr "Page Utilisateur"
+
+#: UserPreferencePage_3
+msgid "Do not confirm to delete an object"
+msgstr "Pas de confirmation pour supprimer un objet"
+
+#: ViewPropertySelectionDialog_0
+msgid "Select view properties"
+msgstr "Sélectionner les propriétés"
+
+#: ViewPropertySelection_0
+msgid "Select View properties"
+msgstr "Sélectionner les propriétés"
+
+#: VocabularyEditor_0
+msgid "Index : query is empty"
+msgstr "La requête est vide"
+
+#: VocabularyEditor_1
+msgid "Failed to compute index"
+msgstr "Échec du calcul de l'index"
+
+#: VocabularyEditor_17
+msgid ""
+"Index:\n"
+"\tPartition {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Index:\n"
+"\tPartition {0}\n"
+"\tRequête {1}\n"
+"\tpropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: VocabularyEditor_18
+msgid ""
+"Index:\n"
+"\tCorpus {0}\n"
+"\tquery {1}\n"
+"\tproperties {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+msgstr ""
+"Index:\n"
+"\tCorpus {0}\n"
+"\tRequête {1}\n"
+"\tpropriétés {2}\n"
+"\tFmin {3}\n"
+"\tFmax {4}"
+
+#: VocabularyEditor_2
+msgid "Index of <{0}> with property: {1} in the corpus: {2}"
+msgstr "Index de <{0}> avec la propriété {1} dans le corpus {2}"
+
+#: VocabularyEditor_20
+msgid "Index of <{0}> with property: {1} in the partition: {2}"
+msgstr "Index de <{0}> avec la propriété {1} dans la partition {2}"
+
+#: VocabularyEditor_22
+msgid "Couldn't initialize Index table"
+msgstr "Impossible d'initialiser le tableau d'index"
+
+#: VocabularyEditor_25
+msgid ", fmin "
+msgstr ", fmin "
+
+#: VocabularyEditor_26
+msgid ", fmax "
+msgstr ", fmax "
+
+#: VocabularyEditor_27
+msgid "t "
+msgstr "t "
+
+#: VocabularyEditor_28
+msgid ", v "
+msgstr ", v "
+
+#: VocabularyEditor_29
+msgid "Opening the Index results"
+msgstr "Ouverture du tableau d'index"
+
+#: VocabularyEditor_3
+msgid "Query: "
+msgstr "Requête : "
+
+#: VocabularyEditor_31
+msgid "Done: no result"
+msgstr "Aucun résultat"
+
+#: VocabularyEditor_33
+msgid "Computing index"
+msgstr "N/A_Computing index"
+
+#: VocabularyEditor_34
+msgid "\tFmin: "
+msgstr "\tFmin: "
+
+#: VocabularyEditor_36
+msgid "Sorting column"
+msgstr "Colonne à trier"
+
+#: VocabularyEditor_37
+msgid "Sort done."
+msgstr "Tri terminé."
+
+#: VocabularyEditor_4
+msgid "&Search"
+msgstr "&Chercher"
+
+#: VocabularyEditor_5
+msgid "Fmin: "
+msgstr "Fmin : "
+
+#: VocabularyEditor_6
+msgid "Fmax: "
+msgstr "Fmax : "
+
+#: VocabularyEditor_7
+msgid "Vmax: "
+msgstr "Vmax : "
+
+#: VocabularyEditor_8
+msgid "Page size: "
+msgstr "Résultats par page : "
+
+#: VocabularyEditor_9
+msgid "Thresholds: "
+msgstr "Seuils : "
+
+#: VocabularyToCooccurrence_0
+msgid "Error while linking Index to Cooccurences"
+msgstr "** Erreur lors de la liaison entre l'Index et les Cooccurrences"
+
+#: VocabularyToLexicalTable_0
+msgid "Cannot create a Lexical Table based on an Index created with a Corpus"
+msgstr ""
+"Impossible de créer une table lexicale à partir d'un Index créé sur un "
+"Corpus"
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMResolutionResultsWizardPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMResolutionResultsWizardPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMResolutionResultsWizardPage.java	(revision 122)
@@ -0,0 +1,382 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.util.Collection;
+
+import org.eclipse.core.runtime.*;
+import org.eclipse.equinox.internal.p2.ui.*;
+import org.eclipse.equinox.internal.p2.ui.dialogs.CopyUtils;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ILayoutConstants;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUDetailsGroup;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionResultsWizardPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionStatusPage;
+import org.eclipse.equinox.internal.p2.ui.model.*;
+import org.eclipse.equinox.internal.p2.ui.viewers.*;
+import org.eclipse.equinox.p2.engine.IProvisioningPlan;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.ProfileChangeOperation;
+import org.eclipse.equinox.p2.operations.ProvisioningJob;
+import org.eclipse.equinox.p2.query.IQueryable;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.*;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.statushandlers.StatusManager;
+
+public abstract class TXMResolutionResultsWizardPage extends ResolutionResultsWizardPage {
+
+	private static final String DIALOG_SETTINGS_SECTION = "ResolutionResultsPage"; //$NON-NLS-1$
+
+	protected IUElementListRoot input;
+	ProfileChangeOperation resolvedOperation;
+	TreeViewer treeViewer;
+	ProvElementContentProvider contentProvider;
+	IUDetailsLabelProvider labelProvider;
+	protected Display display;
+	private IUDetailsGroup iuDetailsGroup;
+	SashForm sashForm;
+
+	protected TXMResolutionResultsWizardPage(ProvisioningUI ui, ProvisioningOperationWizard wizard, IUElementListRoot input, ProfileChangeOperation operation) {
+		super(ui, wizard, input, operation); //$NON-NLS-1$
+		this.resolvedOperation = operation;
+		if (input == null)
+			this.input = new IUElementListRoot();
+		else
+			this.input = input;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		display = parent.getDisplay();
+		sashForm = new SashForm(parent, SWT.VERTICAL);
+		FillLayout layout = new FillLayout();
+		sashForm.setLayout(layout);
+		GridData data = new GridData(GridData.FILL_BOTH);
+		sashForm.setLayoutData(data);
+		initializeDialogUnits(sashForm);
+
+		Composite composite = new Composite(sashForm, SWT.NONE);
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.marginWidth = 0;
+		gridLayout.marginHeight = 0;
+		composite.setLayout(gridLayout);
+
+		treeViewer = createTreeViewer(composite);
+		data = new GridData(GridData.FILL_BOTH);
+		data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT);
+		data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH);
+		Tree tree = treeViewer.getTree();
+		tree.setLayoutData(data);
+		tree.setHeaderVisible(true);
+		activateCopy(tree);
+		TreeViewerColumn nameColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
+		nameColumn.getColumn().setText(ProvUIMessages.ProvUI_NameColumnTitle);
+		nameColumn.getColumn().setWidth(400);
+		nameColumn.getColumn().setMoveable(true);
+		nameColumn.setLabelProvider(new ColumnLabelProvider() {
+			public String getText(Object element) {
+				IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class);
+				String label = iu.getProperty(IInstallableUnit.PROP_NAME, null);
+				if (label == null)
+					label = iu.getId();
+				return label;
+			}
+
+			public Image getImage(Object element) {
+				if (element instanceof ProvElement)
+					return ((ProvElement) element).getImage(element);
+				if (ProvUI.getAdapter(element, IInstallableUnit.class) != null)
+					return ProvUIImages.getImage(ProvUIImages.IMG_IU);
+				return null;
+			}
+
+			public String getToolTipText(Object element) {
+				if (element instanceof AvailableIUElement && ((AvailableIUElement) element).getImageOverlayId(null) == ProvUIImages.IMG_INFO)
+					return ProvUIMessages.RemedyElementNotHighestVersion;
+				return super.getToolTipText(element);
+			}
+		});
+		TreeViewerColumn versionColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
+		versionColumn.getColumn().setText(ProvUIMessages.ProvUI_VersionColumnTitle);
+		versionColumn.getColumn().setWidth(200);
+		versionColumn.setLabelProvider(new ColumnLabelProvider() {
+			public String getText(Object element) {
+				IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class);
+				if (element instanceof IIUElement) {
+					if (((IIUElement) element).shouldShowVersion())
+						return iu.getVersion().toString();
+					return ""; //$NON-NLS-1$
+				}
+				return iu.getVersion().toString();
+			}
+		});
+		TreeViewerColumn idColumn = new TreeViewerColumn(treeViewer, SWT.LEFT);
+		idColumn.getColumn().setText(ProvUIMessages.ProvUI_IdColumnTitle);
+		idColumn.getColumn().setWidth(200);
+
+		idColumn.setLabelProvider(new ColumnLabelProvider() {
+			public String getText(Object element) {
+				IInstallableUnit iu = ProvUI.getAdapter(element, IInstallableUnit.class);
+				return iu.getId();
+			}
+		});
+
+		// Filters and sorters before establishing content, so we don't refresh unnecessarily.
+		IUComparator comparator = new IUComparator(IUComparator.IU_NAME);
+		comparator.useColumnConfig(getColumnConfig());
+		treeViewer.setComparator(comparator);
+		treeViewer.setComparer(new ProvElementComparer());
+		ColumnViewerToolTipSupport.enableFor(treeViewer);
+		contentProvider = new ProvElementContentProvider();
+		treeViewer.setContentProvider(contentProvider);
+		//		labelProvider = new IUDetailsLabelProvider(null, getColumnConfig(), getShell());
+		//		treeViewer.setLabelProvider(labelProvider);
+
+		// Optional area to show the size
+		createSizingInfo(composite);
+
+		// The text area shows a description of the selected IU, or error detail if applicable.
+		iuDetailsGroup = new TXMIUDetailsGroup(sashForm, treeViewer, convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH), true);
+
+		setControl(sashForm);
+		sashForm.setWeights(getSashWeights());
+		Dialog.applyDialogFont(sashForm);
+
+		// Controls for filtering/presentation/site selection
+		Composite controlsComposite = new Composite(composite, SWT.NONE);
+		gridLayout = new GridLayout();
+		gridLayout.marginWidth = 0;
+		gridLayout.marginHeight = 0;
+		gridLayout.numColumns = 2;
+		gridLayout.makeColumnsEqualWidth = true;
+		gridLayout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+		controlsComposite.setLayout(layout);
+		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
+		controlsComposite.setLayoutData(gd);
+
+		final Runnable runnable = new Runnable() {
+			public void run() {
+				treeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+					void setDetailText(ProfileChangeOperation resolvedOperation) {
+						String detail = null;
+						Object selectedElement = getSelectedElement();
+						IInstallableUnit selectedIU = ElementUtils.elementToIU(selectedElement);
+						IUDetailsGroup detailsGroup = getDetailsGroup();
+
+						// We either haven't resolved, or we failed to resolve and reported some error
+						// while doing so.  
+						if (resolvedOperation == null || !resolvedOperation.hasResolved() || getProvisioningWizard().statusOverridesOperation()) {
+							// See if the wizard status knows something more about it.
+							IStatus currentStatus = getProvisioningWizard().getCurrentStatus();
+							if (!currentStatus.isOK()) {
+								detail = currentStatus.getMessage();
+								detailsGroup.enablePropertyLink(false);
+							} else if (selectedIU != null) {
+								detail = getIUDescription(selectedElement);
+								detailsGroup.enablePropertyLink(true);
+							} else {
+								detail = ""; //$NON-NLS-1$
+								detailsGroup.enablePropertyLink(false);
+							}
+							detailsGroup.setDetailText(detail);
+							return;
+						}
+
+						// An IU is selected and we have resolved.  Look for information about the specific IU.
+						if (selectedIU != null) {
+							detail = resolvedOperation.getResolutionDetails(selectedIU);
+							if (detail != null) {
+								detailsGroup.enablePropertyLink(false);
+								detailsGroup.setDetailText(detail);
+								return;
+							}
+							// No specific error about this IU.  Show the overall error if it is in error.
+							if (resolvedOperation.getResolutionResult().getSeverity() == IStatus.ERROR) {
+								detail = resolvedOperation.getResolutionDetails();
+								if (detail != null) {
+									detailsGroup.enablePropertyLink(false);
+									detailsGroup.setDetailText(detail);
+									return;
+								}
+							}
+
+							// The overall status is not an error, or else there was no explanatory text for an error.
+							// We may as well just show info about this iu.
+							detailsGroup.enablePropertyLink(true);
+							detailsGroup.setDetailText(getIUDescription(selectedElement));
+							return;
+						}
+
+						//No IU is selected, give the overall report
+						detail = resolvedOperation.getResolutionDetails();
+						detailsGroup.enablePropertyLink(false);
+						if (detail == null)
+							detail = ""; //$NON-NLS-1$
+						detailsGroup.setDetailText(detail);
+					}
+					private Object getSelectedElement() {
+						Object[] elements = getSelectedElements();
+						if (elements.length == 0)
+							return null;
+						return elements[0];
+					}
+					public void selectionChanged(SelectionChangedEvent event) {
+						setDetailText(resolvedOperation);
+					}
+				});
+				setDrilldownElements(input, resolvedOperation);
+				treeViewer.setInput(input);
+			}
+		};
+
+		if (resolvedOperation != null && !resolvedOperation.hasResolved()) {
+			try {
+				getContainer().run(true, false, new IRunnableWithProgress() {
+					public void run(IProgressMonitor monitor) {
+						resolvedOperation.resolveModal(monitor);
+						display.asyncExec(runnable);
+					}
+				});
+			} catch (Exception e) {
+				StatusManager.getManager().handle(new Status(IStatus.ERROR, ProvUIActivator.PLUGIN_ID, e.getMessage(), e));
+			}
+		} else {
+			runnable.run();
+		}
+	}
+
+	@Override
+	public void updateStatus(IUElementListRoot newRoot, ProfileChangeOperation op) {
+		super.updateStatus(newRoot, op);
+	}
+
+	protected void createSizingInfo(Composite parent) {
+		// Default is to do nothing
+	}
+
+	public boolean performFinish() {
+		if (resolvedOperation.getResolutionResult().getSeverity() != IStatus.ERROR) {
+			getProvisioningUI().schedule(resolvedOperation.getProvisioningJob(null), StatusManager.SHOW | StatusManager.LOG);
+			return true;
+		}
+		return false;
+	}
+
+	protected TreeViewer getTreeViewer() {
+		return treeViewer;
+	}
+
+	public IProvisioningPlan getCurrentPlan() {
+		if (resolvedOperation != null)
+			return resolvedOperation.getProvisioningPlan();
+		return null;
+	}
+
+	protected Object[] getSelectedElements() {
+		return ((IStructuredSelection) treeViewer.getSelection()).toArray();
+	}
+
+	protected IInstallableUnit getSelectedIU() {
+		java.util.List<IInstallableUnit> units = ElementUtils.elementsToIUs(getSelectedElements());
+		if (units.size() == 0)
+			return null;
+		return units.get(0);
+	}
+
+	protected boolean shouldCompleteOnCancel() {
+		return false;
+	}
+
+	protected Collection<IInstallableUnit> getIUs() {
+		return ElementUtils.elementsToIUs(input.getChildren(input));
+	}
+
+	void setDrilldownElements(IUElementListRoot root, ProfileChangeOperation operation) {
+		if (operation == null || operation.getProvisioningPlan() == null)
+			return;
+		Object[] elements = root.getChildren(root);
+		for (int i = 0; i < elements.length; i++) {
+			if (elements[i] instanceof QueriedElement) {
+				((QueriedElement) elements[i]).setQueryable(getQueryable(operation.getProvisioningPlan()));
+			}
+		}
+	}
+
+	protected abstract String getOperationLabel();
+
+	/**
+	 * Returns the restart policy for this operation.
+	 * 
+	 * @return an integer constant describing whether the running profile
+	 * needs to be restarted. 
+	 * 
+	 * @see ProvisioningJob#RESTART_NONE
+	 * @see ProvisioningJob#RESTART_ONLY
+	 * @see ProvisioningJob#RESTART_OR_APPLY
+	 *
+	 */
+	protected int getRestartPolicy() {
+		return ProvisioningJob.RESTART_OR_APPLY;
+	}
+
+	/**
+	 * Returns the task name for this operation, or <code>null</code> to display
+	 * a generic task name.
+	 */
+	protected String getOperationTaskName() {
+		return null;
+	}
+
+	protected TreeViewer createTreeViewer(Composite parent) {
+		return new TreeViewer(parent, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
+	}
+
+	protected abstract IQueryable<IInstallableUnit> getQueryable(IProvisioningPlan plan);
+
+	protected String getClipboardText(Control control) {
+		return CopyUtils.getIndentedClipboardText(getSelectedElements(), labelProvider);
+	}
+
+	protected IUDetailsGroup getDetailsGroup() {
+		return iuDetailsGroup;
+	}
+
+	protected boolean isCreated() {
+		return treeViewer != null;
+	}
+
+	protected void updateCaches(IUElementListRoot newRoot, ProfileChangeOperation op) {
+		resolvedOperation = op;
+		if (newRoot != null) {
+			setDrilldownElements(newRoot, resolvedOperation);
+			if (treeViewer != null) {
+				if (input != newRoot)
+					treeViewer.setInput(newRoot);
+				else
+					treeViewer.refresh();
+			}
+			input = newRoot;
+		}
+	}
+
+	protected String getDialogSettingsName() {
+		return getWizard().getClass().getName() + "." + DIALOG_SETTINGS_SECTION; //$NON-NLS-1$
+	}
+
+	protected int getColumnWidth(int index) {
+		return treeViewer.getTree().getColumn(index).getWidth();
+	}
+
+	protected SashForm getSashForm() {
+		return sashForm;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMResolutionResultsWizardPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMInstallWizardPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMInstallWizardPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMInstallWizardPage.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard;
+import org.eclipse.equinox.internal.p2.ui.model.IUElementListRoot;
+import org.eclipse.equinox.p2.operations.ProfileChangeOperation;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+
+public class TXMInstallWizardPage extends TXMSizeComputingWizardPage {
+
+	public TXMInstallWizardPage(ProvisioningUI ui, ProvisioningOperationWizard wizard, IUElementListRoot root, ProfileChangeOperation operation) {
+		super(ui, wizard, root, operation);
+		setTitle(ProvUIMessages.InstallWizardPage_Title);
+		setDescription(ProvUIMessages.InstallWizardPage_NoCheckboxDescription);
+	}
+
+	protected String getOperationLabel() {
+		return ProvUIMessages.InstallIUOperationLabel;
+	}
+
+	protected String getOperationTaskName() {
+		return ProvUIMessages.InstallIUOperationTask;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMInstallWizardPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryUi.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryUi.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryUi.java	(revision 122)
@@ -0,0 +1,65 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.DiscoveryUi;
+import org.eclipse.equinox.internal.p2.ui.discovery.operations.DiscoveryInstallOperation;
+import org.eclipse.equinox.internal.p2.ui.discovery.util.CommonColors;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.statushandlers.StatusManager;
+
+/***
+ * Copy of DiscoveryUi, uses a TXMDiscoveryInstallOperation runnable object 	 
+ * 
+ * @author nkredens
+ *
+ */
+public abstract class TXMDiscoveryUi {
+	public static final String ID_PLUGIN = "org.eclipse.equinox.p2.ui.discovery"; //$NON-NLS-1$
+
+	private static CommonColors commonColors;
+
+	private TXMDiscoveryUi() {
+		// don't allow clients to instantiate
+	}
+
+	public static boolean install(List<CatalogItem> descriptors,
+			IRunnableContext context) {
+		try {
+			IRunnableWithProgress runner = new TXMDiscoveryInstallOperation(
+					descriptors);
+			context.run(true, true, runner);
+		} catch (InvocationTargetException e) {
+			IStatus status = new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN,
+					NLS.bind(Messages.ConnectorDiscoveryWizard_installProblems,
+							new Object[] { e.getCause().getMessage() }),
+					e.getCause());
+			StatusManager.getManager().handle(
+					status,
+					StatusManager.SHOW | StatusManager.BLOCK
+							| StatusManager.LOG);
+			return false;
+		} catch (InterruptedException e) {
+			// canceled
+			return false;
+		}
+		return true;
+	}
+
+	public static CommonColors getCommonsColors() {
+		if (commonColors == null) {
+			commonColors = new CommonColors(Display.getDefault(),
+					JFaceResources.getResources());
+		}
+		return commonColors;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryUi.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMPreselectedIUInstallWizard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMPreselectedIUInstallWizard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMPreselectedIUInstallWizard.java	(revision 122)
@@ -0,0 +1,43 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.util.Collection;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ISelectableIUsPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.InstallWizardPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.PreselectedIUInstallWizard;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionResultsWizardPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.SelectableIUsPage;
+import org.eclipse.equinox.internal.p2.ui.model.IUElementListRoot;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.InstallOperation;
+import org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+
+/***
+ * PreselectedIUInstallWizard using a personalized main page (SelectableIUsPage)
+ * 
+ * @author nkredens
+ *
+ */
+public class TXMPreselectedIUInstallWizard extends PreselectedIUInstallWizard {
+
+	public TXMPreselectedIUInstallWizard(ProvisioningUI ui,
+			InstallOperation operation,
+			Collection<IInstallableUnit> initialSelections,
+			LoadMetadataRepositoryJob job) {
+		super(ui, operation, initialSelections, job);
+	}
+	
+	protected ISelectableIUsPage createMainPage(IUElementListRoot input, Object[] selections) {
+		mainPage = new TXMSelectableIUsPage(ui, this, input, selections);
+		mainPage.setTitle(ProvUIMessages.PreselectedIUInstallWizard_Title);
+		mainPage.setDescription(ProvUIMessages.PreselectedIUInstallWizard_Description);
+		((SelectableIUsPage) mainPage).updateStatus(input, operation);
+		return mainPage;
+	}
+	
+	protected ResolutionResultsWizardPage createResolutionPage() {
+		return new TXMInstallWizardPage(ui, this, root, operation);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMPreselectedIUInstallWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryItem.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryItem.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryItem.java	(revision 122)
@@ -0,0 +1,266 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+
+import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
+import org.eclipse.equinox.internal.p2.discovery.model.Overview;
+import org.eclipse.equinox.internal.p2.ui.discovery.util.WorkbenchUtil;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.AbstractDiscoveryItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.DiscoveryItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.DiscoveryResources;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.layout.GridLayoutFactory;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.SWTError;
+import org.eclipse.swt.browser.*;
+import org.eclipse.swt.events.*;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.*;
+import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
+
+/***
+ * Copy of DiscoveryItem but replace the description field with an HTML field
+ * 
+ * @author Steffen Pingel
+ * @author mdecorde
+ * 
+ */
+public class TXMDiscoveryItem<T extends CatalogItem> extends AbstractDiscoveryItem<T> implements PropertyChangeListener {
+
+	Button checkbox;
+
+	private Composite checkboxContainer;
+
+	private final CatalogItem item;
+
+	//private Label description;
+	private Browser browser;
+
+	private Label iconLabel;
+
+	private ToolItem infoButton;
+
+	private Label nameLabel;
+
+	private Link providerLabel;
+
+	private final IShellProvider shellProvider;
+
+	private final TXMCatalogViewer viewer;
+
+	public TXMDiscoveryItem(Composite parent, int style, DiscoveryResources resources, IShellProvider shellProvider, final T item, TXMCatalogViewer viewer) {
+		super(parent, style, resources, item);
+		this.shellProvider = shellProvider;
+		this.item = item;
+		this.viewer = viewer;
+		item.addPropertyChangeListener(this);
+		this.addDisposeListener(new DisposeListener() {
+			public void widgetDisposed(DisposeEvent e) {
+				item.removePropertyChangeListener(TXMDiscoveryItem.this);
+			}
+		});
+		createContent();
+		initializeListeners();
+	}
+
+	private void createContent() {
+		GridLayout layout = new GridLayout(3, false);
+		layout.marginLeft = 7;
+		layout.marginTop = 2;
+		layout.marginBottom = 2;
+		setLayout(layout);
+
+		checkboxContainer = new Composite(this, SWT.INHERIT_NONE);
+		GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.BEGINNING).span(1, 2).applyTo(checkboxContainer);
+		GridLayoutFactory.fillDefaults().spacing(1, 1).numColumns(2).applyTo(checkboxContainer);
+
+		checkbox = new Button(checkboxContainer, SWT.CHECK | SWT.INHERIT_FORCE);
+		checkbox.setSelection(item.isSelected());
+		checkbox.setText(" "); //$NON-NLS-1$
+		// help UI tests
+		checkbox.setData("connectorId", item.getId()); //$NON-NLS-1$
+		// FIXME
+		//      checkbox.addFocusListener(new FocusAdapter() {
+			//          @Override
+			//          public void focusGained(FocusEvent e) {
+		//              bodyScrolledComposite.showControl(this);
+		//          }
+		//      });
+		GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(checkbox);
+
+		iconLabel = new Label(checkboxContainer, SWT.NONE);
+		GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(iconLabel);
+		if (item.getIcon() != null) {
+			iconLabel.setImage(resources.getIconImage(item.getSource(), item.getIcon(), 32, false));
+		}
+
+		nameLabel = new Label(this, SWT.NONE);
+		GridDataFactory.fillDefaults().grab(true, false).align(SWT.BEGINNING, SWT.CENTER).applyTo(nameLabel);
+		nameLabel.setFont(resources.getSmallHeaderFont());
+		if (item.isInstalled()) {
+			nameLabel.setText(NLS.bind(Messages.DiscoveryItem_Extension_installed, item.getName()));
+		} else {
+			nameLabel.setText(item.getName());
+		}
+
+		if (hasTooltip()) {
+			ToolBar toolBar = new ToolBar(this, SWT.FLAT);
+			GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).applyTo(toolBar);
+
+			infoButton = new ToolItem(toolBar, SWT.PUSH);
+			infoButton.setImage(resources.getInfoImage());
+			infoButton.setToolTipText(Messages.ConnectorDiscoveryWizardMainPage_tooltip_showOverview);
+			hookTooltip(toolBar, infoButton, this, nameLabel, item.getSource(), item.getOverview(), null);
+		} else {
+			Label label = new Label(this, SWT.NULL);
+			label.setText(" "); //$NON-NLS-1$
+		}
+		
+		browser = new Browser(this, SWT.NULL | SWT.WRAP);
+		
+		GridDataFactory.fillDefaults().grab(true, true).span(3, 1).hint(200, SWT.DEFAULT).applyTo(browser);
+		String descriptionText = item.getDescription();
+		int maxDescriptionLength = 162;
+		if (descriptionText == null) {
+			descriptionText = ""; //$NON-NLS-1$
+		}
+		if (descriptionText.length() > maxDescriptionLength) {
+			descriptionText = descriptionText.substring(0, maxDescriptionLength);
+		}  
+	    
+		browser.setText(descriptionText);
+		//browser.setUrl("file:/home/nkredens/Bureau/test.html");
+/*
+		description = new Label(this, SWT.NULL | SWT.WRAP);
+		GridDataFactory.fillDefaults().grab(true, false).span(3, 1).hint(100, SWT.DEFAULT).applyTo(description);
+		String descriptionText = item.getDescription();
+		int maxDescriptionLength = 162;
+		if (descriptionText == null) {
+			descriptionText = ""; //$NON-NLS-1$
+		}
+		if (descriptionText.length() > maxDescriptionLength) {
+			descriptionText = descriptionText.substring(0, maxDescriptionLength);
+		}
+		description.setText(descriptionText);
+	*/	
+
+		createProviderLabel();
+	}
+
+	public void createProviderLabel() {
+		providerLabel = new Link(this, SWT.RIGHT);
+		GridDataFactory.fillDefaults().span(3, 1).align(SWT.BEGINNING, SWT.CENTER).applyTo(providerLabel);
+		// always disabled color to make it less prominent
+		providerLabel.setForeground(resources.getColorDisabled());
+		if (item.getCertification() != null) {
+			providerLabel.setText(NLS.bind(Messages.DiscoveryViewer_Certification_Label0, new String[] {item.getProvider(), item.getLicense(), item.getCertification().getName()}));
+			if (item.getCertification().getUrl() != null) {
+				providerLabel.addSelectionListener(new SelectionAdapter() {
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						WorkbenchUtil.openUrl(item.getCertification().getUrl(), IWorkbenchBrowserSupport.AS_EXTERNAL);
+					}
+				});
+			}
+			Overview overview = new Overview();
+			overview.setSummary(item.getCertification().getDescription());
+			overview.setUrl(item.getCertification().getUrl());
+			Image image = resources.getIconImage(item.getSource(), item.getCertification().getIcon(), 48, true);
+			hookTooltip(providerLabel, providerLabel, this, providerLabel, item.getSource(), overview, image);
+		} else if (item.getLicense() != null) {
+			providerLabel.setText(NLS.bind(Messages.ConnectorDiscoveryWizardMainPage_provider_and_license, item.getProvider(), item.getLicense()));
+		} else {
+			providerLabel.setText(item.getProvider());
+		}
+	}
+
+	protected boolean hasTooltip() {
+		return item.getOverview() != null && item.getOverview().getSummary() != null && item.getOverview().getSummary().length() > 0;
+	}
+
+	public void initializeListeners() {
+		checkbox.addSelectionListener(new SelectionListener() {
+			public void widgetDefaultSelected(SelectionEvent e) {
+				widgetSelected(e);
+			}
+
+			public void widgetSelected(SelectionEvent e) {
+				boolean selected = checkbox.getSelection();
+				maybeModifySelection(selected);
+			}
+		});
+		MouseListener connectorItemMouseListener = new MouseAdapter() {
+			@Override
+			public void mouseUp(MouseEvent e) {
+				boolean selected = !checkbox.getSelection();
+				if (maybeModifySelection(selected)) {
+					checkbox.setSelection(selected);
+				}
+			}
+		};
+		checkboxContainer.addMouseListener(connectorItemMouseListener);
+		this.addMouseListener(connectorItemMouseListener);
+		iconLabel.addMouseListener(connectorItemMouseListener);
+		nameLabel.addMouseListener(connectorItemMouseListener);
+		// the provider has clickable links
+		//providerLabel.addMouseListener(connectorItemMouseListener);
+		//description.addMouseListener(connectorItemMouseListener);
+		browser.addMouseListener(connectorItemMouseListener);
+	}
+
+	protected boolean maybeModifySelection(boolean selected) {
+		if (selected) {
+			if (item.isInstalled()) {
+				MessageDialog.openWarning(shellProvider.getShell(), Messages.DiscoveryItem_Connector_already_installed_Error_Title, NLS.bind(Messages.DiscoveryItem_Connector_already_installed_Error_Message, item.getName()));
+				return false;
+			}
+			if (item.getAvailable() != null && !item.getAvailable()) {
+				MessageDialog.openWarning(shellProvider.getShell(), Messages.ConnectorDiscoveryWizardMainPage_warningTitleConnectorUnavailable, NLS.bind(Messages.ConnectorDiscoveryWizardMainPage_warningMessageConnectorUnavailable, item.getName()));
+				return false;
+			}
+		}
+		viewer.modifySelection(item, selected);
+		return true;
+	}
+
+	public void propertyChange(PropertyChangeEvent evt) {
+		if (!isDisposed()) {
+			getDisplay().asyncExec(new Runnable() {
+				public void run() {
+					if (!isDisposed()) {
+						refresh();
+					}
+				}
+			});
+		}
+	}
+
+	@Override
+	protected void refresh() {
+		boolean enabled = !item.isInstalled() && (item.getAvailable() == null || item.getAvailable());
+
+		checkbox.setEnabled(enabled);
+		nameLabel.setEnabled(enabled);
+		providerLabel.setEnabled(enabled);
+		//description.setEnabled(enabled);
+		browser.setEnabled(enabled);
+
+		Color foreground;
+		if (enabled) {
+			foreground = getForeground();
+		} else {
+			foreground = resources.getColorDisabled();
+		}
+		nameLabel.setForeground(foreground);
+		//description.setForeground(foreground);
+		browser.setForeground(foreground);
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryItem.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogPage.java	(revision 122)
@@ -0,0 +1,21 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import org.eclipse.equinox.internal.p2.discovery.Catalog;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogPage;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer;
+import org.eclipse.swt.widgets.Composite;
+
+public class TXMCatalogPage extends CatalogPage {
+
+	public TXMCatalogPage(Catalog catalog) {
+		super(catalog);
+		// TODO Auto-generated constructor stub
+	}
+
+	protected CatalogViewer doCreateViewer(Composite parent) {
+		CatalogViewer viewer = new TXMCatalogViewer(getCatalog(), this, getContainer(), getWizard().getConfiguration());
+		viewer.setMinimumHeight(MINIMUM_HEIGHT);
+		viewer.createControl(parent);
+		return viewer;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryWizard.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryWizard.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryWizard.java	(revision 122)
@@ -0,0 +1,25 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import org.eclipse.equinox.internal.p2.discovery.Catalog;
+import org.eclipse.equinox.internal.p2.ui.discovery.DiscoveryUi;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogConfiguration;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogPage;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.DiscoveryWizard;
+
+public class TXMDiscoveryWizard extends DiscoveryWizard {
+
+	public TXMDiscoveryWizard(Catalog catalog,
+			CatalogConfiguration configuration) {
+		super(catalog, configuration);
+		
+	}
+	
+    protected CatalogPage doCreateCatalogPage() {
+    	return new TXMCatalogPage(getCatalog());
+	}
+    
+    @Override
+    public boolean performFinish() {
+    	return TXMDiscoveryUi.install(getCatalogPage().getInstallableConnectors(), getContainer());
+    }
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryWizard.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/InstallPluginHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/InstallPluginHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/InstallPluginHandler.java	(revision 122)
@@ -0,0 +1,95 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.eclipse.equinox.internal.p2.discovery.Catalog;
+import org.eclipse.equinox.internal.p2.discovery.DiscoveryCore;
+import org.eclipse.equinox.internal.p2.ui.discovery.repository.RepositoryDiscoveryStrategy;
+import org.eclipse.equinox.internal.p2.ui.discovery.util.WorkbenchUtil;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogConfiguration;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.DiscoveryWizard;
+import org.eclipse.equinox.internal.p2.ui.sdk.InstallNewSoftwareHandler;
+import org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.utils.logger.Log;
+
+/**
+ * NK: InstallPluginHandler invokes the simplified install wizard
+ * 
+ */
+public class InstallPluginHandler extends InstallNewSoftwareHandler {
+
+	/**
+	 * The constructor.
+	 */
+	public InstallPluginHandler() {
+		super();
+	}
+
+	protected void doExecute(LoadMetadataRepositoryJob job) {
+		//super.doExecute(job);
+		
+		ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+		//URI[] knownedRepos = provisioningUI.getRepositoryTracker().getKnownRepositories(provisioningUI.getSession());
+		//System.out.println("REPOS: "+Arrays.toString(knownedRepos));
+		//getProvisioningUI().openInstallWizard(null, null, job);
+		
+		
+		Catalog catalog = new Catalog();
+		catalog.setEnvironment(DiscoveryCore.createEnvironment());
+		catalog.setVerifyUpdateSiteAvailability(false);
+		
+		RepositoryDiscoveryStrategy strategy = new RepositoryDiscoveryStrategy();
+		try {
+			String updateLevel = TxmPreferences.getString(AdvancePreferencePage.UPDATE_LEVEL, "STABLE");//$NON-NLS-1$
+			boolean alphaMode = false;
+			boolean betaMode = false;
+			boolean devMode = false;
+			if ("DEV".equals(updateLevel)) {//$NON-NLS-1$
+				devMode = alphaMode = betaMode = true;
+			} else if ("ALPHA".equals(updateLevel)) {//$NON-NLS-1$
+				alphaMode = betaMode = true;
+			} else if ("BETA".equals(updateLevel)) {//$NON-NLS-1$
+				betaMode = true;
+			}
+			Log.info("Update levels: alpha="+alphaMode+" beta="+betaMode); //$NON-NLS-1$ //$NON-NLS-2$
+			
+			strategy.addLocation(new URI(TXMUpdateHandler.UPDATESITE+"/ext/stable")); //$NON-NLS-1$
+			
+			if (devMode) {
+				strategy.addLocation(new URI(TXMUpdateHandler.UPDATESITE+"/ext/dev")); //$NON-NLS-1$
+			}
+			
+			if (alphaMode) {
+				strategy.addLocation(new URI(TXMUpdateHandler.UPDATESITE+"/ext/alpha")); //$NON-NLS-1$
+			}
+			if (betaMode) {
+				strategy.addLocation(new URI(TXMUpdateHandler.UPDATESITE+"/ext/beta")); //$NON-NLS-1$
+			}
+		} catch (URISyntaxException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		
+//		for (URI location : knownedRepos) {
+//			strategy.addLocation(location);
+//		}
+		
+		catalog.getDiscoveryStrategies().add(strategy);
+//		System.out.println("Catalogs: ");
+//		for (AbstractDiscoveryStrategy strg : catalog.getDiscoveryStrategies()) {
+//			System.out.println("Strategy: "+strg);
+//			System.out.println(" Categories: "+strg.getCategories());
+//			System.out.println(" Items: "+strg.getItems());
+//		}
+		CatalogConfiguration configuration = new CatalogConfiguration();
+		configuration.setShowTagFilter(false);
+		
+		DiscoveryWizard wizard = new TXMDiscoveryWizard(catalog, configuration);
+		WizardDialog dialog = new WizardDialog(WorkbenchUtil.getShell(), wizard);
+		dialog.open();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/InstallPluginHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogViewer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogViewer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogViewer.java	(revision 122)
@@ -0,0 +1,52 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import org.eclipse.equinox.internal.p2.discovery.Catalog;
+import org.eclipse.equinox.internal.p2.discovery.model.CatalogCategory;
+import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.util.ControlListItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogConfiguration;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogViewer;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CategoryItem;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.jface.window.IShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+
+public class TXMCatalogViewer extends CatalogViewer{
+
+	public TXMCatalogViewer(Catalog catalog, IShellProvider shellProvider,
+			IRunnableContext context, CatalogConfiguration configuration) {
+		super(catalog, shellProvider, context, configuration);
+		// TODO Auto-generated constructor stub
+	}
+
+	protected ControlListItem<?> doCreateViewerItem(Composite parent, Object element) {
+		if (element instanceof CatalogItem) {
+			return new TXMDiscoveryItem(parent, SWT.BORDER, getResources(), shellProvider, (CatalogItem) element, this);
+		} else if (element instanceof CatalogCategory) {
+			return new CategoryItem(parent, SWT.NONE, getResources(), (CatalogCategory) element);
+		}
+		return null;
+	}
+
+	public void modifySelection(final CatalogItem connector, boolean selected) {
+		super.modifySelection(connector, selected);
+	}
+
+	protected void doCheckCatalog() {
+		//System.out.println("DO CHECK CATALOG");
+		int categoryWithConnectorCount = 0;
+		int itemCount = getCatalog().getItems().size();
+		
+		for (CatalogCategory category : getCatalog().getCategories()) {
+			categoryWithConnectorCount += category.getItems().size();
+		}
+		
+		if (categoryWithConnectorCount == 0 && itemCount == 0) {
+			// nothing was discovered: notify the user
+			MessageDialog.openWarning(shellProvider.getShell(), Messages.ConnectorDiscoveryWizardMainPage_noConnectorsFound, Messages.ConnectorDiscoveryWizardMainPage_noConnectorsFound_description);
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMCatalogViewer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/FixUpdateHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/FixUpdateHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/FixUpdateHandler.java	(revision 122)
@@ -0,0 +1,72 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.net.URI;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.equinox.internal.p2.ui.sdk.UpdateHandler;
+import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.engine.IProfileRegistry;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.utils.logger.Log;
+
+public class FixUpdateHandler extends UpdateHandler {
+
+	/**
+	 * Execute the command.
+	 */
+	public Object execute(ExecutionEvent event) {
+		String profileId = getProvisioningUI().getProfileId();
+		IProvisioningAgent agent = getProvisioningUI().getSession().getProvisioningAgent();
+		
+		if (agent != null) {
+			IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
+			if (registry != null) {
+				registry.getProfile(profileId);
+			}
+		}
+		
+		run(agent);
+		return null;
+	}
+	
+	public static void run(IProvisioningAgent agent) {
+		
+		String profileId = ProvisioningUI.getDefaultUI().getProfileId();
+//		IProvisioningAgent agent = ProvisioningUI.getDefaultUI().getSession().getProvisioningAgent();
+
+		if (agent != null) {
+			IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
+			if (registry != null) {
+				registry.getProfile(profileId);
+			}
+		}
+		
+		// Look for a profile.  We may not immediately need it in the
+		// handler, but if we don't have one, whatever we are trying to do
+		// will ultimately fail in a more subtle/low-level way.  So determine
+		// up front if the system is configured properly.
+//		int attempt = 10;
+//		while (attempt > 0) {
+//			if (TXMUpdateHandler.patchGZProfile()) {
+//				attempt = -1;
+//			}
+//			attempt--;
+//			try { Thread.sleep(200); } catch (InterruptedException e) {
+//				e.printStackTrace();
+//				attempt = 0;
+//			}
+//		}
+//		if (attempt == 0) {
+//			System.out.println("Update profile was not generated by the p2 plugin. Aborting.");
+//			return;
+//		}
+
+		// this is the default repository
+		//TXMUpdateHandler.addDefaultUpdateSites(agent);
+
+		Log.info(Messages.FixUpdateHandler_0);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/FixUpdateHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSizeComputingWizardPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSizeComputingWizardPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSizeComputingWizardPage.java	(revision 122)
@@ -0,0 +1,116 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.text.NumberFormat;
+
+import org.eclipse.core.runtime.*;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard;
+import org.eclipse.equinox.internal.p2.ui.model.IUElementListRoot;
+import org.eclipse.equinox.p2.engine.IProvisioningPlan;
+import org.eclipse.equinox.p2.engine.ProvisioningContext;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.ProfileChangeOperation;
+import org.eclipse.equinox.p2.query.IQueryable;
+import org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+
+public abstract class TXMSizeComputingWizardPage extends TXMResolutionResultsWizardPage {
+	protected Label sizeInfo;
+	protected long size;
+	Job sizingJob;
+	private IProvisioningPlan lastComputedPlan = null;
+
+	protected TXMSizeComputingWizardPage(ProvisioningUI ui, ProvisioningOperationWizard wizard, IUElementListRoot root, ProfileChangeOperation initialResolution) {
+		super(ui, wizard, root, initialResolution);
+		// Compute size immediately if a plan is available.  This may or may not finish before
+		// the widgetry is created.
+		if (initialResolution != null && initialResolution.hasResolved())
+			computeSizing(initialResolution.getProvisioningPlan(), initialResolution.getProvisioningContext());
+		else
+			// Set the size to indicate there is no size yet.
+			size = ProvUI.SIZE_NOTAPPLICABLE;
+	}
+
+	protected void computeSizing(final IProvisioningPlan plan, final ProvisioningContext provisioningContext) {
+		if (plan == lastComputedPlan)
+			return;
+		lastComputedPlan = plan;
+		size = ProvUI.SIZE_UNKNOWN;
+		updateSizingInfo();
+		if (sizingJob != null)
+			sizingJob.cancel();
+		sizingJob = new Job(ProvUIMessages.SizeComputingWizardPage_SizeJobTitle) {
+			protected IStatus run(IProgressMonitor monitor) {
+				size = ProvUI.getSize(ProvUI.getEngine(getProvisioningUI().getSession()), plan, provisioningContext, monitor);
+				if (monitor.isCanceled())
+					return Status.CANCEL_STATUS;
+				if (display != null) {
+					display.asyncExec(new Runnable() {
+						public void run() {
+							updateSizingInfo();
+						}
+					});
+				}
+				return Status.OK_STATUS;
+			}
+
+		};
+		sizingJob.setUser(false);
+		sizingJob.setSystem(true);
+		sizingJob.setProperty(LoadMetadataRepositoryJob.SUPPRESS_AUTHENTICATION_JOB_MARKER, Boolean.toString(true));
+		sizingJob.schedule();
+	}
+
+	protected void createSizingInfo(Composite parent) {
+		sizeInfo = new Label(parent, SWT.NONE);
+		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
+		sizeInfo.setLayoutData(data);
+		updateSizingInfo();
+	}
+
+	protected void updateSizingInfo() {
+		if (sizeInfo != null && !sizeInfo.isDisposed()) {
+			if (size == ProvUI.SIZE_NOTAPPLICABLE)
+				sizeInfo.setVisible(false);
+			else {
+				sizeInfo.setText(NLS.bind(ProvUIMessages.UpdateOrInstallWizardPage_Size, getFormattedSize()));
+				sizeInfo.setVisible(true);
+			}
+		}
+	}
+
+	protected String getFormattedSize() {
+		if (size == ProvUI.SIZE_UNKNOWN || size == ProvUI.SIZE_UNAVAILABLE)
+			return ProvUIMessages.IUDetailsLabelProvider_Unknown;
+		if (size > 1000L) {
+			long kb = size / 1000L;
+			return NLS.bind(ProvUIMessages.IUDetailsLabelProvider_KB, NumberFormat.getInstance().format(new Long(kb)));
+		}
+		return NLS.bind(ProvUIMessages.IUDetailsLabelProvider_Bytes, NumberFormat.getInstance().format(new Long(size)));
+	}
+
+	public void dispose() {
+		if (sizingJob != null) {
+			sizingJob.cancel();
+			sizingJob = null;
+		}
+	}
+
+	public void updateStatus(IUElementListRoot root, ProfileChangeOperation op) {
+		super.updateStatus(root, op);
+		if (op != null && op.getProvisioningPlan() != null)
+			computeSizing(op.getProvisioningPlan(), op.getProvisioningContext());
+	}
+
+	protected IQueryable<IInstallableUnit> getQueryable(IProvisioningPlan plan) {
+		return plan.getAdditions();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSizeComputingWizardPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryInstallOperation.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryInstallOperation.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryInstallOperation.java	(revision 122)
@@ -0,0 +1,363 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.*;
+import java.util.*;
+
+import org.eclipse.core.runtime.*;
+import org.eclipse.equinox.internal.p2.discovery.model.CatalogItem;
+import org.eclipse.equinox.internal.p2.ui.IProvHelpContextIds;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.internal.p2.ui.dialogs.PreselectedIUInstallWizard;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningWizardDialog;
+import org.eclipse.equinox.internal.p2.ui.discovery.DiscoveryUi;
+import org.eclipse.equinox.internal.p2.ui.discovery.util.WorkbenchUtil;
+import org.eclipse.equinox.internal.p2.ui.discovery.wizards.Messages;
+import org.eclipse.equinox.p2.core.ProvisionException;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.metadata.Version;
+import org.eclipse.equinox.p2.operations.*;
+import org.eclipse.equinox.p2.query.*;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+
+/***
+ * Copy of DiscoveryInstallOperation but uses a personalized install wizard
+ * 
+ * @author nkredens
+ *
+ */
+public class TXMDiscoveryInstallOperation implements IRunnableWithProgress {
+	private final List<CatalogItem> installableConnectors;
+
+	private final ProvisioningUI provisioningUI;
+
+	private Set<URI> repositoryLocations;
+
+	public TXMDiscoveryInstallOperation(List<CatalogItem> installableConnectors) {
+		if (installableConnectors == null || installableConnectors.isEmpty()) {
+			throw new IllegalArgumentException();
+		}
+		this.installableConnectors = new ArrayList<CatalogItem>(
+				installableConnectors);
+		this.provisioningUI = ProvisioningUI.getDefaultUI();
+	}
+
+	public void run(IProgressMonitor progressMonitor)
+			throws InvocationTargetException, InterruptedException {
+		try {
+			SubMonitor monitor = SubMonitor.convert(progressMonitor,
+					Messages.InstallConnectorsJob_task_configuring, 100);
+			try {
+				final IInstallableUnit[] ius = computeInstallableUnits(monitor
+						.newChild(50));
+
+				checkCancelled(monitor);
+
+				final InstallOperation installOperation = resolve(
+						monitor.newChild(50), ius,
+						repositoryLocations.toArray(new URI[0]));
+
+				checkCancelled(monitor);
+
+				Display.getDefault().asyncExec(new Runnable() {
+					public void run() {
+						// provisioningUI.openInstallWizard(Arrays.asList(ius),
+						// installOperation, null);
+						PreselectedIUInstallWizard wizard = new TXMPreselectedIUInstallWizard(
+								provisioningUI, installOperation, Arrays.asList(ius), null);
+						wizard.setRemediationOperation(null);
+						WizardDialog dialog = new ProvisioningWizardDialog(ProvUI.getDefaultParentShell(), wizard);
+						dialog.create();
+						PlatformUI
+								.getWorkbench()
+								.getHelpSystem()
+								.setHelp(dialog.getShell(),
+										IProvHelpContextIds.INSTALL_WIZARD);
+						dialog.open();
+					}
+				});
+			} finally {
+				monitor.done();
+			}
+		} catch (OperationCanceledException e) {
+			throw new InterruptedException();
+		} catch (Exception e) {
+			throw new InvocationTargetException(e);
+		}
+	}
+
+	private void checkCancelled(IProgressMonitor monitor) {
+		if (monitor.isCanceled()) {
+			throw new OperationCanceledException();
+		}
+	}
+
+	private InstallOperation resolve(IProgressMonitor monitor,
+			final IInstallableUnit[] ius, URI[] repositories)
+			throws CoreException {
+		final InstallOperation installOperation = provisioningUI
+				.getInstallOperation(Arrays.asList(ius), repositories);
+		IStatus operationStatus = installOperation
+				.resolveModal(new SubProgressMonitor(monitor,
+						installableConnectors.size()));
+		if (operationStatus.getSeverity() > IStatus.WARNING) {
+			throw new CoreException(operationStatus);
+		}
+		return installOperation;
+	}
+
+	public IInstallableUnit[] computeInstallableUnits(SubMonitor monitor)
+			throws CoreException {
+		try {
+			monitor.setWorkRemaining(100);
+			// add repository urls and load meta data
+			List<IMetadataRepository> repositories = addRepositories(monitor
+					.newChild(50));
+			final List<IInstallableUnit> installableUnits = queryInstallableUnits(
+					monitor.newChild(50), repositories);
+			removeOldVersions(installableUnits);
+			checkForUnavailable(installableUnits);
+			return installableUnits
+					.toArray(new IInstallableUnit[installableUnits.size()]);
+
+			// MultiStatus status = new MultiStatus(DiscoveryUi.ID_PLUGIN, 0,
+			// Messages.PrepareInstallProfileJob_ok, null);
+			// ius = installableUnits.toArray(new
+			// IInstallableUnit[installableUnits.size()]);
+			// ProfileChangeRequest profileChangeRequest =
+			// InstallAction.computeProfileChangeRequest(ius, profileId,
+			// status, new SubProgressMonitor(monitor,
+			// installableConnectors.size()));
+			// if (status.getSeverity() > IStatus.WARNING) {
+			// throw new CoreException(status);
+			// }
+			// if (profileChangeRequest == null) {
+			// // failed but no indication as to why
+			// throw new CoreException(new Status(IStatus.ERROR,
+			// DiscoveryUi.ID_PLUGIN,
+			// Messages.PrepareInstallProfileJob_computeProfileChangeRequestFailed,
+			// null));
+			// }
+			// PlannerResolutionOperation operation = new
+			// PlannerResolutionOperation(
+			// Messages.PrepareInstallProfileJob_calculatingRequirements,
+			// profileId, profileChangeRequest, null,
+			// status, true);
+			// IStatus operationStatus = operation.execute(new
+			// SubProgressMonitor(monitor, installableConnectors.size()));
+			// if (operationStatus.getSeverity() > IStatus.WARNING) {
+			// throw new CoreException(operationStatus);
+			// }
+			//
+			// plannerResolutionOperation = operation;
+
+		} catch (URISyntaxException e) {
+			// should never happen, since we already validated URLs.
+			throw new CoreException(new Status(IStatus.ERROR,
+					DiscoveryUi.ID_PLUGIN,
+					Messages.InstallConnectorsJob_unexpectedError_url, e));
+		} catch (MalformedURLException e) {
+			// should never happen, since we already validated URLs.
+			throw new CoreException(new Status(IStatus.ERROR,
+					DiscoveryUi.ID_PLUGIN,
+					Messages.InstallConnectorsJob_unexpectedError_url, e));
+		} finally {
+			monitor.done();
+		}
+	}
+
+	/***
+	 * Verifies that we found what we were looking for: it's possible that we
+	 * have connector descriptors that are no longer available on their
+	 * respective sites. In that case we must inform the user. Unfortunately
+	 * this is the earliest point at which we can know.
+	 */
+	private void checkForUnavailable(
+			final List<IInstallableUnit> installableUnits) throws CoreException {
+		// at least one selected connector could not be found in a repository
+		Set<String> foundIds = new HashSet<String>();
+		for (IInstallableUnit unit : installableUnits) {
+			foundIds.add(unit.getId());
+		}
+
+		String message = ""; //$NON-NLS-1$
+		String detailedMessage = ""; //$NON-NLS-1$
+		for (CatalogItem descriptor : installableConnectors) {
+			StringBuilder unavailableIds = null;
+			for (String id : descriptor.getInstallableUnits()) {
+				if (!foundIds.contains(id)) {
+					if (unavailableIds == null) {
+						unavailableIds = new StringBuilder();
+					} else {
+						unavailableIds
+								.append(Messages.InstallConnectorsJob_commaSeparator);
+					}
+					unavailableIds.append(id);
+				}
+			}
+			if (unavailableIds != null) {
+				if (message.length() > 0) {
+					message += Messages.InstallConnectorsJob_commaSeparator;
+				}
+				message += descriptor.getName();
+
+				if (detailedMessage.length() > 0) {
+					detailedMessage += Messages.InstallConnectorsJob_commaSeparator;
+				}
+				detailedMessage += NLS
+						.bind(Messages.PrepareInstallProfileJob_notFoundDescriptorDetail,
+								new Object[] { descriptor.getName(),
+										unavailableIds.toString(),
+										descriptor.getSiteUrl() });
+			}
+		}
+
+		if (message.length() > 0) {
+			// instead of aborting here we ask the user if they wish to proceed
+			// anyways
+			final boolean[] okayToProceed = new boolean[1];
+			final String finalMessage = message;
+			Display.getDefault().syncExec(new Runnable() {
+				public void run() {
+					okayToProceed[0] = MessageDialog.openQuestion(
+							WorkbenchUtil.getShell(),
+							Messages.InstallConnectorsJob_questionProceed,
+							NLS.bind(
+									Messages.InstallConnectorsJob_questionProceed_long,
+									new Object[] { finalMessage }));
+				}
+			});
+			if (!okayToProceed[0]) {
+				throw new CoreException(
+						new Status(
+								IStatus.ERROR,
+								DiscoveryUi.ID_PLUGIN,
+								NLS.bind(
+										Messages.InstallConnectorsJob_connectorsNotAvailable,
+										detailedMessage), null));
+			}
+		}
+	}
+
+	/***
+	 * Filters those installable units that have a duplicate in the list with a
+	 * higher version number. it's possible that some repositories will host
+	 * multiple versions of a particular feature. we assume that the user wants
+	 * the highest version.
+	 */
+	private void removeOldVersions(final List<IInstallableUnit> installableUnits) {
+		Map<String, Version> symbolicNameToVersion = new HashMap<String, Version>();
+		for (IInstallableUnit unit : installableUnits) {
+			Version version = symbolicNameToVersion.get(unit.getId());
+			if (version == null || version.compareTo(unit.getVersion()) < 0) {
+				symbolicNameToVersion.put(unit.getId(), unit.getVersion());
+			}
+		}
+		if (symbolicNameToVersion.size() != installableUnits.size()) {
+			for (IInstallableUnit unit : new ArrayList<IInstallableUnit>(
+					installableUnits)) {
+				Version version = symbolicNameToVersion.get(unit.getId());
+				if (!version.equals(unit.getVersion())) {
+					installableUnits.remove(unit);
+				}
+			}
+		}
+	}
+
+	/***
+	 * Perform a query to get the installable units. This causes p2 to determine
+	 * what features are available in each repository. We select installable
+	 * units by matching both the feature id and the repository; it is possible
+	 * though unlikely that the same feature id is available from more than one
+	 * of the selected repositories, and we must ensure that the user gets the
+	 * one that they asked for.
+	 */
+	private List<IInstallableUnit> queryInstallableUnits(SubMonitor monitor,
+			List<IMetadataRepository> repositories) throws URISyntaxException {
+		final List<IInstallableUnit> installableUnits = new ArrayList<IInstallableUnit>();
+
+		monitor.setWorkRemaining(repositories.size());
+		for (final IMetadataRepository repository : repositories) {
+			checkCancelled(monitor);
+			final Set<String> installableUnitIdsThisRepository = getDescriptorIds(repository);
+			IQueryResult<IInstallableUnit> result = repository.query(
+					createInstalledIUsQuery(), monitor.newChild(1));
+			for (Iterator<IInstallableUnit> iter = result.iterator(); iter
+					.hasNext();) {
+				IInstallableUnit iu = iter.next();
+				String id = iu.getId();
+				if (installableUnitIdsThisRepository.contains(id))
+					installableUnits.add(iu);
+			}
+		}
+		return installableUnits;
+	}
+
+	protected IQuery<IInstallableUnit> createInstalledIUsQuery() {
+		return QueryUtil.createIUGroupQuery();
+	}
+
+	private List<IMetadataRepository> addRepositories(SubMonitor monitor)
+			throws MalformedURLException, URISyntaxException,
+			ProvisionException {
+		// tell p2 that it's okay to use these repositories
+		ProvisioningSession session = ProvisioningUI.getDefaultUI()
+				.getSession();
+		RepositoryTracker repositoryTracker = ProvisioningUI.getDefaultUI()
+				.getRepositoryTracker();
+		repositoryLocations = new HashSet<URI>();
+		monitor.setWorkRemaining(installableConnectors.size() * 5);
+		for (CatalogItem descriptor : installableConnectors) {
+			URI uri = new URL(descriptor.getSiteUrl()).toURI();
+			if (repositoryLocations.add(uri)) {
+				checkCancelled(monitor);
+				repositoryTracker.addRepository(uri, null, session);
+				// ProvisioningUtil.addMetaDataRepository(url.toURI(), true);
+				// ProvisioningUtil.addArtifactRepository(url.toURI(), true);
+				// ProvisioningUtil.setColocatedRepositoryEnablement(url.toURI(),
+				// true);
+			}
+			monitor.worked(1);
+		}
+
+		// fetch meta-data for these repositories
+		ArrayList<IMetadataRepository> repositories = new ArrayList<IMetadataRepository>();
+		monitor.setWorkRemaining(repositories.size());
+		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) session
+				.getProvisioningAgent().getService(
+						IMetadataRepositoryManager.SERVICE_NAME);
+		for (URI uri : repositoryLocations) {
+			checkCancelled(monitor);
+			IMetadataRepository repository = manager.loadRepository(uri,
+					monitor.newChild(1));
+			repositories.add(repository);
+		}
+		return repositories;
+	}
+
+	private Set<String> getDescriptorIds(final IMetadataRepository repository)
+			throws URISyntaxException {
+		final Set<String> installableUnitIdsThisRepository = new HashSet<String>();
+		// determine all installable units for this repository
+		for (CatalogItem descriptor : installableConnectors) {
+			try {
+				if (repository.getLocation().equals(
+						new URL(descriptor.getSiteUrl()).toURI())) {
+					installableUnitIdsThisRepository.addAll(descriptor
+							.getInstallableUnits());
+				}
+			} catch (MalformedURLException e) {
+				// will never happen, ignore
+			}
+		}
+		return installableUnitIdsThisRepository;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMDiscoveryInstallOperation.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMIUDetailsGroup.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMIUDetailsGroup.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMIUDetailsGroup.java	(revision 122)
@@ -0,0 +1,146 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.actions.PropertyDialogAction;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ILayoutConstants;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUDetailsGroup;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.resource.JFaceResources;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.window.SameShellProvider;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.browser.Browser;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.FontMetrics;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Widget;
+
+/***
+ * Copy of IUDetailsGroup, a Browser object is used instead of a Text for the detailsArea
+ * 
+ * @author nkredens
+ *
+ */
+public class TXMIUDetailsGroup extends IUDetailsGroup {
+	private static final String LINKACTION = "linkAction"; //$NON-NLS-1$
+
+	private GridLayout layout;
+	private Browser detailsArea;
+	private GridData gd;
+	private Link propLink;
+	private ISelectionProvider selectionProvider;
+	private int widthHint;
+	private boolean scrollable;
+	private String lastText;
+
+	public TXMIUDetailsGroup(SashForm parent, ISelectionProvider selectionProvider, int widthHint, boolean scrollable) {
+		super(parent, selectionProvider, widthHint, scrollable);
+		/*
+		 * Remove the child made by the superclass, 
+		 * this is the only way to proceed since everything is private
+		 */
+		Control[] childs = parent.getChildren();
+		Control last = childs[childs.length -1];
+		last.dispose();
+		
+		this.selectionProvider = selectionProvider;
+		this.widthHint = widthHint;
+		this.scrollable = scrollable;
+		createGroupComposite(parent);
+	}
+
+	/**
+	 * Creates the group composite that holds the details area
+	 * @param parent The parent composite
+	 */
+	void createGroupComposite(Composite parent) {
+		Group detailsComposite = new Group(parent, SWT.NONE);
+		GC gc = new GC(parent);
+		gc.setFont(JFaceResources.getDialogFont());
+		FontMetrics fontMetrics = gc.getFontMetrics();
+		gc.dispose();
+
+		detailsComposite.setText(ProvUIMessages.ProfileModificationWizardPage_DetailsLabel);
+		layout = new GridLayout();
+		layout.marginWidth = 0;
+		layout.marginHeight = 0;
+		detailsComposite.setLayout(layout);
+		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+		detailsComposite.setLayoutData(gd);
+
+		gd = new GridData(SWT.FILL, SWT.FILL, true, true);
+		gd.verticalIndent = Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_SPACING);
+		gd.heightHint = Dialog.convertHeightInCharsToPixels(fontMetrics, ILayoutConstants.DEFAULT_DESCRIPTION_HEIGHT);
+		gd.minimumHeight = Dialog.convertHeightInCharsToPixels(fontMetrics, ILayoutConstants.MINIMUM_DESCRIPTION_HEIGHT);
+		gd.widthHint = widthHint;
+		if (scrollable)
+			detailsArea = new Browser(detailsComposite, SWT.WRAP | SWT.READ_ONLY | SWT.V_SCROLL);
+		else
+			detailsArea = new Browser(detailsComposite, SWT.WRAP | SWT.READ_ONLY);
+		detailsArea.setLayoutData(gd);
+
+		gd = new GridData(SWT.END, SWT.BOTTOM, true, false);
+		gd.horizontalIndent = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.HORIZONTAL_MARGIN);
+		propLink = createLink(detailsComposite, new PropertyDialogAction(new SameShellProvider(parent.getShell()), selectionProvider), ProvUIMessages.AvailableIUsPage_GotoProperties);
+		propLink.setLayoutData(gd);
+
+		// set the initial state based on selection
+		propLink.setVisible(!selectionProvider.getSelection().isEmpty());
+
+	}
+
+	/**
+	 * Set the detail text
+	 */
+	public void setDetailText(String text) {
+		// If the string is the same but the user has scrolled, the text
+		// widget will reset the selection.  This makes it look like the text
+		// has changed when it hasn't.  For this reason, we check equality first.
+		if (lastText == null || !lastText.equals(text))
+			detailsArea.setText(text);
+		lastText = text;
+	}
+
+	/**
+	 * Toggles the property link for the details area.
+	 */
+	public void enablePropertyLink(boolean enable) {
+		propLink.setVisible(enable);
+	}
+
+	private Link createLink(Composite parent, IAction action, String text) {
+		Link link = new Link(parent, SWT.PUSH);
+		link.setText(text);
+
+		link.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				IAction linkAction = getLinkAction(event.widget);
+				if (linkAction != null) {
+					linkAction.runWithEvent(event);
+				}
+			}
+		});
+		link.setToolTipText(action.getToolTipText());
+		link.setData(LINKACTION, action);
+		return link;
+	}
+
+	IAction getLinkAction(Widget widget) {
+		Object data = widget.getData(LINKACTION);
+		if (data == null || !(data instanceof IAction)) {
+			return null;
+		}
+		return (IAction) data;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMIUDetailsGroup.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMUpdateHandler.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMUpdateHandler.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMUpdateHandler.java	(revision 122)
@@ -0,0 +1,535 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Arrays;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.equinox.internal.p2.ui.sdk.ProvSDKMessages;
+import org.eclipse.equinox.internal.p2.ui.sdk.UpdateHandler;
+import org.eclipse.equinox.p2.core.IProvisioningAgent;
+import org.eclipse.equinox.p2.core.ProvisionException;
+import org.eclipse.equinox.p2.engine.IProfileRegistry;
+import org.eclipse.equinox.p2.operations.ProfileChangeOperation;
+import org.eclipse.equinox.p2.operations.ProvisioningJob;
+import org.eclipse.equinox.p2.operations.RemediationOperation;
+import org.eclipse.equinox.p2.operations.RemedyConfig;
+import org.eclipse.equinox.p2.operations.RepositoryTracker;
+import org.eclipse.equinox.p2.operations.UpdateOperation;
+import org.eclipse.equinox.p2.repository.artifact.IArtifactRepositoryManager;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
+import org.eclipse.equinox.p2.ui.LoadMetadataRepositoryJob;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.statushandlers.StatusManager;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.utils.GZip;
+import org.txm.utils.logger.Log;
+
+public class TXMUpdateHandler extends UpdateHandler {
+
+	public static final String UPDATESITE = "http://textometrie.ens-lyon.fr/dist"; // ->http://txm.sourceforge.net/updates
+	//public static final String UPDATESITE = "http://txm.textometrie.org/updates"; // ->http://txm.sourceforge.net/updates 
+	//public static final String UPDATESITE = "http://txm.sourceforge.net/updates";
+	//public static final String UPDATESITE = "http://txm.ish-lyon.cnrs.fr/updates";
+	//public static final String UPDATESITE = "file:"+System.getProperty("user.home")+"/TEMP/updates";
+	public static final String ID = "org.txm.rcpapplication.p2.plugins.TXMUpdateHandler";
+	
+	/**
+	 * Execute the command.
+	 */
+	public Object execute(ExecutionEvent event) {
+
+		
+		// Look for a profile.  We may not immediately need it in the
+		// handler, but if we don't have one, whatever we are trying to do
+		// will ultimately fail in a more subtle/low-level way.  So determine
+		// up front if the system is configured properly.
+		try {
+			String profileId = getProvisioningUI().getProfileId();
+			IProvisioningAgent agent = getProvisioningUI().getSession().getProvisioningAgent();
+
+			if (agent != null) {
+				IProfileRegistry registry = (IProfileRegistry) agent.getService(IProfileRegistry.SERVICE_NAME);
+				if (registry != null) {
+					registry.getProfile(profileId);
+				}
+			}
+
+//			if (!patchGZProfile()) {
+//				System.out.println("TXM failed to prepare update profile. Aborting update.");
+//				return null;
+//			}
+
+			// this is the default repository
+			URL baseURL = new URL(UPDATESITE+"/index.html");
+			try {
+				InputStream s = baseURL.openStream();
+				s.close();
+			} catch(Exception e) {
+				System.out.println("Update site is not reachable: "+UPDATESITE+", aborting.");
+				return false;
+			}
+			
+			addDefaultUpdateSites(agent);
+			addDefaultPluginSites(agent);
+
+			// add alpha and beta repos if needed
+			// from bundle org.eclipse.equinox.p2.console
+
+//			Log.warning("Test if install directory rights are correct: read&write");
+//			File aboutFile = new File(TxmPreferences.get(Toolbox.INSTALL_DIR), "TXM");
+//			
+//			if (!(aboutFile.canRead() && aboutFile.canWrite()) ) {
+//				MessageDialog.open(MessageDialog.ERROR, Display.getCurrent().getActiveShell(), "Update error", "The update could not be done. The TXM installed file rights are not correct (read and write)", 0);
+//				System.out.println("Details: "+aboutFile.getAbsolutePath() +" exists "+aboutFile.exists()+" can be read "+aboutFile.canRead()+" can be writen "+aboutFile.canWrite());
+//			} else {
+				Log.warning("Looking for TXM updates...");
+				super.execute(event);
+//			}
+		} catch(Exception e) {
+			System.out.println("Could not update TXM: "+e);
+			Log.printStackTrace(e);
+		}
+		return null;
+	}
+	
+	/**
+	 * Return a shell appropriate for parenting dialogs of this handler.
+	 * @return a Shell
+	 */
+	protected Shell getShell() {
+		//System.out.println("MY GETSHELL: "+Display.getCurrent().getActiveShell());
+		return new Shell();
+	}
+
+	public static boolean patchGZProfile() {
+		//TODO: is this still useful with TXM 0.7.7 ? 
+		String path = System.getProperty("osgi.instance.area"); //$NON-NLS-1$
+		URL location = null;
+		try {
+			location = new URL(path); //$NON-NLS-1$
+		} catch (MalformedURLException e) {
+			Log.severe(NLS.bind(Messages.LanguageSwitchHandler_5, location));
+			return false;
+		}
+
+		File txmConfigDir = new File(location.getFile());
+		//File txmConfigDir = new File("/home/mdecorde/.txm"); // test only
+		File profileDir = new File(txmConfigDir, "p2/org.eclipse.equinox.p2.engine/profileRegistry/profile.profile");
+
+		Log.info("Looking for profile in : "+txmConfigDir);
+		//System.out.println(txmConfigDir);
+		//System.out.println(profileDir);
+
+		if (!profileDir.exists()) {
+			Log.severe("p2 profile directory does not exists: "+profileDir);
+			return false;
+		}
+
+		//1- find profile.gz
+		File gzFile = findNewestGZFile(profileDir);
+		if (gzFile == null) {
+			Log.severe("No profile GZ file found");
+			return false;
+		} else {
+			try {
+				//2- extract profil from gz profile
+				File profileXMLFile = GZip.uncompress(gzFile, profileDir);
+				//3- patch xml by removing lock properties
+				patchProfile(profileXMLFile);
+				//4- delete old gz profile
+				if (!gzFile.delete()) {
+					Log.severe("Could not delete old profile GZfile: "+gzFile);
+					return false;
+				}
+
+				//File lockFile = new File(profileDir, ".lock");
+				//System.out.println("Delete .lock file: "+lockFile+" "+lockFile.delete());
+
+				//5- compress new profile
+				GZip.compress(profileXMLFile, gzFile);
+				//6- clean files
+				if (!profileXMLFile.delete()) {
+					Log.severe("Could not delete temporary profile XML file: "+profileXMLFile);
+					return false;
+				}
+				Log.info("Profile archive patched: "+gzFile);
+				return true;
+			} catch (IOException e) {
+				Log.severe("Failed to fix profile file: "+e);
+				Log.printStackTrace(e);
+				return false;
+			}
+		}
+	}
+
+	public static void addDefaultUpdateSites(IProvisioningAgent agent) {
+		String uriDefault = UPDATESITE+"/main/stable";
+		try {
+			URI repoUriDefault = new URI(uriDefault);
+			addURL(agent, repoUriDefault);
+			//URI repoKepler = new URI("http://download.eclipse.org/releases/kepler");
+			//addURL(agent, repoKepler);			
+		} catch( Exception e ) {
+			Log.severe("Could not add update default repository: " + uriDefault);
+			Log.printStackTrace(e);
+		}
+		
+		String updateLevel = TxmPreferences.getString(AdvancePreferencePage.UPDATE_LEVEL, "STABLE"); //$NON-NLS-1$
+		boolean alphaMode = false;
+		boolean betaMode = false;
+		boolean devMode = false;
+		if ("DEV".equals(updateLevel)) {//$NON-NLS-1$
+			devMode = alphaMode = betaMode = true;
+		} else if ("ALPHA".equals(updateLevel)) {//$NON-NLS-1$
+			alphaMode = betaMode = true;
+		} else if ("BETA".equals(updateLevel)) {//$NON-NLS-1$
+			betaMode = true;
+		}
+		Log.info("Update levels: dev="+devMode+" alpha="+alphaMode+" beta="+betaMode);
+
+		String uriDev = UPDATESITE+"/main/dev";//$NON-NLS-1$
+		try {
+			URI repoUriDev = new URI(uriDev);
+			if (devMode) {
+				addURL(agent, repoUriDev);
+			} else {
+				removeURL(agent, repoUriDev);
+			}
+		} catch( Exception e ) {
+			Log.severe("Could not add update DEV repository: " + uriDev);
+			e.printStackTrace();
+		}
+		
+		String uriAlpha = UPDATESITE+"/main/alpha";//$NON-NLS-1$
+		try {
+			URI repoUriAlpha = new URI(uriAlpha);
+			if (alphaMode) {
+				addURL(agent, repoUriAlpha);
+			} else {
+				removeURL(agent, repoUriAlpha);
+			}
+		} catch( Exception e ) {
+			Log.severe("Could not add update ALPHA repository: " + uriAlpha);
+			e.printStackTrace();
+		}
+
+		String uriBeta = UPDATESITE+"/main/beta";//$NON-NLS-1$
+		try {
+			URI repoUriBeta = new URI(uriBeta);
+			if (betaMode) {
+				addURL(agent, repoUriBeta);
+			} else {
+				removeURL(agent, repoUriBeta);
+			}
+		} catch( Exception e ) {
+			Log.severe("Can not add update BETA repository: " + uriBeta);
+		}
+	}
+	
+	public static void addDefaultPluginSites(IProvisioningAgent agent) {
+		String uriDefault = UPDATESITE+"/ext/stable";
+		try {
+			URI repoUriDefault = new URI(uriDefault);
+			addURL(agent, repoUriDefault);
+			//URI repoKepler = new URI("http://download.eclipse.org/releases/kepler");
+			//addURL(agent, repoKepler);			
+		} catch( Exception e ) {
+			Log.severe("Could not add update default repository: " + uriDefault);
+			Log.printStackTrace(e);
+		}
+		
+		String updateLevel = TxmPreferences.getString(AdvancePreferencePage.UPDATE_LEVEL, "STABLE"); //$NON-NLS-1$
+		boolean alphaMode = false;
+		boolean betaMode = false;
+		boolean devMode = false;
+		if ("DEV".equals(updateLevel)) {//$NON-NLS-1$
+			devMode = alphaMode = betaMode = true;
+		} else if ("ALPHA".equals(updateLevel)) {//$NON-NLS-1$
+			alphaMode = betaMode = true;
+		} else if ("BETA".equals(updateLevel)) {//$NON-NLS-1$
+			betaMode = true;
+		}
+		Log.info("Update levels: dev="+devMode+" alpha="+alphaMode+" beta="+betaMode);
+
+		String uriDev = UPDATESITE+"/ext/dev";//$NON-NLS-1$
+		try {
+			URI repoUriDev = new URI(uriDev);
+			if (devMode) {
+				addURL(agent, repoUriDev);
+			} else {
+				removeURL(agent, repoUriDev);
+			}
+		} catch( Exception e ) {
+			Log.severe("Could not add update DEV repository: " + uriDev);
+			e.printStackTrace();
+		}
+		
+		String uriAlpha = UPDATESITE+"/ext/alpha";//$NON-NLS-1$
+		try {
+			URI repoUriAlpha = new URI(uriAlpha);
+			if (alphaMode) {
+				addURL(agent, repoUriAlpha);
+			} else {
+				removeURL(agent, repoUriAlpha);
+			}
+		} catch( Exception e ) {
+			Log.severe("Could not add update ALPHA repository: " + uriAlpha);
+			e.printStackTrace();
+		}
+
+		String uriBeta = UPDATESITE+"/ext/beta";//$NON-NLS-1$
+		try {
+			URI repoUriBeta = new URI(uriBeta);
+			if (betaMode) {
+				addURL(agent, repoUriBeta);
+			} else {
+				removeURL(agent, repoUriBeta);
+			}
+		} catch( Exception e ) {
+			Log.severe("Can not add update BETA repository: " + uriBeta);
+		}
+
+	}
+
+	public static boolean addURL(IProvisioningAgent agent, URI location) {
+		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) agent.getService(IMetadataRepositoryManager.SERVICE_NAME);
+		IArtifactRepositoryManager manager2 = (IArtifactRepositoryManager) agent.getService(IArtifactRepositoryManager.SERVICE_NAME);
+
+		if (manager == null) {
+			System.out.println("No metadata repository manager found");
+			return false;
+		}
+		if (manager2 == null) {
+			System.out.println("No artifact repository manager found");
+			return false;
+		}
+
+		try {
+			//manager.removeRepository(location)
+			manager.loadRepository(location, null);
+		} catch (Exception e) {
+			System.out.println("No repo - create a newmetadata repo");
+			// for convenience create and add a repository here
+			String repositoryName = location + " - metadata";
+			try {
+				manager.createRepository(location, repositoryName, IMetadataRepositoryManager.TYPE_SIMPLE_REPOSITORY, null);
+			} catch (ProvisionException e2) {
+				System.out.println("Error while adding metadata repo: "+location);
+				Log.printStackTrace(e);
+				return false;
+			}
+		}
+
+		try {
+			//manager.removeRepository(location)
+			manager2.loadRepository(location, null);
+			return true;
+		} catch (Exception e) {
+			// could not load a repo at that location so create one as a convenience
+			String repositoryName = location + " - artifacts";
+			try {
+				System.out.println("No repo - create a new artifact repo");
+				manager.createRepository(location, repositoryName, IArtifactRepositoryManager.TYPE_SIMPLE_REPOSITORY, null);
+				return true;
+			} catch (Exception e2) {
+				System.out.println("Error while adding artifact repo: "+location);
+				Log.printStackTrace(e);
+				return false;
+			}
+		}
+	}
+
+	public static boolean removeURL(IProvisioningAgent agent, URI location) {
+		IMetadataRepositoryManager manager = (IMetadataRepositoryManager) agent.getService(IMetadataRepositoryManager.SERVICE_NAME);
+		IArtifactRepositoryManager manager2 = (IArtifactRepositoryManager) agent.getService(IArtifactRepositoryManager.SERVICE_NAME);
+
+		if (manager == null) {
+			System.out.println("No metadata repository manager found");
+			return false;
+		}
+		if (manager2 == null) {
+			System.out.println("No artifact repository manager found");
+			return false;
+		}
+
+		manager.removeRepository(location);
+		manager2.removeRepository(location);
+
+		return true;
+	}
+
+	private static void patchProfile(File profileXMLFile) throws IOException {
+
+		File tmpFile = File.createTempFile("tmp", ".profile", profileXMLFile.getParentFile());
+
+		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(profileXMLFile), "UTF-8"));
+		BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(tmpFile), "UTF-8"));
+
+		String line = br.readLine();
+		boolean firstLine = true;
+		while (line != null) {
+			if (!firstLine) {
+				writer.write("\n");
+			}
+
+			String trimedLine = line.trim();
+			if (trimedLine.startsWith("<property name='org.eclipse.equinox.p2.type.lock' value='")) {
+				writer.write("<property name='org.eclipse.equinox.p2.type.lock' value='0'/>");
+			} else {
+				writer.write(line);
+			}
+			firstLine= false;
+			line = br.readLine();
+		}
+		writer.close();
+		br.close();
+
+		if (!(profileXMLFile.delete() && tmpFile.renameTo(profileXMLFile))) {
+			throw new IOException("failed to rewrite profile file: "+profileXMLFile);
+		}
+	}
+
+	private static File findNewestGZFile(File profileDir) {
+		File[] files = profileDir.listFiles(new FilenameFilter() {
+			@Override
+			public boolean accept(File dir, String name) {
+				return name.toLowerCase().endsWith(".gz");
+			}
+		});
+
+		if (files == null || files.length == 0) return null;
+
+		Arrays.sort(files);
+		return files[files.length-1];
+	}
+	
+	// COPY FROM UpdateHandler class
+	boolean hasNoRepos = false;
+	UpdateOperation operation;
+
+	@Override
+	protected void doExecute(LoadMetadataRepositoryJob job) {
+		//System.out.println("TXMUpdateHandler: doExecute(...)");
+		if (hasNoRepos) {
+			if (getProvisioningUI().getPolicy().getRepositoriesVisible()) {
+				System.out.println(ProvSDKMessages.UpdateHandler_NoSitesMessage);
+			}
+			return;
+		}
+		// Report any missing repositories.
+		job.reportAccumulatedStatus();
+		if (continueWorkingWithOperation(operation, getShell())) {
+			if (operation.getResolutionResult() == Status.OK_STATUS) {
+				getProvisioningUI().openUpdateWizard(false, operation, job);
+			} else {
+
+				final RemediationOperation remediationOperation = new RemediationOperation(getProvisioningUI().getSession(), operation.getProfileChangeRequest(), RemedyConfig.getCheckForUpdateRemedyConfigs());
+				ProvisioningJob job2 = new ProvisioningJob(ProvSDKMessages.RemediationOperation_ResolveJobName, getProvisioningUI().getSession()) {
+					@Override
+					public IStatus runModal(IProgressMonitor monitor) {
+						monitor.beginTask(ProvSDKMessages.RemediationOperation_ResolveJobTask, RemedyConfig.getAllRemedyConfigs().length);
+						return remediationOperation.resolveModal(monitor);
+					}
+				};
+				job2.addJobChangeListener(new JobChangeAdapter() {
+					public void done(IJobChangeEvent event) {
+						if (PlatformUI.isWorkbenchRunning()) {
+							PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+								public void run() {
+									getProvisioningUI().openUpdateWizard(true, operation, remediationOperation, null);
+								}
+							});
+						}
+					}
+
+				});
+				getProvisioningUI().schedule(job2, StatusManager.SHOW | StatusManager.LOG);
+			}
+		}
+	}
+	
+	/**
+	 * Answer a boolean indicating whether the caller should continue to work with the
+	 * specified operation.  This method is used when an operation has been resolved, but
+	 * the UI may have further restrictions on continuing with it.
+	 * 
+	 * @param operation the operation in question.  It must already be resolved.
+	 * @param shell the shell to use for any interaction with the user
+	 * @return <code>true</code> if processing of the operation should continue, <code>false</code> if
+	 * not.  It is up to the implementor to report any errors to the user when answering <code>false</code>.
+	 */
+	public boolean continueWorkingWithOperation(ProfileChangeOperation operation, Shell shell) {
+		//System.out.println("Test if any update available");
+		Assert.isTrue(operation.getResolutionResult() != null);
+		IStatus status = operation.getResolutionResult();
+		// user cancelled
+		if (status.getSeverity() == IStatus.CANCEL)
+			return false;
+
+		// Special case those statuses where we would never want to open a wizard
+		if (status.getCode() == UpdateOperation.STATUS_NOTHING_TO_UPDATE) {
+			//ProvUI.reportStatus(status, StatusManager.BLOCK);
+			//System.out.println("No update available.");
+			return false;
+		}
+
+		// there is no plan, so we can't continue.  Report any reason found
+		if (operation.getProvisioningPlan() == null && !status.isOK()) {
+			StatusManager.getManager().handle(status, StatusManager.LOG | StatusManager.SHOW);
+			
+			return false;
+		}
+
+		// Allow the wizard to open otherwise.
+		return true;
+	}
+
+	protected void doPostLoadBackgroundWork(IProgressMonitor monitor) throws OperationCanceledException {
+		operation = getProvisioningUI().getUpdateOperation(null, null);
+		// check for updates
+		IStatus resolveStatus = operation.resolveModal(monitor);
+		if (resolveStatus.getSeverity() == IStatus.CANCEL)
+			throw new OperationCanceledException();
+	}
+
+	protected boolean preloadRepositories() {
+		hasNoRepos = false;
+		RepositoryTracker repoMan = getProvisioningUI().getRepositoryTracker();
+		if (repoMan.getKnownRepositories(getProvisioningUI().getSession()).length == 0) {
+			hasNoRepos = true;
+			return false;
+		}
+		return super.preloadRepositories();
+	}
+
+	@Override
+	protected String getProgressTaskName() {
+		return ProvSDKMessages.UpdateHandler_ProgressTaskName;
+	}
+	
+	
+	
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMUpdateHandler.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSelectableIUsPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSelectableIUsPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSelectableIUsPage.java	(revision 122)
@@ -0,0 +1,467 @@
+package org.txm.rcpapplication.p2.plugins;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.internal.p2.ui.ProvUIMessages;
+import org.eclipse.equinox.internal.p2.ui.dialogs.CopyUtils;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ILayoutConstants;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IResolutionErrorReportingPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.IUDetailsGroup;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard;
+import org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionStatusPage;
+import org.eclipse.equinox.internal.p2.ui.dialogs.SelectableIUsPage;
+import org.eclipse.equinox.internal.p2.ui.model.*;
+import org.eclipse.equinox.internal.p2.ui.viewers.*;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.operations.ProfileChangeOperation;
+import org.eclipse.equinox.p2.ui.Policy;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.*;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.layout.*;
+import org.eclipse.swt.widgets.*;
+
+public class TXMSelectableIUsPage extends SelectableIUsPage {
+
+	private static final String DIALOG_SETTINGS_SECTION = "SelectableIUsPage"; //$NON-NLS-1$
+
+	IUElementListRoot root;
+	Object[] initialSelections;
+	ProfileChangeOperation resolvedOperation;
+	CheckboxTableViewer tableViewer;
+	IUDetailsGroup iuDetailsGroup;
+	ProvElementContentProvider contentProvider;
+	IUDetailsLabelProvider labelProvider;
+	protected Display display;
+	protected Policy policy;
+	SashForm sashForm;
+
+	public TXMSelectableIUsPage(ProvisioningUI ui, ProvisioningOperationWizard wizard, IUElementListRoot root, Object[] initialSelections) {
+		super(ui, wizard, root, initialSelections); //$NON-NLS-1$
+		this.root = root;
+		if (root == null)
+			root = new IUElementListRoot();
+		if (initialSelections == null)
+			this.initialSelections = new IInstallableUnit[0];
+		else
+			this.initialSelections = initialSelections;
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createControl(Composite parent) {
+		display = parent.getDisplay();
+		sashForm = new SashForm(parent, SWT.VERTICAL);
+		FillLayout layout = new FillLayout();
+		sashForm.setLayout(layout);
+		GridData data = new GridData(GridData.FILL_BOTH);
+		sashForm.setLayoutData(data);
+		initializeDialogUnits(sashForm);
+
+		Composite composite = new Composite(sashForm, SWT.NONE);
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.marginWidth = 0;
+		gridLayout.marginHeight = 0;
+		composite.setLayout(gridLayout);
+
+		tableViewer = createTableViewer(composite);
+		data = new GridData(GridData.FILL_BOTH);
+		data.heightHint = convertHeightInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_HEIGHT);
+		data.widthHint = convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH);
+		Table table = tableViewer.getTable();
+		table.setLayoutData(data);
+		table.setHeaderVisible(true);
+		activateCopy(table);
+		IUColumnConfig[] columns = getColumnConfig();
+		for (int i = 0; i < columns.length; i++) {
+			TableColumn tc = new TableColumn(table, SWT.LEFT, i);
+			tc.setResizable(true);
+			tc.setText(columns[i].getColumnTitle());
+			tc.setWidth(columns[i].getWidthInPixels(table));
+		}
+
+		tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			void setDetailText(ProfileChangeOperation resolvedOperation) {
+				String detail = null;
+				Object selectedElement = getSelectedElement();
+				IInstallableUnit selectedIU = ElementUtils.elementToIU(selectedElement);
+				IUDetailsGroup detailsGroup = getDetailsGroup();
+
+				// We either haven't resolved, or we failed to resolve and reported some error
+				// while doing so.  
+				if (resolvedOperation == null || !resolvedOperation.hasResolved() || getProvisioningWizard().statusOverridesOperation()) {
+					// See if the wizard status knows something more about it.
+					IStatus currentStatus = getProvisioningWizard().getCurrentStatus();
+					if (!currentStatus.isOK()) {
+						detail = currentStatus.getMessage();
+						detailsGroup.enablePropertyLink(false);
+					} else if (selectedIU != null) {
+						detail = getIUDescription(selectedElement);
+						detailsGroup.enablePropertyLink(true);
+					} else {
+						detail = ""; //$NON-NLS-1$
+						detailsGroup.enablePropertyLink(false);
+					}
+					detailsGroup.setDetailText(detail);
+					return;
+				}
+
+				// An IU is selected and we have resolved.  Look for information about the specific IU.
+				if (selectedIU != null) {
+					detail = resolvedOperation.getResolutionDetails(selectedIU);
+					if (detail != null) {
+						detailsGroup.enablePropertyLink(false);
+						detailsGroup.setDetailText(detail);
+						return;
+					}
+					// No specific error about this IU.  Show the overall error if it is in error.
+					if (resolvedOperation.getResolutionResult().getSeverity() == IStatus.ERROR) {
+						detail = resolvedOperation.getResolutionDetails();
+						if (detail != null) {
+							detailsGroup.enablePropertyLink(false);
+							detailsGroup.setDetailText(detail);
+							return;
+						}
+					}
+
+					// The overall status is not an error, or else there was no explanatory text for an error.
+					// We may as well just show info about this iu.
+					detailsGroup.enablePropertyLink(true);
+					detailsGroup.setDetailText(getIUDescription(selectedElement));
+					return;
+				}
+
+				//No IU is selected, give the overall report
+				detail = resolvedOperation.getResolutionDetails();
+				detailsGroup.enablePropertyLink(false);
+				if (detail == null)
+					detail = ""; //$NON-NLS-1$
+				detailsGroup.setDetailText(detail);
+			}
+			private Object getSelectedElement() {
+				Object[] elements = getSelectedElements();
+				if (elements.length == 0)
+					return null;
+				return elements[0];
+			}
+			
+			public void selectionChanged(SelectionChangedEvent event) {
+				setDetailText(resolvedOperation);
+			}
+		});
+		
+		tableViewer.addCheckStateListener(new ICheckStateListener() {
+			void setDetailText(ProfileChangeOperation resolvedOperation) {
+				String detail = null;
+				Object selectedElement = getSelectedElement();
+				IInstallableUnit selectedIU = ElementUtils.elementToIU(selectedElement);
+				IUDetailsGroup detailsGroup = getDetailsGroup();
+
+				// We either haven't resolved, or we failed to resolve and reported some error
+				// while doing so.  
+				if (resolvedOperation == null || !resolvedOperation.hasResolved() || getProvisioningWizard().statusOverridesOperation()) {
+					// See if the wizard status knows something more about it.
+					IStatus currentStatus = getProvisioningWizard().getCurrentStatus();
+					if (!currentStatus.isOK()) {
+						detail = currentStatus.getMessage();
+						detailsGroup.enablePropertyLink(false);
+					} else if (selectedIU != null) {
+						detail = getIUDescription(selectedElement);
+						detailsGroup.enablePropertyLink(true);
+					} else {
+						detail = ""; //$NON-NLS-1$
+						detailsGroup.enablePropertyLink(false);
+					}
+					detailsGroup.setDetailText(detail);
+					return;
+				}
+
+				// An IU is selected and we have resolved.  Look for information about the specific IU.
+				if (selectedIU != null) {
+					detail = resolvedOperation.getResolutionDetails(selectedIU);
+					if (detail != null) {
+						detailsGroup.enablePropertyLink(false);
+						detailsGroup.setDetailText(detail);
+						return;
+					}
+					// No specific error about this IU.  Show the overall error if it is in error.
+					if (resolvedOperation.getResolutionResult().getSeverity() == IStatus.ERROR) {
+						detail = resolvedOperation.getResolutionDetails();
+						if (detail != null) {
+							detailsGroup.enablePropertyLink(false);
+							detailsGroup.setDetailText(detail);
+							return;
+						}
+					}
+
+					// The overall status is not an error, or else there was no explanatory text for an error.
+					// We may as well just show info about this iu.
+					detailsGroup.enablePropertyLink(true);
+					detailsGroup.setDetailText(getIUDescription(selectedElement));
+					return;
+				}
+
+				//No IU is selected, give the overall report
+				detail = resolvedOperation.getResolutionDetails();
+				detailsGroup.enablePropertyLink(false);
+				if (detail == null)
+					detail = ""; //$NON-NLS-1$
+				detailsGroup.setDetailText(detail);
+			}
+			private Object getSelectedElement() {
+				Object[] elements = getSelectedElements();
+				if (elements.length == 0)
+					return null;
+				return elements[0];
+			}
+				
+			public void checkStateChanged(CheckStateChangedEvent event) {
+				// If the checkEvent is on a locked update element, uncheck it and select it.
+				if (event.getElement() instanceof AvailableUpdateElement) {
+					AvailableUpdateElement checkedElement = (AvailableUpdateElement) event.getElement();
+					if (checkedElement.isLockedForUpdate()) {
+						event.getCheckable().setChecked(checkedElement, false);
+						// Select the element so that the locked description is displayed
+						CheckboxTableViewer viewer = ((CheckboxTableViewer) event.getSource());
+						int itemCount = viewer.getTable().getItemCount();
+						for (int i = 0; i < itemCount; i++) {
+							if (viewer.getElementAt(i).equals(checkedElement)) {
+								viewer.getTable().deselectAll();
+								viewer.getTable().select(i);
+								setDetailText(resolvedOperation);
+								break;
+							}
+						}
+					}
+				}
+				updateSelection();
+			}
+		});
+
+		// Filters and sorters before establishing content, so we don't refresh unnecessarily.
+		IUComparator comparator = new IUComparator(IUComparator.IU_NAME);
+		comparator.useColumnConfig(ProvUI.getIUColumnConfig());
+		tableViewer.setComparator(comparator);
+		tableViewer.setComparer(new ProvElementComparer());
+
+		contentProvider = new ProvElementContentProvider();
+		tableViewer.setContentProvider(contentProvider);
+		labelProvider = new IUDetailsLabelProvider(null, ProvUI.getIUColumnConfig(), getShell());
+		tableViewer.setLabelProvider(labelProvider);
+		tableViewer.setInput(root);
+		setInitialCheckState();
+
+		// Select and Deselect All buttons
+		createSelectButtons(composite);
+
+		// Controls for filtering/presentation/site selection
+		Composite controlsComposite = new Composite(composite, SWT.NONE);
+		gridLayout = new GridLayout();
+		gridLayout.marginWidth = 0;
+		gridLayout.marginHeight = 0;
+		gridLayout.numColumns = 2;
+		gridLayout.makeColumnsEqualWidth = true;
+		gridLayout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+		controlsComposite.setLayout(layout);
+		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
+		controlsComposite.setLayoutData(gd);
+
+		// The text area shows a description of the selected IU, or error detail if applicable.
+		iuDetailsGroup = new TXMIUDetailsGroup(sashForm, tableViewer, convertWidthInCharsToPixels(ILayoutConstants.DEFAULT_TABLE_WIDTH), true);
+
+		updateStatus(root, resolvedOperation);
+		setControl(sashForm);
+		sashForm.setWeights(getSashWeights());
+		Dialog.applyDialogFont(sashForm);
+	}
+
+	private void createSelectButtons(Composite parent) {
+		Composite buttonParent = new Composite(parent, SWT.NONE);
+		GridLayout gridLayout = new GridLayout();
+		gridLayout.numColumns = 3;
+		gridLayout.marginWidth = 0;
+		gridLayout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
+		buttonParent.setLayout(gridLayout);
+		GridData data = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
+		buttonParent.setLayoutData(data);
+
+		Button selectAll = new Button(buttonParent, SWT.PUSH);
+		selectAll.setText(ProvUIMessages.SelectableIUsPage_Select_All);
+		setButtonLayoutData(selectAll);
+		selectAll.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				tableViewer.setAllChecked(true);
+				updateSelection();
+			}
+		});
+
+		Button deselectAll = new Button(buttonParent, SWT.PUSH);
+		deselectAll.setText(ProvUIMessages.SelectableIUsPage_Deselect_All);
+		setButtonLayoutData(deselectAll);
+		deselectAll.addListener(SWT.Selection, new Listener() {
+			public void handleEvent(Event event) {
+				tableViewer.setAllChecked(false);
+				updateSelection();
+			}
+		});
+
+		// dummy to take extra space
+		Label dummy = new Label(buttonParent, SWT.NONE);
+		data = new GridData(SWT.FILL, SWT.FILL, true, true);
+		dummy.setLayoutData(data);
+
+		// separator underneath
+		Label sep = new Label(buttonParent, SWT.HORIZONTAL | SWT.SEPARATOR);
+		data = new GridData(SWT.FILL, SWT.DEFAULT, true, false);
+		data.horizontalSpan = 3;
+		sep.setLayoutData(data);
+	}
+
+	protected CheckboxTableViewer createTableViewer(Composite parent) {
+		// The viewer allows selection of IU's for browsing the details,
+		// and checking to include in the provisioning operation.
+		CheckboxTableViewer v = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
+		return v;
+	}
+
+	public Object[] getCheckedIUElements() {
+		if (tableViewer == null)
+			return initialSelections;
+		return tableViewer.getCheckedElements();
+	}
+
+	public Object[] getSelectedIUElements() {
+		return ((IStructuredSelection) tableViewer.getSelection()).toArray();
+	}
+
+	protected Object[] getSelectedElements() {
+		return ((IStructuredSelection) tableViewer.getSelection()).toArray();
+	}
+
+	protected IInstallableUnit[] elementsToIUs(Object[] elements) {
+		IInstallableUnit[] theIUs = new IInstallableUnit[elements.length];
+		for (int i = 0; i < elements.length; i++) {
+			theIUs[i] = ProvUI.getAdapter(elements[i], IInstallableUnit.class);
+		}
+		return theIUs;
+	}
+
+	protected void setInitialCheckState() {
+		if (initialSelections == null) {
+			return;
+		}
+
+		ArrayList<Object> selections = new ArrayList<Object>(initialSelections.length);
+
+		for (int i = 0; i < initialSelections.length; i++) {
+			if (initialSelections[i] instanceof AvailableUpdateElement) {
+				AvailableUpdateElement element = (AvailableUpdateElement) initialSelections[i];
+				if (element.isLockedForUpdate()) {
+					continue;
+				}
+			}
+			selections.add(initialSelections[i]);
+		}
+		tableViewer.setCheckedElements(selections.toArray(new Object[selections.size()]));
+	}
+
+	/*
+	 * Overridden so that we don't call getNextPage().
+	 * We use getNextPage() to start resolving the operation so
+	 * we only want to do that when the next button is pressed.
+	 * 
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
+	 */
+	public boolean canFlipToNextPage() {
+		return isPageComplete();
+	}
+
+	/*
+	 * Overridden to null out any cached page so that the wizard
+	 * is always consulted.  This allows wizards to do things like
+	 * synchronize previous page selections with this page.
+	 * (non-Javadoc)
+	 * @see org.eclipse.jface.wizard.WizardPage#getPreviousPage()
+	 */
+	public IWizardPage getPreviousPage() {
+		setPreviousPage(null);
+		return super.getPreviousPage();
+	}
+
+	protected String getClipboardText(Control control) {
+		StringBuffer buffer = new StringBuffer();
+		Object[] elements = getSelectedElements();
+		for (int i = 0; i < elements.length; i++) {
+			if (i > 0)
+				buffer.append(CopyUtils.NEWLINE);
+			buffer.append(labelProvider.getClipboardText(elements[i], CopyUtils.DELIMITER));
+		}
+		return buffer.toString();
+	}
+
+	protected IInstallableUnit getSelectedIU() {
+		java.util.List<IInstallableUnit> units = ElementUtils.elementsToIUs(getSelectedElements());
+		if (units.size() == 0)
+			return null;
+		return units.get(0);
+	}
+
+	protected IUDetailsGroup getDetailsGroup() {
+		return iuDetailsGroup;
+	}
+
+	protected boolean isCreated() {
+		return tableViewer != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.equinox.internal.p2.ui.dialogs.ResolutionStatusPage#updateCaches(org.eclipse.equinox.internal.p2.ui.model.IUElementListRoot, org.eclipse.equinox.p2.operations.ProfileChangeOperation)
+	 */
+	protected void updateCaches(IUElementListRoot newRoot, ProfileChangeOperation op) {
+		resolvedOperation = op;
+		if (newRoot != null && root != newRoot) {
+			root = newRoot;
+			if (tableViewer != null)
+				tableViewer.setInput(newRoot);
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.equinox.internal.p2.ui.dialogs.ISelectableIUsPage#setCheckedElements(java.lang.Object[])
+	 */
+	public void setCheckedElements(Object[] elements) {
+		if (tableViewer == null)
+			initialSelections = elements;
+		else
+			tableViewer.setCheckedElements(elements);
+	}
+
+	protected SashForm getSashForm() {
+		return sashForm;
+	}
+
+	protected String getDialogSettingsName() {
+		return getWizard().getClass().getName() + "." + DIALOG_SETTINGS_SECTION; //$NON-NLS-1$
+	}
+
+	protected int getColumnWidth(int index) {
+		return tableViewer.getTable().getColumn(index).getWidth();
+	}
+
+	void updateSelection() {
+		setPageComplete(tableViewer.getCheckedElements().length > 0);
+		getProvisioningWizard().operationSelectionsChanged(this);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/p2/plugins/TXMSelectableIUsPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Messages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Messages.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Messages.java	(revision 122)
@@ -0,0 +1,1392 @@
+
+package org.txm.rcpapplication;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.core.messages.TXMMessages;
+
+public class Messages extends NLS {
+	
+	// The Constant BUNDLE_NAME. 
+	private static final String BUNDLE_NAME = "org.txm.rcpapplication.messages"; //$NON-NLS-1$
+
+	public static String About_Menu_Label;
+	public static String AdapterFactory_0;
+	public static String AddBase_1;
+	public static String AddBase_10;
+	public static String AddBase_16;
+	public static String AddBase_17;
+	public static String AddBase_19;
+	public static String AddBase_2;
+	public static String AddBase_20;
+	public static String AddBase_22;
+	public static String AddBase_23;
+	public static String AddBase_24;
+	public static String AddBase_25;
+	public static String AddBase_27;
+	public static String AddBase_28;
+	public static String AddBase_29;
+	public static String AddBase_31;
+	public static String AddBase_32;
+	public static String AddBase_33;
+	public static String AddBase_34;
+	public static String AddBase_4;
+	public static String AddBase_7;
+	public static String AddProject_3;
+	public static String AdvancePreferencePage_0;
+
+	public static String AdvancePreferencePage_1;
+	public static String AdvancePreferencePage_12;
+	public static String AdvancePreferencePage_13;
+	public static String AdvancePreferencePage_14;
+	public static String AdvancePreferencePage_2;
+	public static String AdvancePreferencePage_3;
+	public static String AdvancePreferencePage_4;
+
+	public static String AdvancePreferencePage_6;
+	public static String AnnotationPreferences_0;
+	public static String AnnotationPreferences_1;
+	public static String AnnotationPreferences_2;
+	public static String AdvancePreferencePage_7;
+	
+	public static String ApplicationWorkbenchAdvisor_0;
+	public static String ApplicationWorkbenchAdvisor_1;
+	public static String ApplicationWorkbenchAdvisor_11;
+	public static String ApplicationWorkbenchAdvisor_12;
+	public static String ApplicationWorkbenchAdvisor_13;
+	public static String ApplicationWorkbenchAdvisor_14;
+	public static String ApplicationWorkbenchAdvisor_15;
+	public static String ApplicationWorkbenchAdvisor_16;
+	public static String ApplicationWorkbenchAdvisor_17;
+	public static String ApplicationWorkbenchAdvisor_18;
+	public static String ApplicationWorkbenchAdvisor_19;
+	public static String ApplicationWorkbenchAdvisor_2;
+	public static String ApplicationWorkbenchAdvisor_20;
+	public static String ApplicationWorkbenchAdvisor_21;
+	public static String ApplicationWorkbenchAdvisor_22;
+	public static String ApplicationWorkbenchAdvisor_23;
+	public static String ApplicationWorkbenchAdvisor_24;
+	public static String ApplicationWorkbenchAdvisor_25;
+	public static String ApplicationWorkbenchAdvisor_26;
+	public static String ApplicationWorkbenchAdvisor_27;
+	public static String ApplicationWorkbenchAdvisor_28;
+	public static String ApplicationWorkbenchAdvisor_29;
+	public static String ApplicationWorkbenchAdvisor_3;
+	public static String ApplicationWorkbenchAdvisor_30;
+	public static String ApplicationWorkbenchAdvisor_31;
+	public static String ApplicationWorkbenchAdvisor_32;
+	public static String ApplicationWorkbenchAdvisor_33;
+	public static String ApplicationWorkbenchAdvisor_34;
+	public static String ApplicationWorkbenchAdvisor_35;
+	public static String ApplicationWorkbenchAdvisor_36;
+	public static String ApplicationWorkbenchAdvisor_37;
+	public static String ApplicationWorkbenchAdvisor_38;
+	public static String ApplicationWorkbenchAdvisor_39;
+	public static String ApplicationWorkbenchAdvisor_4;
+	public static String ApplicationWorkbenchAdvisor_40;
+	public static String ApplicationWorkbenchAdvisor_41;
+	public static String ApplicationWorkbenchAdvisor_42;
+	public static String ApplicationWorkbenchAdvisor_43;
+	public static String ApplicationWorkbenchAdvisor_43_single;
+	public static String ApplicationWorkbenchAdvisor_44;
+	public static String ApplicationWorkbenchAdvisor_45;
+	public static String ApplicationWorkbenchAdvisor_46;
+	public static String ApplicationWorkbenchAdvisor_47;
+	public static String ApplicationWorkbenchAdvisor_48;
+	public static String ApplicationWorkbenchAdvisor_49;
+	public static String ApplicationWorkbenchAdvisor_5;
+	public static String ApplicationWorkbenchAdvisor_51;
+	public static String ApplicationWorkbenchAdvisor_52;
+	public static String ApplicationWorkbenchAdvisor_53;
+	public static String ApplicationWorkbenchAdvisor_54;
+	public static String ApplicationWorkbenchAdvisor_55;
+	public static String ApplicationWorkbenchAdvisor_56;
+	public static String ApplicationWorkbenchAdvisor_57;
+	public static String ApplicationWorkbenchAdvisor_58;
+	public static String ApplicationWorkbenchAdvisor_59;
+	public static String ApplicationWorkbenchAdvisor_6;
+	public static String ApplicationWorkbenchAdvisor_60;
+	public static String ApplicationWorkbenchAdvisor_61;
+	public static String ApplicationWorkbenchAdvisor_63;
+	public static String ApplicationWorkbenchAdvisor_64;
+	public static String ApplicationWorkbenchAdvisor_65;
+	public static String ApplicationWorkbenchAdvisor_66;
+	public static String ApplicationWorkbenchAdvisor_67;
+	public static String ApplicationWorkbenchAdvisor_68;
+	public static String ApplicationWorkbenchAdvisor_69;
+	public static String ApplicationWorkbenchAdvisor_7;
+	public static String ApplicationWorkbenchAdvisor_71;
+	public static String ApplicationWorkbenchAdvisor_72;
+	public static String ApplicationWorkbenchAdvisor_73;
+	public static String ApplicationWorkbenchAdvisor_74;
+	public static String ApplicationWorkbenchAdvisor_75;
+	public static String ApplicationWorkbenchAdvisor_76;
+	public static String ApplicationWorkbenchAdvisor_77;
+	public static String ApplicationWorkbenchAdvisor_78;
+	public static String ApplicationWorkbenchAdvisor_79;
+	public static String ApplicationWorkbenchAdvisor_8;
+	public static String ApplicationWorkbenchAdvisor_86;
+	public static String ApplicationWorkbenchAdvisor_87;
+	public static String ApplicationWorkbenchAdvisor_88;
+	public static String ApplicationWorkbenchAdvisor_89;
+	public static String ApplicationWorkbenchAdvisor_9;
+	public static String ApplicationWorkbenchAdvisor_init;
+	public static String ApplicationWorkbenchAdvisor_init_failed;
+
+	public static String ApplicationWorkbenchAdvisor_PROGRESS_BAR_LOADING_CORPORA;
+	public static String ApplicationWorkbenchAdvisor_ready;
+
+	public static String ApplicationWorkbenchWindowAdvisor_0;
+
+	public static String ApplicationWorkbenchWindowAdvisor_9;
+	public static String Application_0;
+
+	public static String Application_1;
+
+	public static String Application_10;
+
+	public static String Application_11;
+
+	public static String Application_2;
+
+	public static String Application_4;
+	public static String Application_6;
+
+	public static String Application_8;
+
+	public static String Application_9;
+	public static String AssistedQueryWidget_0;
+	public static String BackToText_0;
+	public static String CAHEditor_0;
+
+	public static String CAHEditor_PART_NAME_PREFIX;
+	public static String CAHPreferencePage_0;
+	public static String CAHEditorTitle;
+	public static String CAHPreferencePage_2;
+	public static String CAHPreferencePage_3;
+	public static String CAHPreferencePage_4;
+	public static String CANT_CREATE_GRAPHIC;
+	public static String CAPreferencePage_0;
+	public static String CAPreferencePage_1;
+
+	public static String CAPreferencePage_2;
+	public static String CAPreferencePage_3;
+	public static String CAPreferencePage_4;
+	public static String CAPreferencePage_5;
+	public static String CAPreferencePage_6;
+	public static String CAPreferencePage_7;
+	public static String CAPreferencePage_8;
+	public static String CQPPreferenceInitializer_0;
+	public static String CQPPreferenceInitializer_1;
+	public static String CQPPreferencePage_0;
+	public static String CQPPreferencePage_1;
+	public static String CQPPreferencePage_10;
+	public static String CQPPreferencePage_11;
+	public static String CQPPreferencePage_12;
+	public static String CQPPreferencePage_13;
+	public static String CQPPreferencePage_14;
+	public static String CQPPreferencePage_15;
+	public static String CQPPreferencePage_16;
+	public static String CQPPreferencePage_17;
+	public static String CQPPreferencePage_18;
+	public static String CaEditor_0;
+
+	public static String Cannot_ask_simple_when_advance;
+	public static String ColRowInfosLabelProvider_19;
+	public static String ColRowInfosLabelProvider_9;
+	public static String ColsRowsInfosEditor_0;
+	public static String ColsRowsInfosEditor_2;
+	public static String Commands_0;
+	public static String ComplexSortSelector_0;
+	public static String ComplexSortSelector_1;
+	public static String ComplexSortSelector_2;
+	public static String ComplexSortSelector_5;
+	public static String ComplexSortSelector_6;
+	public static String ComplexSort_0;
+	public static String ComplexSort_1;
+	public static String ComplexSort_10;
+	public static String ComplexSort_11;
+	public static String ComplexSort_12;
+	public static String ComplexSort_14;
+	public static String ComplexSort_16;
+	public static String ComplexSort_18;
+	public static String ComplexSort_2;
+	public static String ComplexSort_3;
+	public static String ComplexSort_4;
+	public static String ComplexSort_5;
+	public static String ComplexSort_6;
+	public static String ComplexSort_9;
+	public static String ComplexSubcorpusPanel_0;
+	public static String ComplexSubcorpusPanel_1;
+	public static String ComplexSubcorpusPanel_16;
+	public static String ComplexSubcorpusPanel_2;
+	public static String ComplexSubcorpusPanel_4;
+	public static String ComplexSubcorpusPanel_5;
+	public static String ComputeCAH_0;
+	public static String ComputeCAH_1;
+	public static String ComputeCAH_2;
+	public static String ComputeCAH_3;
+
+	public static String ComputeCAH_4;
+
+	public static String ComputeCAH_5;
+
+	public static String ComputeCAH_6;
+	public static String ComputeClassification_5;
+	public static String ComputeClassification_6;
+	public static String ComputeConcordance_0;
+	public static String ComputeConcordance_1;
+	public static String ComputeCoocFromLines_0;
+	public static String ComputeCoocFromLines_1;
+	public static String ComputeCoocMatrix_0;
+	public static String ComputeCoocMatrix_1;
+	public static String ComputeCoocMatrix_10;
+	public static String ComputeCoocMatrix_11;
+	public static String ComputeCoocMatrix_12;
+	public static String ComputeCoocMatrix_13;
+	public static String ComputeCoocMatrix_2;
+	public static String ComputeCoocMatrix_3;
+	public static String ComputeCoocMatrix_4;
+	public static String ComputeCoocMatrix_7;
+	public static String ComputeCooccurrences_0;
+	public static String ComputeCooccurrences_1;
+
+	public static String ComputeCooccurrences_2;
+	public static String ComputeCorrespondanceAnalysisDialog_0;
+	public static String ComputeCorrespondanceAnalysisDialog_1;
+	public static String ComputeCorrespondanceAnalysisDialog_2;
+	public static String ComputeCorrespondanceAnalysis_0;
+	public static String ComputeCorrespondanceAnalysis_1;
+	public static String ComputeCorrespondanceAnalysis_13;
+	public static String ComputeCorrespondanceAnalysis_14;
+	public static String ComputeCorrespondanceAnalysis_15;
+	public static String ComputeCorrespondanceAnalysis_16;
+	public static String ComputeCorrespondanceAnalysis_17;
+
+	public static String ComputeCorrespondanceAnalysis_2;
+	public static String ComputeCorrespondanceAnalysis_3;
+	public static String ComputeCorrespondanceAnalysis_4;
+	public static String ComputeCorrespondanceAnalysis_6;
+	public static String ComputeCorrespondanceAnalysis_8;
+	public static String ComputeFrequencyList_2;
+	public static String ComputeIndexFromLines_0;
+
+	public static String ComputeInternalView_0;
+
+	public static String ComputeInternalView_1;
+	public static String ComputeLexicalTable_0;
+	public static String ComputeLexicalTable_1;
+	public static String ComputeLexicalTable_10;
+	public static String ComputeLexicalTable_12;
+	public static String ComputeLexicalTable_13;
+	public static String ComputeLexicalTable_16;
+	public static String ComputeLexicalTable_2;
+	public static String ComputeLexicalTable_3;
+
+	public static String ComputeLexicalTable_4;
+	public static String ComputeLexicalTable_5;
+	public static String ComputeLexicalTable_6;
+	public static String ComputeLexicalTable_7;
+	public static String ComputeLexicalTable_9;
+	public static String ComputeReferencer_0;
+	public static String ComputeSpecificitiesDialog_0;
+	public static String ComputeSpecificitiesDialog_1;
+	public static String ComputeSpecificitiesDialog_3;
+	public static String ComputeSpecificitiesDialog_4;
+	public static String ComputeSpecificitiesDialog_9;
+	public static String ComputeSpecificities_0;
+	public static String ComputeSpecificities_2;
+	public static String ComputeSpecifities_0;
+
+	public static String ComputeSpecifities_1;
+
+	public static String ComputeSpecifities_10;
+	public static String ComputeSpecifities_11;
+	public static String ComputeSpecifities_2;
+	public static String ComputeSpecifities_3;
+
+	public static String ComputeSpecifities_4;
+	public static String ComputeIndex_0;
+	public static String Compute_Specificities;
+
+	public static String ComputeDiagnostic_0;
+
+	public static String ComputeDiagnostic_1;
+	public static String ConcordancerPreferencePage_3;
+	public static String ConcordancerPreferencePage_4;
+	public static String ConcordancerPreferencePage_5;
+	public static String ConcordancerPreferencePage_6;
+	public static String ConcordancesEditorContributor_0;
+	public static String ConcordancesEditor_0;
+	public static String ConcordancesEditor_1;
+
+	public static String ConcordancesEditor_10;
+
+	public static String ConcordancesEditor_101;
+
+	public static String ConcordancesEditor_108;
+	public static String ConcordancesEditor_11;
+
+	public static String ConcordancesEditor_111;
+
+	public static String ConcordancesEditor_112;
+
+	public static String ConcordancesEditor_113;
+	public static String ConcordancesEditor_12;
+	public static String ConcordancesEditor_13;
+	public static String ConcordancesEditor_14;
+
+	public static String ConcordancesEditor_15;
+	public static String ConcordancesEditor_16;
+
+	public static String ConcordancesEditor_17;
+	public static String ConcordancesEditor_18;
+	public static String ConcordancesEditor_19;
+	public static String ConcordancesEditor_2;
+	public static String ConcordancesEditor_20;
+
+	public static String ConcordancesEditor_21;
+
+	public static String ConcordancesEditor_22;
+
+	public static String ConcordancesEditor_23;
+
+	public static String ConcordancesEditor_24;
+
+	public static String ConcordancesEditor_25;
+	public static String ConcordancesEditor_26;
+	public static String ConcordancesEditor_27;
+
+	public static String ConcordancesEditor_28;
+	public static String ConcordancesEditor_29;
+	public static String ConcordancesEditor_3;
+	public static String ConcordancesEditor_30;
+
+	public static String ConcordancesEditor_31;
+
+	public static String ConcordancesEditor_32;
+
+	public static String ConcordancesEditor_33;
+	public static String ConcordancesEditor_34;
+
+	public static String ConcordancesEditor_35;
+
+	public static String ConcordancesEditor_36;
+
+	public static String ConcordancesEditor_37;
+	public static String ConcordancesEditor_38;
+	public static String ConcordancesEditor_39;
+	public static String ConcordancesEditor_4;
+
+	public static String ConcordancesEditor_40;
+
+	public static String ConcordancesEditor_41;
+
+	public static String ConcordancesEditor_42;
+	public static String ConcordancesEditor_43;
+
+	public static String ConcordancesEditor_44;
+
+	public static String ConcordancesEditor_45;
+	public static String ConcordancesEditor_46;
+
+	public static String ConcordancesEditor_47;
+
+	public static String ConcordancesEditor_48;
+
+	public static String ConcordancesEditor_49;
+	public static String ConcordancesEditor_5;
+	public static String ConcordancesEditor_50;
+
+	public static String ConcordancesEditor_51;
+
+	public static String ConcordancesEditor_52;
+
+	public static String ConcordancesEditor_53;
+
+	public static String ConcordancesEditor_54;
+
+	public static String ConcordancesEditor_55;
+	public static String ConcordancesEditor_56;
+
+	public static String ConcordancesEditor_57;
+
+	public static String ConcordancesEditor_58;
+
+	public static String ConcordancesEditor_59;
+
+	public static String ConcordancesEditor_6;
+
+	public static String ConcordancesEditor_60;
+
+	public static String ConcordancesEditor_61;
+
+	public static String ConcordancesEditor_62;
+
+	public static String ConcordancesEditor_63;
+
+	public static String ConcordancesEditor_64;
+
+	public static String ConcordancesEditor_65;
+
+	public static String ConcordancesEditor_66;
+
+	public static String ConcordancesEditor_67;
+
+	public static String ConcordancesEditor_68;
+
+	public static String ConcordancesEditor_69;
+	public static String ConcordancesEditor_7;
+
+	public static String ConcordancesEditor_70;
+
+	public static String ConcordancesEditor_71;
+
+	public static String ConcordancesEditor_72;
+
+	public static String ConcordancesEditor_73;
+
+	public static String ConcordancesEditor_74;
+
+	public static String ConcordancesEditor_75;
+
+	public static String ConcordancesEditor_76;
+
+	public static String ConcordancesEditor_77;
+
+	public static String ConcordancesEditor_78;
+
+	public static String ConcordancesEditor_79;
+	public static String ConcordancesEditor_8;
+
+	public static String ConcordancesEditor_80;
+
+	public static String ConcordancesEditor_81;
+
+	public static String ConcordancesEditor_82;
+
+	public static String ConcordancesEditor_83;
+
+	public static String ConcordancesEditor_84;
+
+	public static String ConcordancesEditor_85;
+
+	public static String ConcordancesEditor_86;
+
+	public static String ConcordancesEditor_87;
+
+	public static String ConcordancesEditor_88;
+
+	public static String ConcordancesEditor_9;
+
+	public static String ConcordancesEditor_99;
+	public static String ConcordancesEditor_100;
+	public static String ConcordancesEditor_110;
+	public static String ConcordancesEditor_114;
+	public static String ConcordancesEditor_115;
+	public static String ConcordancesEditor_116;
+	public static String ConvertCorpus_0;
+	public static String CoocPreferencePage_0;
+	public static String CoocPreferencePage_1;
+	public static String CoocPreferencePage_11;
+	public static String CoocPreferencePage_12;
+	public static String CoocPreferencePage_2;
+	public static String CoocPreferencePage_3;
+	public static String CoocPreferencePage_4;
+	public static String CoocPreferencePage_5;
+	public static String CoocPreferencePage_6;
+	public static String CoocPreferencePage_8;
+	public static String CooccurrencesEditor_0;
+	public static String CooccurrencesEditor_1;
+
+	public static String CooccurrencesEditor_10;
+	public static String CooccurrencesEditor_11;
+	public static String CooccurrencesEditor_12;
+	public static String CooccurrencesEditor_13;
+	public static String CooccurrencesEditor_14;
+	public static String CooccurrencesEditor_15;
+	public static String CooccurrencesEditor_16;
+	public static String CooccurrencesEditor_17;
+	public static String CooccurrencesEditor_18;
+	public static String CooccurrencesEditor_2;
+	public static String CooccurrencesEditor_20;
+	public static String CooccurrencesEditor_23;
+	public static String CooccurrencesEditor_24;
+
+	public static String CooccurrencesEditor_25;
+	public static String CooccurrencesEditor_27;
+	public static String CooccurrencesEditor_28;
+	public static String CooccurrencesEditor_29;
+	public static String CooccurrencesEditor_3;
+	public static String CooccurrencesEditor_30;
+	public static String CooccurrencesEditor_31;
+	public static String CooccurrencesEditor_32;
+	public static String CooccurrencesEditor_33;
+	public static String CooccurrencesEditor_34;
+	public static String CooccurrencesEditor_4;
+	public static String CooccurrencesEditor_5;
+	public static String CooccurrencesEditor_6;
+	public static String CooccurrencesEditor_8;
+	public static String CooccurrencesEditor_9;
+	public static String CorporaView_0;
+	public static String CorporaView_1;
+	public static String CorporaView_2;
+	public static String CorporaView_3;
+	public static String CorporaView_4;
+	public static String CorporaView_5;
+	public static String CorporaView_6;
+	public static String CorporaView_7;
+	public static String CorporaView_9;
+	public static String CorpusPage_0;
+	public static String CorpusPage_1;
+	public static String CorpusPage_10;
+	public static String CorpusPage_11;
+	public static String CorpusPage_12;
+	public static String CorpusPage_13;
+	public static String CorpusPage_14;
+	public static String CorpusPage_15;
+	public static String CorpusPage_16;
+	public static String CorpusPage_16a;
+	public static String CorpusPage_17;
+	public static String CorpusPage_18;
+	public static String CorpusPage_19;
+	public static String CorpusPage_2;
+	public static String CorpusPage_20;
+	public static String CorpusPage_21;
+	public static String CorpusPage_22;
+	public static String CorpusPage_23;
+	public static String CorpusPage_24;
+	public static String CorpusPage_25;
+	public static String CorpusPage_26;
+	public static String CorpusPage_27;
+	public static String CorpusPage_28;
+	public static String CorpusPage_29;
+	public static String CorpusPage_3;
+
+	public static String CorpusPage_30;
+	public static String CorpusPage_31;
+	public static String CorpusPage_32;
+	public static String CorpusPage_33;
+	public static String CorpusPage_34;
+	public static String CorpusPage_35;
+	public static String CorpusPage_36;
+	public static String CorpusPage_37;
+	public static String CorpusPage_38;
+	public static String CorpusPage_39;
+	public static String CorpusPage_4;
+	public static String CorpusPage_40;
+	public static String CorpusPage_41;
+	public static String CorpusPage_42;
+	public static String CorpusPage_43;
+	public static String CorpusPage_44;
+	public static String CorpusPage_45;
+	public static String CorpusPage_46;
+	public static String CorpusPage_47;
+	public static String CorpusPage_48;
+	public static String CorpusPage_49;
+	public static String CorpusPage_5;
+	public static String CorpusPage_50;
+	public static String CorpusPage_51;
+	public static String CorpusPage_52;
+	public static String CorpusPage_53;
+	public static String CorpusPage_54;
+	public static String CorpusPage_55;
+
+	public static String CorpusPage_57;
+	public static String CorpusPage_6;
+	public static String CorpusPage_60;
+
+	public static String CorpusPage_61;
+
+	public static String CorpusPage_63;
+
+	public static String CorpusPage_64;
+	public static String CorpusPage_65;
+	public static String CorpusPage_66;
+	public static String CorpusPage_67;
+	
+	public static String CorpusPage_7;
+	public static String CorpusPage_8;
+
+	public static String CorpusPage_80;
+	public static String CorpusPage_9;
+
+	public static String CorpusPage_90;
+
+	public static String CorpusPage_91;
+
+	public static String CorpusPage_92;
+
+	public static String CorpusPage_93;
+	public static String CorrespondanceAnalysisEditorInput_0;
+	public static String CorrespondanceAnalysisEditorInput_1;
+	public static String CorrespondanceAnalysisEditorInput_11;
+	public static String CorrespondanceAnalysisEditorInput_10;
+	public static String CorrespondanceAnalysisEditorInput_2;
+	public static String CorrespondanceAnalysisEditorInput_26;
+	public static String CorrespondanceAnalysisEditorInput_27;
+	public static String CorrespondanceAnalysisEditorInput_29;
+	public static String CorrespondanceAnalysisEditorInput_3;
+	public static String CorrespondanceAnalysisEditorInput_30;
+	public static String CorrespondanceAnalysisEditorInput_4;
+	public static String CorrespondanceAnalysisEditorInput_5;
+	public static String CorrespondanceAnalysisEditorInput_8;
+	public static String CorrespondanceAnalysisEditorInput_9;
+	public static String CreateFile_1;
+	public static String CreateFolder_1;
+	public static String CreateFrequencyList_8;
+	public static String CreateMacro_0;
+	public static String CreateMacro_1;
+	public static String CreatePartitionDialog_0;
+	public static String CreatePartitionDialog_1;
+
+	public static String CreatePartitionDialog_10;
+	public static String CreatePartitionDialog_16;
+	public static String CreatePartitionDialog_2;
+	public static String CreatePartitionDialog_3;
+	public static String CreatePartitionDialog_4;
+	public static String CreatePartitionDialog_5;
+	public static String CreatePartitionDialog_6;
+	public static String CreatePartitionDialog_7;
+	public static String CreatePartitionDialog_8;
+	public static String CreatePartitionDialog_9;
+	public static String CreatePartition_0;
+	public static String CreatePartition_2;
+	public static String CreatePartition_5;
+	public static String CreatePartition_55;
+	public static String CreatePartition_6;
+	public static String CreatePartition_9;
+	public static String CreateSubCorpus_0;
+
+	public static String CreateSubCorpus_1;
+	public static String LastCQPError;
+	public static String CreateSubCorpus_2;
+
+	public static String CreateSubCorpus_3;
+	public static String CreateSubCorpus_begin;
+	public static String CreateSubCorpus_create;
+	public static String CreateSubcorpusDialog_0;
+	public static String CreateSubcorpusDialog_10;
+	public static String CreateSubcorpusDialog_11;
+	public static String CreateSubcorpusDialog_13;
+	public static String CreateSubcorpusDialog_14;
+	public static String CreateSubcorpusDialog_6;
+	public static String CreateSubcorpusDialog_8;
+	public static String CreateSubcorpus_7;
+	public static String CreateSubcorpus_8;
+	public static String CreateSubcorpus_9;
+	public static String DONE;
+	public static String DefineReferencePattern_0;
+	public static String DefineReferencePattern_1;
+	public static String DefineReferencePattern_2;
+	public static String DefineReferencePattern_3;
+	public static String DefineReferencePattern_4;
+	public static String DefineReferencePattern_5;
+	public static String DeleteFile_0;
+	public static String DeleteFile_2;
+	public static String DeleteInCorporaView_1;
+	public static String DeleteInCorporaView_2;
+	public static String DeleteLines_0;
+	public static String DeleteLines_1;
+	public static String DeleteObject_0;
+	public static String DeleteObject_1;
+
+	public static String DeleteObject_10;
+	public static String DeleteObject_3;
+	public static String DeleteObject_4;
+	public static String DeleteObject_5;
+	public static String DiagnosticPreferencePage_1;
+	public static String DiagnosticPreferencePage_2;
+	public static String DiagnosticPreferencePage_3;
+	public static String Diagnostique_0;
+	public static String Diagnostique_1;
+	public static String Diagnostique_10;
+	public static String Diagnostique_11;
+	public static String Diagnostique_2;
+	public static String Diagnostique_7;
+	public static String Diagnostique_8;
+	public static String Diagnostique_9;
+	public static String DictionnaryEditor_1;
+	public static String DictionnaryEditor_3;
+	public static String ERROR_WHILE_LOADING_CONCORDANCE_LINE;
+	public static String ElementTreeLabelProvider_0;
+	public static String ElementTreeLabelProvider_1;
+	public static String EmpantWidget_0;
+	public static String EmpantWidget_1;
+	public static String EmpantWidget_2;
+	public static String EmpantWidget_3;
+	public static String EmpantWidget_4;
+	public static String EmpantWidget_5;
+	public static String EmpantWidget_6;
+	public static String EmpantWidget_7;
+	public static String EmpantWidget_8;
+	public static String EmpantWidget_9;
+	public static String Error_computing_specificities;
+	public static String Error_creating_partition;
+	public static String ExecuteGroovyScriptFromFile_2;
+	public static String ExecuteGroovyScript_0;
+	public static String ExecuteGroovyScript_1;
+	public static String ExecuteGroovyScript_2;
+
+	public static String ExecuteGroovyScript_9;
+	public static String ExecuteRScript_1;
+	public static String ExecuteRScript_2;
+	public static String ExecuteRScript_3;
+	public static String ExecuteRText_0;
+	public static String ExecuteRText_1;
+	public static String ExecuteRText_2;
+	public static String ExecuteScriptImport_0;
+	public static String ExecuteScriptImport_1;
+	public static String ExecuteScriptImport_2;
+	public static String ExecuteScriptImport_3;
+	public static String ExecuteScriptImport_5;
+	public static String ExecuteScriptImport_6;
+	public static String ExecuteScriptImport_7;
+	public static String ExecuteScriptImport_8;
+	public static String ExecuteScriptR_0;
+	public static String ExecuteScriptR_1;
+	public static String ExecuteScript_0;
+
+	public static String ExecuteScript_1;
+
+	public static String ExecuteScript_2;
+
+	public static String ExecuteScript_3;
+
+	public static String ExecuteScript_4;
+
+	public static String ExecuteScript_5;
+
+	public static String ExecuteScript_6;
+
+	public static String ExecuteScript_7;
+	public static String Exit_Menu_Label;
+	public static String Explorer_0;
+	public static String Explorer_1;
+	public static String Explorer_2;
+	public static String Explorer_3;
+	public static String Explorer_4;
+	public static String Explorer_5;
+	public static String Explorer_6;
+	public static String Explorer_7;
+	public static String Explorer_8;
+	public static String ExportCorpus_0;
+	public static String ExportCorpus_3;
+	public static String ExportCorpus_4;
+	public static String ExportPreferencePage_1;
+	public static String ExportPreferencePage_18;
+	public static String ExportPreferencePage_19;
+	public static String ExportPreferencePage_21;
+	public static String ExportPreferencePage_3;
+	public static String ExportPreferencePage_4;
+	public static String ExportAnnotation_0;
+	public static String ExportResult_0;
+	public static String ExportResult_1;
+	public static String ExportResult_2;
+	public static String ExportResult_3;
+	public static String ExportResult_4;
+	public static String ExportResult_5;
+	public static String ExportResult_6;
+	public static String ExportSVG_0;
+
+	public static String ExportSVG_1;
+	public static String ExportSVG_2;
+
+	public static String ExportSVG_3;
+	public static String FAILED_TO_PARSE_OPTIONS;
+	public static String FAILED_TO_SAVE_PREFERENCES;
+	public static String FactorialMapEditor_0;
+	public static String FactorialMapEditor_10;
+	public static String FactorialMapEditor_11;
+	public static String FactorialMapEditor_13;
+	public static String FactorialMapEditor_4;
+	public static String FactorialMapEditor_5;
+	public static String FactorialMapEditor_6;
+	public static String FactorialMapEditor_8;
+	public static String FileExplorerPreferencePage_0;
+	public static String FileExplorerPreferencePage_1;
+	public static String FileExplorerPreferencePage_2;
+	public static String FileTreeContentProvider_1;
+	public static String FileTreeContentProvider_2;
+	public static String FileTreeContentProvider_3;
+	public static String FileTreeContentProvider_4;
+	public static String FrequencyListEditorInput_0;
+	public static String FrequencyListEditorInput_1;
+	public static String FrequencyListEditorInput_2;
+	public static String FrequencyListEditorInput_3;
+	public static String FrequencyListEditorInput_4;
+	public static String FrequencyListEditorInput_5;
+	public static String FrequencyListEditorInput_6;
+	public static String FrequencyListEditorInput_9;
+	public static String GenericMultiPageEditor_1;
+	public static String GenericMultiPageEditor_3;
+	public static String GetConcordancesDialog_0;
+	public static String GetConcordancesDialog_1;
+	public static String GetConcordancesDialog_13;
+	public static String GetConcordancesDialog_14;
+	public static String GetConcordancesDialog_15;
+	public static String GetConcordancesDialog_4;
+	public static String GetConcordancesDialog_5;
+	public static String GetConcordancesDialog_6;
+	public static String GetConcordancesDialog_7;
+	public static String GetConcordances_4;
+	public static String GraphicalLogger_0;
+	public static String GroovyConsole_4;
+	public static String GroovyConsole_5;
+	public static String ImportDialog_0;
+	public static String ImportDialog_1;
+	public static String ImportDialog_13;
+	public static String ImportDialog_14;
+	public static String ImportDialog_16;
+	public static String ImportDialog_19;
+	public static String ImportDialog_22;
+	public static String ImportDialog_23;
+	public static String ImportDialog_4;
+	public static String ImportDialog_5;
+	public static String ImportDialog_6;
+	public static String ImportFormEditor_0;
+
+	public static String ImportFormEditor_1;
+	public static String ImportPreferencePage_0;
+
+	public static String ImportPreferencePage_2;
+
+	public static String ImportPreferencePage_3;
+
+	public static String ImportPreferencePage_4;
+
+	public static String ImportPreferencePage_5;
+	public static String ImportSelectedText_0;
+	public static String ImportSelectedText_1;
+	public static String ImportSelectedText_10;
+	public static String ImportSelectedText_12;
+	public static String ImportSelectedText_2;
+	public static String ImportSelectedText_3;
+	public static String ImportSelectedText_4;
+	public static String ImportSelectedText_6;
+	public static String InternalCorpusView_0;
+	public static String InternalCorpusView_1;
+	public static String InternalCorpusView_2;
+	public static String InternalViewEditor_1;
+	public static String InternalViewEditor_10;
+	public static String InternalViewEditor_11;
+	public static String InternalViewEditor_16;
+	public static String InternalViewEditor_2;
+	public static String InternalViewEditor_25;
+	public static String InternalViewEditor_3;
+	public static String InternalViewEditor_4;
+	public static String InternalViewEditor_5;
+	public static String Invalid_analysis_property;
+	public static String JobHandler_0;
+	public static String JobHandler_1;
+	public static String JobHandler_2;
+	public static String JobHandler_3;
+	public static String JobsTimer_12;
+	public static String JobsTimer_13;
+	public static String JobsTimer_15;
+	public static String JobsTimer_16;
+	public static String JobsTimer_17;
+	public static String JobsTimer_19;
+	public static String JobsTimer_2;
+	public static String JobsTimer_20;
+	public static String JobsTimer_21;
+	public static String JobsTimer_5;
+	public static String JobsTimer_9;
+	public static String LanguageSwitchHandler_0;
+	public static String LanguageSwitchHandler_1;
+	public static String LanguageSwitchHandler_3;
+	public static String LanguageSwitchHandler_5;
+	public static String LanguageSwitchHandler_7;
+	public static String LexicalTableEditor_1;
+	public static String LexicalTableEditor_10;
+	public static String LexicalTableEditor_11;
+	public static String LexicalTableEditor_12;
+	public static String LexicalTableEditor_13;
+	public static String LexicalTableEditor_14;
+	public static String LexicalTableEditor_15;
+	public static String LexicalTableEditor_16;
+	public static String LexicalTableEditor_18;
+	public static String LexicalTableEditor_2;
+	public static String LexicalTableEditor_3;
+	public static String LexicalTableEditor_4;
+	public static String LexicalTableEditor_5;
+	public static String LexicalTableEditor_6;
+	public static String LexicalTableEditor_7;
+	public static String LexicalTableEditor_8;
+	public static String LexicalTablePreferencePage_0;
+	public static String LexicalTablePreferencePage_1;
+	public static String LexicalTable_1;
+	public static String LineLabelProvider_1;
+	public static String LoadBinaryCorpus_0;
+
+	public static String LoadBinaryCorpus_1;
+
+	public static String LoadBinaryCorpus_10;
+
+	public static String LoadBinaryCorpus_11;
+
+	public static String LoadBinaryCorpus_12;
+
+	public static String LoadBinaryCorpus_13;
+
+	public static String LoadBinaryCorpus_14;
+
+	public static String LoadBinaryCorpus_15;
+
+	public static String LoadBinaryCorpus_2;
+
+	public static String LoadBinaryCorpus_3;
+
+	public static String LoadBinaryCorpus_4;
+
+	public static String LoadBinaryCorpus_5;
+
+	public static String LoadBinaryCorpus_6;
+
+	public static String LoadBinaryCorpus_7;
+
+	public static String LocalePreferencePage_1;
+	public static String LocalePreferencePage_2;
+	public static String MacroExplorer_2;
+
+	public static String MacrosExplorer_0;
+	public static String MacrosExplorer_1;
+	public static String MainPage_0;
+	public static String MainPage_1;
+	public static String MainPage_10;
+	public static String MainPage_11;
+	public static String MainPage_12;
+	public static String MainPage_13;
+	public static String MainPage_14;
+	public static String MainPage_15;
+	public static String MainPage_17;
+	public static String MainPage_18;
+	public static String MainPage_19;
+	public static String MainPage_2;
+	public static String MainPage_20;
+	public static String MainPage_22;
+	public static String MainPage_23;
+	public static String MainPage_25;
+	public static String MainPage_27;
+	public static String MainPage_28;
+	public static String MainPage_29;
+	public static String MainPage_3;
+	public static String MainPage_30;
+	public static String MainPage_31;
+	public static String MainPage_33;
+	public static String MainPage_34;
+	public static String MainPage_36;
+	public static String MainPage_38;
+	public static String MainPage_39;
+	public static String MainPage_4;
+	public static String MainPage_40;
+	public static String MainPage_42;
+	public static String MainPage_44;
+	public static String MainPage_45;
+	public static String MainPage_46;
+	public static String MainPage_47;
+	public static String MainPage_49;
+	public static String MainPage_5;
+	public static String MainPage_50;
+	public static String MainPage_52;
+	public static String MainPage_53;
+	public static String MainPage_54;
+	public static String MainPage_55;
+	public static String MainPage_6;
+	public static String MainPage_7;
+	public static String MainPage_8;
+	public static String MainPage_9;
+	public static String MergeCols_1;
+	public static String MergeCols_2;
+	public static String MergeCols_5;
+	public static String MergeCols_6;
+	public static String MergeDeleteDialog_0;
+	public static String MergeDeleteDialog_1;
+	public static String MergeDeleteDialog_4;
+	public static String MergeLines_2;
+	public static String MetadataPage_1;
+	public static String MetadataPage_2;
+	public static String MetadataPage_3;
+	public static String MetadataPage_4;
+	public static String MetadataPage_5;
+	public static String MetadataPage_7;
+	public static String MultipleValueTreeDialog_0;
+	public static String NavigationWidget_0;
+	public static String ObjectExplorer_0;
+	public static String ObjectExplorer_10;
+	public static String ObjectExplorer_12;
+	public static String ObjectExplorer_15;
+	public static String ObjectExplorer_2;
+	public static String ObjectExplorer_21;
+	public static String ObjectExplorer_26;
+	public static String ObjectExplorer_27;
+	public static String ObjectExplorer_3;
+	public static String ObjectExplorer_4;
+	public static String ObjectExplorer_5;
+	public static String ObjectExplorer_7;
+	public static String ObjectExplorer_9;
+	public static String ObjectSelectionDialog_0;
+	public static String ObjectSelectionDialog_3;
+	public static String ObjectSelectionDialog_5;
+	public static String ObjectSelector_0;
+	public static String ObjectSelector_1;
+	public static String OpenBiblio_1;
+	public static String OpenBiblio_2;
+	public static String OpenBiblio_7;
+	public static String OpenBiblio_9;
+	public static String OpenBrowser_0;
+	public static String OpenBrowser_1;
+	public static String OpenEdition_0;
+	public static String OpenEdition_1;
+
+	public static String OpenEdition_2;
+	public static String OpenEdition_3;
+	public static String OpenEdition_5;
+	public static String OpenEdition_7;
+	public static String OpenEdition_8;
+	public static String OpenEmptyEditor_2;
+	public static String OpenGraph_8;
+	public static String OpenParaBrowser_0;
+	public static String OpenSVGGraph_0;
+	public static String OpenTXMUserPreferences_0;
+	public static String OpenURI_0;
+	public static String OpenURI_1;
+	public static String ParaBrowserEditor_11;
+	public static String ParaBrowserEditor_18;
+	public static String ParaBrowserEditor_19;
+	public static String ParaBrowserEditor_21;
+	public static String ParaBrowserEditor_22;
+	public static String ParaBrowserEditor_3;
+	public static String ParaBrowserEditor_4;
+	public static String ParaBrowserEditor_5;
+	public static String ParaBrowserEditor_9;
+	public static String ParametersDialog_0;
+	public static String ParametersDialog_1;
+	public static String ParametersDialog_10;
+	public static String ParametersDialog_11;
+	public static String ParametersDialog_12;
+	public static String ParametersDialog_13;
+	public static String ParametersDialog_14;
+	public static String ParametersDialog_15;
+	public static String ParametersDialog_17;
+	public static String PartitionComposer_0;
+	public static String PartitionComposer_1;
+
+	public static String PartitionComposer_11;
+	public static String PartitionComposer_2;
+	public static String PartitionComposer_3;
+	public static String PartitionComposer_5;
+	public static String PartitionComposer_6;
+	public static String PartitionComposer_8;
+	public static String PartitionComposer_9;
+	public static String PartsSize_0;
+	public static String PartsSize_10;
+	public static String PartsSize_18;
+	public static String PartsSize_2;
+	public static String PasteFile_1;
+	public static String PasteFile_3;
+	public static String PasteFile_4;
+	public static String Preferences_Menu_Label;
+	public static String ProgressionForm_0;
+	public static String ProgressionForm_1;
+	public static String ProgressionForm_10;
+	public static String ProgressionForm_11;
+	public static String ProgressionForm_12;
+	public static String ProgressionForm_13;
+	public static String ProgressionForm_14;
+	public static String ProgressionForm_2;
+	public static String ProgressionForm_3;
+	public static String ProgressionForm_5;
+	public static String ProgressionForm_6;
+	public static String ProgressionForm_7;
+	public static String ProgressionForm_8;
+	public static String ProgressionForm_9;
+	public static String PropertiesSelector_0;
+	public static String PropertiesSelector_1;
+	public static String PropertiesSelector_2;
+	public static String PropertySelector_0;
+	public static String PurgeCorpora_0;
+	public static String PurgeCorpora_1;
+	public static String PurgeCorpora_10;
+	public static String PurgeCorpora_12;
+	public static String PurgeCorpora_13;
+	public static String PurgeCorpora_2;
+	public static String PurgeCorpora_3;
+	public static String PurgeCorpora_4;
+	public static String PurgeCorpora_5;
+	public static String PurgeCorpora_7;
+	public static String PurgeCorpora_9;
+	public static String QueriesView_1;
+	public static String QueriesView_10;
+	public static String QueriesView_5;
+	public static String QueryAssistDialog_0;
+	public static String QueryAssistDialog_1;
+	public static String QueryAssistDialog_10;
+	public static String QueryAssistDialog_11;
+	public static String QueryAssistDialog_12;
+	public static String QueryAssistDialog_13;
+	public static String QueryAssistDialog_2;
+	public static String QueryAssistDialog_3;
+	public static String QueryAssistDialog_32;
+	public static String QueryAssistDialog_33;
+	public static String QueryAssistDialog_34;
+	public static String QueryAssistDialog_8;
+	public static String QueryIndexEditor_0;
+	public static String QueryIndexEditor_1;
+	public static String QueryIndexEditor_10;
+	public static String QueryIndexEditor_11;
+	public static String QueryIndexEditor_2;
+	public static String QueryIndexEditor_3;
+	public static String QueryIndexEditor_4;
+	public static String QueryIndexEditor_5;
+	public static String QueryIndexEditor_6;
+	public static String QueryIndexEditor_7;
+	public static String QueryIndexEditor_8;
+	public static String QueryIndexEditor_9;
+	public static String RConsole_0;
+
+	public static String RConsole_1;
+
+	public static String RPreferencePage_0;
+	public static String RPreferencePage_1;
+	public static String RPreferencePage_2;
+	public static String RPreferencePage_3;
+	public static String RPreferencePage_4;
+	public static String RPreferencePage_5;
+	public static String RPreferencePage_6;
+	public static String RPreferencePage_7;
+
+	public static String RPreferencePage_8;
+
+	public static String RPreferencePage_9;
+	public static String RVariablesView_1;
+	public static String RVariablesView_2;
+	public static String RVariablesView_9;
+	public static String ReferencerEditor_0;
+	public static String ReferencerEditor_10;
+	public static String ReferencerEditor_11;
+	public static String ReferencerEditor_12;
+	public static String ReferencerEditor_13;
+	public static String ReferencerEditor_17;
+	public static String ReferencerEditor_19;
+	public static String ReferencerEditor_21;
+	public static String ReferencerEditor_23;
+	public static String ReferencerEditor_25;
+	public static String ReferencerEditor_5;
+	public static String ReferencerEditor_6;
+	public static String ReferencerEditor_7;
+	public static String ReferencerEditor_8;
+	public static String ReferencerEditor_9;
+	public static String ReferencerPreferencePage_2;
+	public static String ReferencerPreferencePage_3;
+	public static String RenameFile_0;
+	public static String RenameFile_2;
+	public static String RenameFile_3;
+	public static String ProgressionDialog_0;
+	public static String ProgressionDialog_1;
+	public static String ProgressionDialog_10;
+	public static String ProgressionDialog_11;
+	public static String ProgressionDialog_13;
+	public static String ProgressionDialog_14;
+	public static String ProgressionDialog_15;
+	public static String ProgressionDialog_16;
+	public static String ProgressionDialog_17;
+	public static String ProgressionDialog_2;
+	public static String ProgressionDialog_3;
+	public static String ProgressionDialog_4;
+	public static String ProgressionDialog_5;
+	public static String ProgressionDialog_7;
+	public static String ProgressionDialog_8;
+	public static String ProgressionDialog_9;
+	public static String ProgressionEditorInput_0;
+	public static String RestartTXM_0;
+	public static String RestartTXM_1;
+	public static String RunGroovyScript_0;
+	public static String RunGroovyScript_1;
+	public static String RunGroovyScript_2;
+	public static String RunGroovyScript_3;
+	public static String RunGroovyScript_4;
+	public static String RunGroovyScript_8;
+	public static String RunGroovyScript_9;
+	public static String RunGroovyScript_10;
+	public static String SVGGraphicEditor_1;
+	public static String SaveAs_2;
+	public static String ScriptPreferencePage_0;
+
+	public static String ScriptPreferencePage_1;
+	public static String ScriptPreferencePage_3;
+	public static String SendToR_0;
+	public static String SendToR_3;
+	public static String SetContextSize_1;
+	public static String SetContextSize_2;
+	public static String SetContextSize_3;
+	public static String SetContextSize_4;
+	public static String SetEncoding_0;
+	public static String SetEncoding_1;
+	public static String SetEncoding_2;
+	public static String SetLineNumber_0;
+	public static String SetLineNumber_1;
+	public static String SetSortProperty_1;
+	public static String SetSortProperty_2;
+	public static String SetSortProperty_3;
+	public static String ShowSelected_4;
+	public static String ShowSvgHelp_0;
+	public static String ShowSvgHelp_1;
+	public static String ShowSvgHelp_2;
+	public static String ShowSvgHelp_3;
+	public static String ShowSvgHelp_4;
+	public static String ShowSvgHelp_5;
+	public static String SimpleSubcorpusPanel_0;
+
+	public static String SingularValuesEditor_0;
+	public static String SortPropertySelection_0;
+	public static String Structure_field_not_empty;
+	public static String Submit_0;
+
+	public static String SummaryView_0;
+	public static String TXMCqpServerWatcher_0;
+	public static String TXMCqpServerWatcher_1;
+	public static String TXMRServeWatcher_0;
+	public static String TXMRServeWatcher_1;
+	public static String TXMRServeWatcher_2;
+	public static String TXMRServeWatcher_3;
+	public static String TXMRServeWatcher_4;
+	public static String TablableVector_0;
+	public static String TableEditor_0;
+	public static String TableKeyListener_0;
+
+	public static String TableKeyListener_1;
+	public static String TableKeyListener_6;
+	public static String TableSorter_0;
+	public static String TextometriePreferencePage_0;
+	public static String TextometriePreferencePage_1;
+	public static String TextometriePreferencePage_14;
+	public static String TextometriePreferencePage_15;
+	public static String TextometriePreferencePage_18;
+	public static String TextometriePreferencePage_19;
+	public static String TextometriePreferencePage_2;
+	public static String TextometriePreferencePage_20;
+	public static String TextualPlansSection_milestone_label;
+
+	public static String TextualPlansSection_milestone_tooltip;
+
+	public static String TextualPlansSection_outsidetext_label;
+
+	public static String TextualPlansSection_outsidetext_tooltip;
+
+	public static String TextualPlansSection_outsidetexttoedit_label;
+
+	public static String TextualPlansSection_outsidetexttoedit_tooltip;
+
+	public static String TextualPlansSection_save_error;
+
+	public static String TextualPlansSection_title;
+
+	public static String TextualPlansSection_update_error;
+
+	public static String TreeTaggerPreferencePage_0;
+	public static String TreeTaggerPreferencePage_1;
+	public static String TreeTaggerPreferencePage_2;
+	public static String TreeTaggerPreferencePage_3;
+	public static String TxmBrowser_0;
+	public static String TxmBrowser_10;
+	public static String TxmBrowser_11;
+	public static String TxmBrowser_12;
+	public static String TxmBrowser_5;
+	public static String TxmBrowser_6;
+	public static String TxmBrowser_7;
+	public static String TxmBrowser_8;
+	public static String TxmBrowser_9;
+	public static String TxmCommand_1;
+	public static String TxtEditor_0;
+	public static String TxtEditor_1;
+	public static String UIParameterException_0;
+	public static String UserPreferencePage_0;
+
+	public static String UserPreferencePage_1;
+	public static String UserPreferencePage_3;
+	public static String ViewPropertySelectionDialog_0;
+	public static String ViewPropertySelection_0;
+	public static String IndexEditor_0;
+	public static String IndexEditor_1;
+	public static String IndexEditor_10;
+	public static String IndexEditor_17;
+	public static String IndexEditor_18;
+	public static String IndexEditor_2;
+	public static String IndexEditor_20;
+	public static String IndexEditor_22;
+	public static String IndexEditor_25;
+	public static String IndexEditor_26;
+	public static String IndexEditor_27;
+	public static String IndexEditor_28;
+	public static String IndexEditor_29;
+	public static String IndexEditor_3;
+	public static String IndexEditor_31;
+	public static String IndexEditor_33;
+	public static String IndexEditor_36;
+	public static String IndexEditor_37;
+	public static String IndexEditor_4;
+	public static String IndexEditor_5;
+	public static String IndexEditor_6;
+	public static String IndexEditor_7;
+	public static String IndexEditor_8;
+	public static String IndexEditor_9;
+	public static String IndexToCooccurrence_0;
+	public static String IndexToLexicalTable_0;
+
+	public static String IndexToLexicalTable_1;
+	public static String WordCloudPreferencePage_0;
+	public static String WordCloudPreferencePage_1;
+	public static String WordCloudPreferencePage_2;
+	public static String WordCloudPreferencePage_3;
+	public static String ConcordancesEditor_referenceColumn_text;
+	public static String ConcordancesEditor_xpndtmNewExpanditem_text;
+	public static String ConcordancesEditor_xpndtmNewParameters_text;
+	public static String ConcordancesEditor_xpndtmNewExpanditem_text_1;
+	public static String ConcordancesEditor_xpndtmNewExpanditem_text_2;
+
+	public static String CheckRPackages_0;
+	public static String CheckRPackages_1;
+	public static String CheckRPackages_13;
+	public static String CheckRPackages_14;
+	public static String CheckRPackages_15;
+	public static String CheckRPackages_19;
+	public static String CheckRPackages_2;
+	public static String CheckRPackages_20;
+	public static String CheckRPackages_21;
+	public static String CheckRPackages_22;
+	public static String CheckRPackages_23;
+	public static String CheckRPackages_24;
+	public static String CheckRPackages_25;
+	public static String CheckRPackages_26;
+	public static String CheckRPackages_3;
+	public static String CheckRPackages_31;
+	public static String CheckRPackages_32;
+	public static String CheckRPackages_33;
+	public static String CheckRPackages_35;
+	public static String CheckRPackages_36;
+	public static String CheckRPackages_37;
+	public static String CheckRPackages_4;
+	public static String CheckRPackages_42;
+	public static String CheckRPackages_43;
+	public static String CheckRPackages_44;
+	public static String CheckRPackages_5;
+	public static String CheckRPackages_9;
+	public static String CleanPerspective_1;
+	public static String CleanPerspective_2;
+	public static String ExecuteLastGroovyScript_0;
+	public static String ExecuteLastGroovyScript_1;
+	public static String ExecuteLastGroovyScript_3;
+	public static String ShowSelected_0;
+	public static String SaveBeforeExecutionDialog_0;
+	public static String DownloadJobHandler_0;
+	public static String FixUpdateHandler_0;
+	
+	static {
+		// initialize resource bundle
+		TXMMessages.initializeMessages(BUNDLE_NAME, Messages.class);
+		//NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/Messages.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/LabPerspective.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/LabPerspective.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/LabPerspective.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.perspective;
+
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.console.IConsoleConstants;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RPerspective.
+ */
+public class LabPerspective implements IPerspectiveFactory {
+	
+	public final static String ID = "org.txm.rcpapplication.perspective.LabPerspective";
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
+	 */
+	@Override
+	public void createInitialLayout(IPageLayout layout) {
+		String editorArea = layout.getEditorArea();
+		layout.setEditorAreaVisible(true);
+		layout.setFixed(false);
+		
+		IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.25f, editorArea); //$NON-NLS-1$
+		left.addView(CorporaView.ID);
+		left.addView(Explorer.ID);
+		left.addView(MacroExplorer.ID);
+
+		layout.getViewLayout(CorporaView.ID).setCloseable(false);
+		layout.getViewLayout(Explorer.ID).setCloseable(false);
+		
+		IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, 0.66f, editorArea); //$NON-NLS-1$
+		bottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);
+	}
+	
+	public static boolean isActive() {
+		IWorkbench wb = PlatformUI.getWorkbench();
+		IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
+		if (win == null) return false;
+		IWorkbenchPage page = win.getActivePage();
+		if (page == null) return false;
+		IPerspectiveDescriptor perspective = page.getPerspective();
+		if (perspective == null) return false;
+
+		return ID.equals(perspective.getId());
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/LabPerspective.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/RPerspective.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/RPerspective.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/RPerspective.java	(revision 122)
@@ -0,0 +1,66 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.perspective;
+
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.ui.console.IConsoleConstants;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.RConsole;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RPerspective.
+ */
+public class RPerspective implements IPerspectiveFactory {
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
+	 */
+	@Override
+	public void createInitialLayout(IPageLayout layout) {
+		String editorArea = layout.getEditorArea();
+		layout.setEditorAreaVisible(true);
+		layout.setFixed(false);
+		
+		IFolderLayout left = layout.createFolder("leftR", IPageLayout.LEFT, 0.25f, editorArea); //$NON-NLS-1$
+		left.addView(RVariablesView.ID);
+		left.addView(CorporaView.ID);
+		left.addView(Explorer.ID);
+		
+		//if olderLayout bottom = layout.createFolder("bottomR", IPageLayout.BOTTOM, 0.66f, editorArea); //$NON-NLS-1$
+		layout.addView(IConsoleConstants.ID_CONSOLE_VIEW, IPageLayout.BOTTOM, 0.8f, editorArea);
+		layout.addView(RConsole.ID, IPageLayout.BOTTOM, 0.5f, editorArea);
+		
+		
+		RVariablesView.reload();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/RPerspective.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/TXMPerspective.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/TXMPerspective.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/TXMPerspective.java	(revision 122)
@@ -0,0 +1,78 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.perspective;
+
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.ui.console.IConsoleConstants;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+
+// TODO: Auto-generated Javadoc
+/**
+ * define which view are opened at TXM start up 
+ * @author mdecorde.
+ */
+public class TXMPerspective implements IPerspectiveFactory {
+
+	/** The Constant ID. */
+	public static final String ID = "org.txm.rcpapplication.perspective.TXMPerspective"; //$NON-NLS-1$
+	static IPageLayout initialLayout;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
+	 */
+	@Override
+	public void createInitialLayout(IPageLayout layout) {
+		
+		TXMPerspective.initialLayout = layout;
+		//System.out.println("INITIAL LAYOUT="+initialLayout);
+		String editorArea = layout.getEditorArea();
+		layout.setEditorAreaVisible(true);
+
+		IFolderLayout left = layout.createFolder("left", IPageLayout.LEFT, 0.25f, editorArea); //$NON-NLS-1$
+		left.addView(CorporaView.ID);
+		left.addView(Explorer.ID);
+
+		layout.getViewLayout(CorporaView.ID).setCloseable(false);
+		layout.getViewLayout(Explorer.ID).setCloseable(false);
+		
+		IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, 0.66f, editorArea); //$NON-NLS-1$
+		// bottom.addView(IPageLayout.ID_OUTLINE);
+		bottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);
+		//bottom.addView("org.eclipse.ui.views.ProgressView"); //$NON-NLS-1$
+		// bottom.addView(GroovyConsole.ID);
+		// bottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);
+		
+	}
+	
+	public static IPageLayout getInitiaLayout() {
+		return initialLayout;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/perspective/TXMPerspective.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.ppf
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.ppf	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/txm.ppf	(revision 122)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project type="java bundle">
+<settings name="txm">
+<replacespace enable="false" string="_"/>
+<emptykeys enable="true"/>
+<saveWYSIWYGmode enable="true"/>
+</settings>
+<files workdirectory="/home/sheiden/workspace/org.txm.rcpapp/src/main/java/org/txm/rcpapplication">
+<default filename="messages.properties">
+<properties encoding="java utf" visible="true" withescape="true"/>
+</default>
+<file filename="messages_fr.properties">
+<properties encoding="java utf" visible="true" withescape="true"/>
+</file>
+</files>
+<scanner>
+<files enable="false" rootdir="./"/>
+</scanner>
+</project>
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationActionBarAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationActionBarAdvisor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationActionBarAdvisor.java	(revision 122)
@@ -0,0 +1,211 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication;
+
+import org.eclipse.jface.action.ICoolBarManager;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+//import org.txm.rcpapplication.actions.ComputeSpecificities;
+//import org.txm.rcpapplication.actions.CreateFrequencyList;
+//import org.txm.rcpapplication.actions.CreatePartition;
+//import org.txm.rcpapplication.actions.CreateSubcorpus;
+//import org.txm.rcpapplication.actions.GetConcordances;
+import org.txm.rcpapplication.actions.RunGroovyScript;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Controls the availables commands in toolbar
+ */
+@Deprecated
+public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
+
+	/**
+	 * Instantiates a new application action bar advisor.
+	 *
+	 * @param configurer the configurer
+	 */
+	public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
+		super(configurer);
+	}
+
+	/** The exit action. */
+	private IWorkbenchAction exitAction;
+
+	/** The about action. */
+	private IWorkbenchAction aboutAction;
+
+	/** The preference action. */
+	private IWorkbenchAction preferenceAction;
+
+	/** The delete action. */
+	private IWorkbenchAction deleteAction;
+
+	/** The compute specificities. */
+	//private ComputeSpecificities computeSpecificities;
+
+	/** The get concordances. */
+	//private GetConcordances getConcordances;
+
+	//private CreatePartition createPartition;
+
+	//private CreateSubcorpus createSubcorpus;
+
+	/** The create frequency list. */
+	//private CreateFrequencyList createFrequencyList;
+
+	// private ComputeCorrespondanceAnalysis computeCorrespondanceAnalysis;
+
+	/** The import action. */
+	private RunGroovyScript importAction;
+
+	/** The help action. */
+	private IWorkbenchAction helpAction;
+	
+	/** The help search action. */
+	private IWorkbenchAction helpSearchAction;
+	
+	/** The dynamic help action. */
+	private IWorkbenchAction dynamicHelpAction;
+
+	/**
+	 * build all the actions of the application, many are deprecated.
+	 *
+	 * @param window the window
+	 */
+	@Override
+	protected void makeActions(IWorkbenchWindow window) {
+
+		preferenceAction = ActionFactory.PREFERENCES.create(window);
+		preferenceAction.setText(Messages.Preferences_Menu_Label);
+		register(preferenceAction);
+		exitAction = ActionFactory.QUIT.create(window);
+		exitAction.setText(Messages.Exit_Menu_Label);
+		register(exitAction);
+		aboutAction = ActionFactory.ABOUT.create(window);
+		aboutAction.setText(Messages.About_Menu_Label);
+		register(aboutAction);
+		deleteAction = ActionFactory.DELETE.create(window);
+		// register(deleteAction);
+		//computeSpecificities = new ComputeSpecificities(window);
+		//register(computeSpecificities);
+		//createPartition = new CreatePartition(window);
+		//register(createPartition);
+		//createSubcorpus = new CreateSubcorpus(window);
+		//register(createSubcorpus);
+		helpAction = ActionFactory.HELP_CONTENTS.create(window);
+		register(helpAction);
+		dynamicHelpAction = ActionFactory.DYNAMIC_HELP.create(window);
+		register(dynamicHelpAction);
+		{
+			helpSearchAction = ActionFactory.HELP_SEARCH.create(window);
+			register(helpSearchAction);
+		}
+		//createFrequencyList = new CreateFrequencyList(window);
+		//register(createFrequencyList);
+
+		// TODO remettre l'analyse par correspondance dans la toolbar principale
+		// computeCorrespondanceAnalysis = new
+		// ComputeCorrespondanceAnalysis(window);
+		// register(computeCorrespondanceAnalysis);
+
+		//getConcordances = new GetConcordances(window);
+		//register(getConcordances);
+
+		// System.out.println(Messages.ApplicationActionBarAdvisor_0);
+		importAction = new RunGroovyScript(window);
+		register(importAction);
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.ActionBarAdvisor#fillMenuBar(org.eclipse.jface.action.IMenuManager)
+	 */
+	@Override
+	protected void fillMenuBar(IMenuManager menuBar) {
+		// MenuManager fileMenu = new MenuManager(Messages.File_Menu_Label1,
+		// Messages.File_Menu_Label2);
+		// fileMenu.add(openFileCommand.);
+		// fileMenu.add(preferenceAction);
+		// fileMenu.add(importAction);
+		// fileMenu.add(new Separator());
+		// fileMenu.add(exitAction);
+
+		// MenuManager corpusMenu = new MenuManager(Messages.Corpus_Menu_Label1,
+		// Messages.Corpus_Menu_Label2);
+		// corpusMenu.add(createSubcorpus);
+		// corpusMenu.add(createPartition);
+		// corpusMenu.add(new Separator());
+		// corpusMenu.add(createFrequencyList);
+		// corpusMenu.add(getConcordances);
+		// corpusMenu.add(computeSpecificities);
+		// TODO remettre l'analyse par correspondance dans le menu corpus
+		// corpusMenu.add(computeCorrespondanceAnalysis);
+
+		// MenuManager helpMenu = new MenuManager(Messages.Help_Menu_Label1,
+		// Messages.Help_Menu_Label2);
+		// helpMenu.add(helpAction);
+		// helpMenu.add(dynamicHelpAction);
+		// helpMenu.add(helpSearchAction);
+		// helpMenu.add(aboutAction);
+
+		// menuBar.add(fileMenu);
+		// menuBar.add(corpusMenu);
+		// menuBar.add(helpMenu);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.application.ActionBarAdvisor#fillCoolBar(org.eclipse.jface.action.ICoolBarManager)
+	 */
+	@Override
+	protected void fillCoolBar(ICoolBarManager coolBar) {
+		// IToolBarManager toolbar = new ToolBarManager(coolBar.getStyle());
+		// coolBar.add(toolbar);
+		// toolbar.add(createSubcorpus);
+		// toolbar.add(createPartition);
+		// toolbar.add(new Separator());
+		// toolbar.add(createFrequencyList);
+		// toolbar.add(getConcordances);
+		// toolbar.add(computeSpecificities);
+		// toolbar.add(computeCorrespondanceAnalysis);
+	}
+
+	/**
+	 * Fill tray item.
+	 *
+	 * @param trayItem the tray item
+	 */
+	protected void fillTrayItem(IMenuManager trayItem) {
+		trayItem.add(aboutAction);
+		trayItem.add(exitAction);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/ApplicationActionBarAdvisor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Application classes</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Display SVG in swt composite</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGPanel.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGPanel.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGPanel.java	(revision 122)
@@ -0,0 +1,228 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.svg;
+import java.awt.BorderLayout;
+import java.awt.Frame;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
+import java.awt.event.MouseWheelListener;
+import java.awt.geom.AffineTransform;
+import java.util.List;
+
+import javax.swing.JPanel;
+
+import org.apache.batik.swing.JSVGCanvas;
+import org.apache.batik.swing.gvt.AbstractImageZoomInteractor;
+import org.apache.batik.swing.gvt.AbstractPanInteractor;
+import org.apache.batik.swing.gvt.AbstractResetTransformInteractor;
+import org.apache.batik.swing.gvt.AbstractZoomInteractor;
+import org.apache.batik.swing.gvt.Interactor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SVGPanel.
+ */
+public class SVGPanel extends JPanel{
+	
+	/** The Constant serialVersionUID. */
+	private static final long serialVersionUID = -4381954167495751486L;
+	// The SVG canvas.
+	/** The svg canvas. */
+	protected JSVGCanvas svgCanvas = new JSVGCanvas();
+	
+	/** The frame. */
+	private Frame frame;
+
+	// ----------------------------------------------------------------------
+	// Interactors
+	// ----------------------------------------------------------------------
+
+	/**
+	 * An interactor to perform a zoom.
+	 * <p>Binding: BUTTON1 + CTRL Key</p>
+	 */
+	protected Interactor zoomInteractor = new AbstractZoomInteractor() {
+		@Override
+		public boolean startInteraction(InputEvent ie) {
+			int mods = ie.getModifiers();
+			return
+			ie.getID() == MouseEvent.MOUSE_PRESSED &&
+			(mods & InputEvent.BUTTON1_MASK) != 0 &&
+			(mods & InputEvent.CTRL_MASK) != 0;
+		}
+	};
+
+	/**
+	 * An interactor to perform a realtime zoom.
+	 * <p>Binding: BUTTON3 + SHif T Key</p>
+	 */
+	protected Interactor imageZoomInteractor
+	= new AbstractImageZoomInteractor() {
+		@Override
+		public boolean startInteraction(InputEvent ie) {
+			int mods = ie.getModifiers();
+			return
+			ie.getID() == MouseEvent.MOUSE_PRESSED &&
+			(mods & InputEvent.BUTTON3_MASK) != 0 &&
+			(mods & InputEvent.SHIFT_MASK) != 0;
+		}
+	};
+
+	/**
+	 * An interactor to perform a translation.
+	 * <p>Binding: BUTTON1 + SHif T Key</p>
+	 */
+	protected Interactor panInteractor = new AbstractPanInteractor() {
+		@Override
+		public boolean startInteraction(InputEvent ie) {
+			int mods = ie.getModifiers();
+			return
+			ie.getID() == MouseEvent.MOUSE_PRESSED &&
+			(mods & InputEvent.BUTTON3_MASK) != 0 &&
+			(mods & InputEvent.SHIFT_MASK) != 1;
+		}
+	};
+
+	/**
+	 * An interactor to reset the rendering transform.
+	 * <p>Binding: CTRL+SHif T+BUTTON3</p>
+	 */
+	protected Interactor resetTransformInteractor =
+		new AbstractResetTransformInteractor() {
+		@Override
+		public boolean startInteraction(InputEvent ie) {
+			int mods = ie.getModifiers();
+			return
+			ie.getID() == MouseEvent.MOUSE_CLICKED &&
+			(mods & InputEvent.BUTTON2_MASK) != 0 &&
+			(mods & InputEvent.SHIFT_MASK) != 1 &&
+			(mods & InputEvent.CTRL_MASK) != 1;
+		}
+	};
+
+	
+	/** The zoom. */
+	int zoom = 0;
+	
+	/**
+	 * Instantiates a new sVG panel.
+	 *
+	 * @param frame2 the frame2
+	 */
+	public SVGPanel(Frame frame2)
+	{
+		super(new BorderLayout());
+		this.frame = frame2;
+
+		this.add("Center", svgCanvas); //$NON-NLS-1$
+
+		List<Interactor> list = svgCanvas.getInteractors();
+		list.clear();
+		list.add(zoomInteractor);
+		list.add(imageZoomInteractor);
+		list.add(panInteractor);
+		list.add(resetTransformInteractor);
+
+		this.addMouseWheelListener(new MouseWheelListener() {
+
+			@Override
+			public void mouseWheelMoved(MouseWheelEvent e) {
+				if (e.getUnitsToScroll() < 0)
+				{
+					zoom++;
+					//System.out.println("in");
+					AffineTransform at;
+					JPanel c = (JPanel)e.getSource();
+
+					int xStart = e.getX();
+					int yStart = e.getY();
+
+					at = AffineTransform.getTranslateInstance(xStart, yStart);
+					int dy = zoom;
+					double s;
+					if (dy < 0) {	
+						s = -1f/dy;
+					} else {
+						s = dy;
+					}
+
+					at.scale(s, s);
+					at.translate(-xStart, -yStart);
+					if (at.getDeterminant() != 0)
+						svgCanvas.setRenderingTransform(at);
+				} else {
+					zoom--;
+					//System.out.println("out");
+					AffineTransform at;
+					JPanel c = (JPanel)e.getSource();
+
+					int xStart = e.getX();
+					int yStart = e.getY();
+
+					at = AffineTransform.getTranslateInstance(xStart, yStart);
+					int dy = zoom;
+					double s;
+					if (dy < 0) {
+						s = -1f/dy;
+					} else {
+						s =  dy;
+					}
+
+					at.scale(s, s);
+					at.translate(-xStart, -yStart);
+					if (at.getDeterminant() != 0)
+						svgCanvas.setRenderingTransform(at);
+				}
+			}
+		});
+
+	}
+
+	/**
+	 * Reset zoom.
+	 */
+	public void resetZoom()
+	{
+		AffineTransform trans = AffineTransform.getTranslateInstance(0, 0);
+		trans.scale(1, 1);
+		svgCanvas.setRenderingTransform(trans);
+
+	}
+
+	/**
+	 * Load svg document.
+	 *
+	 * @param url the url
+	 */
+	public void loadSVGDocument(String url) {
+		svgCanvas.show();
+		svgCanvas.loadSVGDocument(url);
+		frame.pack();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGPanel.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGComposite.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGComposite.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGComposite.java	(revision 122)
@@ -0,0 +1,128 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.svg;
+import java.awt.Frame;
+import java.net.URL;
+
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+import org.eclipse.swt.awt.SWT_AWT;
+import org.eclipse.swt.widgets.Composite;
+import org.txm.rcpapplication.utils.Logger;
+
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SVGComposite.
+ */
+public class SVGComposite extends Composite{
+
+	static
+	{
+		System.setProperty("sun.awt.noerasebackground", "true"); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+	
+	/** The old rect. */
+	private org.eclipse.swt.graphics.Rectangle oldRect = null;
+	
+	/** The panel. */
+	SVGPanel panel;
+	
+	/**
+	 * Instantiates a new sVG composite.
+	 *
+	 * @param parent the parent
+	 * @param style the style
+	 */
+	public SVGComposite(Composite parent, int style) {
+		super(parent, style);
+		/*org.eclipse.swt.graphics.Rectangle newRect = this.getClientArea();
+
+		if (oldRect != null) {
+			int heightDelta = newRect.height - oldRect.height;
+			int widthDelta = newRect.width - oldRect.width;
+			if ((heightDelta > 0) || (widthDelta > 0)) {
+				GC gc = new GC(this);
+				try {
+					gc.fillRectangle(newRect.x, oldRect.height, newRect.width, heightDelta);
+					gc.fillRectangle(oldRect.width, newRect.y, widthDelta, newRect.height);
+				} finally {
+					gc.dispose();
+				}
+			}
+		}
+		oldRect = newRect;
+*/
+
+		
+		try {
+			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+		} catch (ClassNotFoundException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (InstantiationException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (IllegalAccessException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (UnsupportedLookAndFeelException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		Frame frame = SWT_AWT.new_Frame(this);
+		try {
+			panel = new SVGPanel(frame);
+		}
+		catch(Throwable exception){Logger.printStackTrace(exception);}
+		frame.add(panel);
+		frame.setVisible(true);
+
+	}
+
+	/**
+	 * Reset zoom.
+	 */
+	public void resetZoom() {
+		panel.resetZoom();
+	}
+
+	/**
+	 * Sets the SVG file.
+	 *
+	 * @param url the new sVG file
+	 */
+	public void setSVGFile(URL url) {
+		//System.out.println("LOAD SVG FROM URL: "+url);
+		panel.loadSVGDocument(url.toExternalForm());
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/svg/SVGComposite.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CloseEditorsUsing.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CloseEditorsUsing.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CloseEditorsUsing.java	(revision 122)
@@ -0,0 +1,42 @@
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.txm.rcpapplication.commands.base.DeleteObject;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+public class CloseEditorsUsing  extends AbstractHandler {
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+	
+		return null;
+	}
+
+	public static int corpus(Corpus corpus) {
+		int c = 0;
+		
+		for (IWorkbenchPage page : DeleteObject.getPages()) {
+			for (IEditorReference editorref : page.getEditorReferences()) {
+				IEditorPart editor = editorref.getEditor(false);
+
+				if (editor instanceof CustomizableEditor) {
+					//System.out.println("checking editor "+editor.getTitle());
+					CustomizableEditor ceditor = ((CustomizableEditor)editor);
+					if (corpus.equals(ceditor.getSource()))
+						editor.getEditorSite().getPage().closeEditor(editor, true);
+					else if (ceditor.usingCorpus(corpus)) {
+						editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+		}
+		
+		return c;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CloseEditorsUsing.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/DeleteLines.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/DeleteLines.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/DeleteLines.java	(revision 122)
@@ -0,0 +1,125 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow the user to delete lines in a Lexical Table @ author mdecorde.
+ */
+public class DeleteLines extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		// ISelection selection =
+		// HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
+
+		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (editor instanceof LexicalTableEditor) {
+			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
+			deleteLexicalTableLines(LTeditor);
+		} else if (editor instanceof ConcordancesEditor) {
+			ConcordancesEditor ceditor = (ConcordancesEditor) editor;
+			deleteConcordanceLines(ceditor);
+		}
+
+		return null;
+	}
+
+	public static void deleteLexicalTableLines(LexicalTableEditor LTeditor) {
+		int[] selection = LTeditor.getlineTableViewer().getTable()
+				.getSelectionIndices();
+		if (selection.length == 0)
+			return;
+
+		if (selection.length == LTeditor.getLexicalTable().getNRows()) {
+			System.out.println(Messages.DeleteLines_0);
+			return;
+		}
+
+		Display d = Display.getCurrent();
+		if (d != null) {
+			Shell shell = d.getActiveShell();
+			MessageBox messageBox = new MessageBox(shell, SWT.ICON_QUESTION
+					| SWT.YES | SWT.NO);
+			messageBox.setMessage(Messages.DeleteLines_1);
+			int response = messageBox.open();
+			if (response != SWT.YES)
+				return;
+		}
+
+		LTeditor.getLexicalTable().removeRows(selection);
+
+		LTeditor.refreshTable();
+		LTeditor.getlineTableViewer().getTable().deselectAll();
+	}
+
+	public static void deleteConcordanceLines(ConcordancesEditor editor) {
+		TableViewer viewer = editor.getLineTableViewer();
+		Concordance concordance = editor.getConcordance();
+		if (concordance == null) return;
+		IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
+		@SuppressWarnings("unchecked")
+		List<Line> lines = sel.toList();
+
+		if (lines.size() == 0) return;
+
+		try {
+		//	System.out.println("Delete line "+lines);
+			if (concordance.removeLines(lines)) {
+				editor.fillDisplayArea(editor.getTopLine(), editor.getBottomLine()-lines.size());
+			}
+		} catch (Exception e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/DeleteLines.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeCols.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeCols.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeCols.java	(revision 122)
@@ -0,0 +1,117 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class MergeCols.
+ */
+public class MergeCols extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (editor instanceof LexicalTableEditor) {
+			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
+			int[] selection = LTeditor.getlineTableViewer().getTable()
+					.getSelectionIndices();
+			if (selection.length == 0)
+				return null;
+
+			String newname = ""; //$NON-NLS-1$
+			InputDialog d = new InputDialog(shell, Messages.MergeCols_1,
+					Messages.MergeCols_2, "", null); //$NON-NLS-1$ 
+			if (d.open() == Window.OK)
+				newname = d.getValue();
+			else
+				return null;
+			if (newname.trim().equals("")) //$NON-NLS-1$
+				return null;
+
+			// sum the cols
+			int[] selectedCols = new int[3];
+			List<double[]> cols = LTeditor.getCols();
+			double[] firstcol = cols.get(selectedCols[0]);
+
+			LexicalTable table = LTeditor.getLexicalTable();
+			for (int i = 1; i < selectedCols.length; i++) {
+				for (int j = 0; j < table.getNRows(); j++) {
+					firstcol[j] += cols.get(selectedCols[i])[j];
+				}
+			}
+
+			// update table
+			for (int j = 0; j < table.getNRows(); j++) {
+				table.set(j, selectedCols[0], firstcol[j]);
+			}
+
+			// keep only the first col
+			int[] coltodelete = new int[selectedCols.length - 1];
+			System.arraycopy(selectedCols, 1, coltodelete, 0,
+					selectedCols.length - 1);
+			table.removeCols(coltodelete);
+
+			// reset col name
+			table.getColNames().setString(selectedCols[0], newname);
+			try {
+				System.out.println(NLS.bind(Messages.MergeCols_5
+						, Arrays.toString(table.getRowNames().asStringsArray())));
+			} catch (StatException e1) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			}
+			;
+			System.out.println(Messages.MergeCols_6);
+			LTeditor.refreshTable();
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeCols.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ImportTable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ImportTable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ImportTable.java	(revision 122)
@@ -0,0 +1,76 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ImportTable.
+ */
+public class ImportTable extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.editor.ImportTable"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (editor instanceof LexicalTableEditor) {
+			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+			FileDialog d = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				d.setFilterPath(LastOpened.getFolder(ID));
+				d.setFileName(LastOpened.getFile(ID));
+			}
+			String path = d.open();
+			if (path != null) {
+				File file = new File(path);
+				LastOpened.set(ID, file.getParent(), file.getName());
+				if (file.getParentFile().exists())
+					LTeditor.importData(file);
+			}
+		}
+		return event;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ImportTable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SaveAs.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SaveAs.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SaveAs.java	(revision 122)
@@ -0,0 +1,98 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a groovy script file in the same thread a the RCP @ author mdecorde.
+ */
+public class SaveAs extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.editor.SaveAs"; //$NON-NLS-1$
+	private static String previousPath;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// the file to execute
+		IWorkbenchPart part = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (part instanceof TxtEditor) {
+			TxtEditor editor = (TxtEditor)part;
+			String text = editor.getTextViewer().getTextWidget().getText();
+		
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+
+			
+			FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			String result = dialog.open();
+			if (result == null) return null;
+			File resultFile = new File(result);
+			LastOpened.set(ID, resultFile.getParent(), resultFile.getName());
+			if (resultFile != null && resultFile.getParentFile().exists()) {
+				previousPath = result;
+				try {
+					OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream(resultFile) , "UTF-8"); //$NON-NLS-1$
+					output.write(text);
+					output.close();
+					
+					EditFile.openfile(resultFile);
+					Explorer.refresh();
+				} catch (Exception e) {
+					System.out.println(Messages.SaveAs_2+resultFile+Messages.PasteFile_4+e);
+				}
+			}
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SaveAs.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SetEncoding.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SetEncoding.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SetEncoding.java	(revision 122)
@@ -0,0 +1,82 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.editors.text.IEncodingSupport;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.TxtEditor;
+
+/**
+ * @author mdecorde
+ * Change the encoding of the currently selected text editor
+ */
+public class SetEncoding extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (page != null && page instanceof TxtEditor) {
+			TxtEditor te = (TxtEditor) page;
+			setEncoding(te);
+		}
+
+		return null;
+	}
+
+	public static void setEncoding(TxtEditor te) {
+		try {
+			IEncodingSupport encodingSupport = (IEncodingSupport) te.getAdapter(IEncodingSupport.class);		
+			String currentEncoding = encodingSupport.getEncoding();
+			String defaultEncoding = encodingSupport.getDefaultEncoding();
+			if (currentEncoding == null) currentEncoding = defaultEncoding;
+			Shell sh = new Shell();
+			InputDialog dlg = new InputDialog(sh,
+					Messages.SetEncoding_0, Messages.SetEncoding_1+currentEncoding+Messages.SetEncoding_2+defaultEncoding, currentEncoding, null);
+			if (dlg.open() == Window.OK) {
+				String newEncoding = dlg.getValue();
+				if (newEncoding != null && newEncoding.trim().length() > 0 && !newEncoding.trim().equals(currentEncoding)) {
+					encodingSupport.setEncoding(newEncoding);
+				}
+			}
+		} catch(Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/SetEncoding.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/CustomizableEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/CustomizableEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/CustomizableEditor.java	(revision 122)
@@ -0,0 +1,80 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import org.eclipse.swt.graphics.Image;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Interface CustomizableEditor.
+ */
+public interface CustomizableEditor {
+	
+	/**
+	 * Sets the name.
+	 *
+	 * @param name the new name
+	 */
+	public void setName(String name);
+	
+	/**
+	 * Sets the icon.
+	 *
+	 * @param titleImage the new icon
+	 */
+	public void setIcon(Image titleImage);
+	
+	/**
+	 * Sets the source.
+	 *
+	 * @param source the new source
+	 */
+	public void setSource(Object source);
+	
+	/**
+	 * Gets the source.
+	 *
+	 * @return the source
+	 */
+	public Object getSource();
+
+	public Object toConcordance();
+	public Object toIndex();
+	public Object toProgression();
+
+	public boolean usingCorpus(Corpus corpus);
+
+	/**
+	 * WIP will use the lazy loading feature
+	 * 
+	 * @param corpus
+	 * @return
+	 */
+	public boolean updateCorpus(Corpus corpus);
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/CustomizableEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/Copy.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/Copy.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/Copy.java	(revision 122)
@@ -0,0 +1,60 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.utils.IOClipboard;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: cuts the selected file 
+ */
+public class Copy extends AbstractHandler {
+
+	public static File toCut;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof ITextSelection) {
+			String o = ((ITextSelection)selection).getText();
+			IOClipboard.write(o);
+		}
+		return null;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/Copy.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeLines.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeLines.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeLines.java	(revision 122)
@@ -0,0 +1,123 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+import org.txm.stat.data.LexicalTable;
+// TODO: Auto-generated Javadoc
+/**
+ * Allow the user to merge Lexical Table lines columns values are added to the
+ * first and the others lines are deleted @ author mdecorde.
+ */
+public class MergeLines extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (editor instanceof LexicalTableEditor) {
+			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
+			int[] selection = LTeditor.getlineTableViewer().getTable()
+					.getSelectionIndices();
+			if (selection.length == 0)
+				return null;
+
+			String newname = ""; //$NON-NLS-1$
+			InputDialog d = new InputDialog(shell, Messages.MergeCols_1,
+					Messages.MergeLines_2, "", null); //$NON-NLS-1$ 
+			if (d.open() == Window.OK)
+				newname = d.getValue();
+			else
+				return null;
+			if (newname.trim().equals("")) //$NON-NLS-1$
+				return null;
+
+			mergeLines(LTeditor, newname, selection);
+
+		}
+		return null;
+	}
+
+	/**
+	 * Merge lines.
+	 *
+	 * @param LTeditor the l teditor
+	 * @param newname the newname
+	 * @param selection the selection
+	 */
+	static public void mergeLines(LexicalTableEditor LTeditor, String newname,
+			int[] selection) {
+		// sum the lines
+		StatusLine.setMessage(Messages.LexicalTableEditor_18);
+		List<double[]> cols = LTeditor.getCols();
+		LexicalTable table = LTeditor.getLexicalTable();
+		TableViewer lineTableViewer = LTeditor.getlineTableViewer();
+		double[] fuz = new double[cols.size()];
+		for (int j = 0; j < cols.size(); j++)
+			fuz[j] = 0;
+		for (int i : selection)
+			for (int j = 0; j < cols.size(); j++)
+				fuz[j] += cols.get(j)[i];
+
+		// set values in the first row of the selection
+		for (int j = 0; j < cols.size(); j++)
+			table.set(selection[0], j, fuz[j]);
+
+		// keep only the first selected line
+		int[] lineToDelete = new int[selection.length - 1];
+		System.arraycopy(selection, 1, lineToDelete, 0, selection.length - 1);
+		//System.out.println("Lines to delete : "+Arrays.toString(lineToDelete));
+		table.removeRows(lineToDelete);
+
+		// reset line name
+		table.getRowNames().setString(selection[0], newname);
+
+		LTeditor.refreshTable();
+		lineTableViewer.getTable().deselectAll();
+		StatusLine.setMessage(""); //$NON-NLS-1$
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/MergeLines.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ExportLexicalTable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ExportLexicalTable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ExportLexicalTable.java	(revision 122)
@@ -0,0 +1,81 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.editor;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ExportTable.
+ */
+public class ExportLexicalTable extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.editor.ExportLexicalTable"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchPart editor = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		if (editor instanceof LexicalTableEditor) {
+			LexicalTableEditor LTeditor = (LexicalTableEditor) editor;
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+			FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			String path = dialog.open();
+			if (path != null) {
+				File file = new File(path);
+				LastOpened.set(ID, file.getParent(), file.getName());
+				if (file.getParentFile().exists()) {
+					LTeditor.exportData(file);
+					EditFile.openfile(path);
+				}
+			}
+		}
+		return event;
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/editor/ExportLexicalTable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteText.java	(revision 122)
@@ -0,0 +1,94 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.TxtEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: execute a selection of code from the TxtEditor. It uses the file extension to execute it as Groovy or R.
+ * 
+ * 
+ * @author mdecorde.
+ */
+public class ExecuteText extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getSelection();
+		if(!(selection instanceof TextSelection)) return null;
+		
+		TextSelection t = (TextSelection) selection;
+		String result = t.getText();
+
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart();
+		if (!(page instanceof TxtEditor)) return null;
+		TxtEditor te = (TxtEditor) page;
+		FileStoreEditorInput input = (FileStoreEditorInput) te.getEditorInput();
+
+		File f = new File(input.getURI().getPath());
+		String scriptfile = f.getAbsolutePath();
+
+		return executeText(result, scriptfile);
+	}
+
+	/**
+	 * Execute text.
+	 *
+	 * @param text the text
+	 * @param scriptfile the scriptfile
+	 * @return the object
+	 */
+	public static Object executeText(final String text, final String scriptfile) {
+		File script = new File(scriptfile);
+		if (script.getName().endsWith(".groovy")) { //$NON-NLS-1$
+			ExecuteGroovyText.executeText(text, scriptfile);
+		} else if (script.getName().endsWith(".R")) { //$NON-NLS-1$
+			ExecuteRText.executeText(text);
+		} else {
+			System.out.println(Messages.ExecuteScript_3+script.getName());
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/BackToTextCommand.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/BackToTextCommand.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/BackToTextCommand.java	(revision 122)
@@ -0,0 +1,18 @@
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+
+public abstract class BackToTextCommand extends AbstractHandler {
+
+	protected String name = "BackToText"; //$NON-NLS-1$
+	@Override
+	public abstract Object execute(ExecutionEvent event) throws ExecutionException;
+	
+	public boolean backToText(ConcordancesEditor editor, Line line) {
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/BackToTextCommand.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DownloadFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DownloadFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DownloadFile.java	(revision 122)
@@ -0,0 +1,84 @@
+package org.txm.rcpapplication.commands;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.txm.rcpapplication.utils.DownloadJobHandler;
+import org.txm.utils.logger.Log;
+
+public class DownloadFile  extends AbstractHandler {
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public static boolean download(URL url, File outputDirectory) {
+		String filename = url.getFile();
+		File outfile = new File(outputDirectory, filename);
+		Boolean done = false;
+
+		BufferedOutputStream writeFile = null;
+		HttpURLConnection connection = null;
+		InputStream input = null;
+		try {
+			connection = (HttpURLConnection)url.openConnection();  
+			connection.connect();  
+
+			// Check if the request is handled successfully  
+			if (connection.getResponseCode() / 100 == 2) { 
+
+				// size in bytes  
+				final int contentLength = connection.getContentLength(); 
+
+				if (contentLength == -1) {
+					System.out.println("Could not get file size");
+				} else {
+					done = false;
+
+					DownloadJobHandler job = new DownloadJobHandler("Download "+url, outfile, contentLength, done);
+					job.schedule();					
+
+					writeFile = new BufferedOutputStream(new FileOutputStream(outfile));
+					input = connection.getInputStream();
+					byte[] buffer = new byte[1024];
+					int read;
+					while ((read = input.read(buffer)) > 0)
+						writeFile.write(buffer, 0, read);
+
+					done = true;
+					job.done();
+				}
+			}
+		} catch (IOException e) {
+			Log.printStackTrace(e);
+			return false;
+		} finally {
+			if (writeFile != null)
+				try {
+					writeFile.close();
+				} catch (IOException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			if (input != null)
+				try {
+					input.close();
+				} catch (IOException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			if (connection != null) connection.disconnect();
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DownloadFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RenameFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RenameFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RenameFile.java	(revision 122)
@@ -0,0 +1,84 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a groovy script file in the same thread a the RCP @ author mdecorde.
+ */
+public class RenameFile extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			Object o = ((IStructuredSelection)selection).getFirstElement();
+
+			if (o instanceof File) {
+				File file = (File)o;
+				rename(file);
+			}
+		}
+		return null;
+	}
+
+	public static void rename(File file) {
+		String newname = file.getName();
+		InputDialog dlg = new InputDialog(new Shell(),
+				Messages.RenameFile_0, Messages.RenameFile_0+newname, newname, null);
+		if (dlg.open() == Window.OK) {
+			newname = dlg.getValue();
+			System.out.println(Messages.RenameFile_2+newname);
+			if (newname.equals(file.getName())) return; // nothing to do
+			if (newname == null || newname.trim().length() == 0) return; // error
+			
+			if (!file.renameTo(new File(file.getParentFile(), newname)))
+				System.out.println(Messages.RenameFile_3+file+Messages.ApplicationWorkbenchAdvisor_37+newname);
+			Explorer.refresh();
+			MacroExplorer.refresh();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RenameFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTestEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTestEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTestEditor.java	(revision 122)
@@ -0,0 +1,84 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.TestEditor;
+import org.txm.rcpapplication.editors.input.TestEditorInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open the concordance editor @ author mdecorde.
+ */
+public class OpenTestEditor extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/** The editor input. */
+	private TestEditorInput editorInput;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		
+		editorInput = new TestEditorInput(sel);
+
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			StatusLine.setMessage(Messages.ComputeConcordance_0);
+			TestEditor testEditor = (TestEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.TestEditor"); //$NON-NLS-1$
+			//conceditor.setFocus(""); //$NON-NLS-1$
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTestEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRScript.java	(revision 122)
@@ -0,0 +1,192 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.RConsole;
+import org.txm.stat.engine.r.RWorkspace;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: Execute a R script file in the same thread a the RCP.
+ *
+ * @author mdecorde
+ */
+public class ExecuteRScript extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteRScript"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String result = ""; //$NON-NLS-1$
+		IWorkbenchWindow aww = HandlerUtil.getActiveWorkbenchWindow(event);
+		IWorkbenchPage page = aww.getActivePage();
+		IViewPart view = page.findView(RConsole.ID);
+		if (view != null && view instanceof RConsole) {
+			((RConsole)view).connectToRWorkspace();
+		}
+		IWorkbenchPart part = page.getActivePart();
+		
+		ISelection selection = page.getSelection();
+		if (part != null && part instanceof TxtEditor) {
+			TxtEditor te = (TxtEditor) part;
+			FileStoreEditorInput input = (FileStoreEditorInput) te
+					.getEditorInput();
+
+			File f = new File(input.getURI().getPath());
+			result = f.getAbsolutePath();
+		} else if (selection != null
+				& selection instanceof IStructuredSelection) {
+			File file = null;
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				file = (File) iterator.next();
+				result = file.getAbsolutePath();
+				break;
+			}
+		}
+
+		if ("" == result) { //$NON-NLS-1$
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			dialog.setFilterExtensions(new String[] { "*.R" }); //$NON-NLS-1$
+
+			IPreferencesService service = Platform.getPreferencesService();
+			String scriptCurrentDir = service.getString(Application.PLUGIN_ID,
+					ScriptPreferencePage.SCRIPT_CURRENT_DIR,
+					ScriptPreferenceInitializer.SCRIPT_CURRENT_DIR_DEFAULT,
+					null);
+
+			dialog.setFilterPath(scriptCurrentDir);
+			result = dialog.open();
+			if (result == null) return null;
+			LastOpened.set(ID, new File(result));
+		}
+
+		executeScript(result);
+		return null;
+	}
+
+	/**
+	 * Execute script.
+	 *
+	 * @param scriptfile the scriptfile
+	 */
+	public static void executeScript(String scriptfile) {
+		File rFile = new File(scriptfile);
+		if (!rFile.exists()) {
+			System.err.println(NLS.bind(Messages.ExecuteScriptR_0, rFile));
+			return;
+		}
+
+		RWorkspace rw = null;
+		try {
+			rw = RWorkspace.getRWorkspaceInstance();
+		} catch (RWorkspaceException e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			return;
+		}
+		boolean initState = rw.isLogging();
+		rw.setLog(true);
+		try {
+			System.out.println(NLS.bind(Messages.ExecuteRScript_1, rFile.getName()));
+			long time = System.currentTimeMillis();
+			//execute a file line per line
+
+			//if (TxmPreferences.getBoolean(RPreferencePage.R_REMOTE)) {
+				BufferedReader reader = new BufferedReader(new FileReader(rFile));// create a file reader
+				String line = reader.readLine();// read next line
+				StringBuffer buffer = new StringBuffer();
+				while(line != null) {
+					buffer.append(line+"\n"); //$NON-NLS-1$
+					line = reader.readLine();//read next line
+				}
+				
+				String allScript = buffer.toString();
+				//if (rw.isLogging() && allScript.length() > 0) RConsole.printUser(allScript);
+
+				//String str = rw.userEval(allScript); // evaluate line in R
+				rw.eval(allScript);
+				//if (str != null && rw.isLogging() && str.length() > 0)
+					//RConsole.printServer(str);
+				reader.close();
+//			} else {
+//				String cmd = "source(\""+rFile.getAbsolutePath().replace("\\", "/")+"\")";
+//				if (rw.isLogging())
+//					RConsole.printUser)(cmd);
+//				String str = rw.userEval(cmd);//evaluate line in R
+//				if (rw.isLogging() && str.length() > 0)
+//					RConsole.printServer(cmd);
+//			}
+			System.out.println(Messages.ExecuteRScript_2+(System.currentTimeMillis()-time)+Messages.ExecuteRScript_3);
+		} catch(Exception e) {
+			System.out.println(NLS.bind(Messages.ExecuteScriptR_1, rFile, e)); 
+			StatusLine.error(NLS.bind(Messages.ExecuteScriptR_1, rFile, e)); 
+			Log.printStackTrace(e);
+		}
+
+		rw.setLog(initState);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTXMUserPreferences.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTXMUserPreferences.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTXMUserPreferences.java	(revision 122)
@@ -0,0 +1,130 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.util.Arrays;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.preference.IPreferenceNode;
+import org.eclipse.jface.preference.PreferenceDialog;
+import org.eclipse.jface.preference.PreferenceManager;
+import org.eclipse.jface.preference.PreferenceNode;
+import org.eclipse.swt.custom.BusyIndicator;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog;
+import org.txm.progression.rcp.preferences.ProgressionPreferencePage;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+import org.txm.rcpapplication.preferences.ConcordancerPreferencePage;
+import org.txm.rcpapplication.preferences.CoocPreferencePage;
+import org.txm.rcpapplication.preferences.DiagnosticPreferencePage;
+import org.txm.rcpapplication.preferences.ExportPreferencePage;
+import org.txm.rcpapplication.preferences.LexicalTablePreferencePage;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.rcpapplication.preferences.ReferencerPreferencePage;
+import org.txm.rcpapplication.preferences.UserPreferencePage;
+import org.txm.specificities.rcp.preferences.SpecificitiesPreferencePage;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OpenTXMUserPreferences.
+ */
+// FIXME: see if this class is still in used
+public class OpenTXMUserPreferences extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		configureWorkspaceSettings();
+		
+		return null;
+	}
+
+
+	/**
+	 * Configure workspace settings.
+	 */
+	protected void configureWorkspaceSettings() {
+
+		IPreferenceNode userNode = new PreferenceNode(UserPreferencePage.ID, new UserPreferencePage());
+		
+		Arrays.toString(userNode.getSubNodes());
+		
+		IPreferenceNode concordanceNode = new PreferenceNode(ConcordancerPreferencePage.ID, new ConcordancerPreferencePage());
+		IPreferenceNode cooccurrencesNode = new PreferenceNode(CoocPreferencePage.ID, new CoocPreferencePage());
+		IPreferenceNode caNode = new PreferenceNode(CAPreferencePage.ID, new CAPreferencePage());
+		IPreferenceNode informationsNode = new PreferenceNode(DiagnosticPreferencePage.ID, new DiagnosticPreferencePage());
+		IPreferenceNode exportNode = new PreferenceNode(ExportPreferencePage.ID, new ExportPreferencePage());
+		IPreferenceNode languageNode = new PreferenceNode(LocalePreferencePage.ID, new LocalePreferencePage());
+//		IPreferenceNode progressionNode = new PreferenceNode(ProgressionPreferencePage.ID, new ProgressionPreferencePage());
+//		IPreferenceNode specifNode = new PreferenceNode(SpecificitiesPreferencePage.ID, new SpecificitiesPreferencePage());
+		IPreferenceNode ltNode = new PreferenceNode(LexicalTablePreferencePage.ID, new LexicalTablePreferencePage());
+		IPreferenceNode refNode = new PreferenceNode(ReferencerPreferencePage.ID, new ReferencerPreferencePage());
+
+		userNode.add(concordanceNode);
+		userNode.add(cooccurrencesNode);
+		userNode.add(caNode);
+		userNode.add(informationsNode);
+		userNode.add(exportNode);
+		userNode.add(languageNode);
+//		userNode.add(progressionNode);
+//		userNode.add(specifNode);
+		userNode.add(ltNode);
+		userNode.add(refNode);
+		
+		PreferenceManager manager = new PreferenceManager();
+		manager.addToRoot(userNode);
+
+		//manager.addTo(, concordanceNode);
+		showPreferencePage(manager);
+	}
+
+	/**
+	 * Show preference page.
+	 *
+	 * @param manager the manager
+	 */
+	protected void showPreferencePage(PreferenceManager manager) {
+		
+
+		final PreferenceDialog dialog = new WorkbenchPreferenceDialog(new Shell(), manager);
+		BusyIndicator.showWhile(Display.getCurrent(), new Runnable() {
+			@Override
+			public void run() {
+				dialog.create();
+				dialog.setMessage(Messages.OpenTXMUserPreferences_0);
+				dialog.open();
+			}
+		});
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenTXMUserPreferences.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyText.java	(revision 122)
@@ -0,0 +1,181 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import groovy.lang.Binding;
+import groovy.lang.GroovyShell;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.codehaus.groovy.control.CompilationFailedException;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+
+// TODO: Auto-generated Javadoc
+/**
+ * execute a selection of Groovy code from the TxtEditor 
+ * 
+ * @author mdecorde.
+ */
+public class ExecuteGroovyText extends AbstractHandler {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
+	 * .ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getSelection();
+		if (!(selection instanceof TextSelection))
+			return null;
+		TextSelection t = (TextSelection) selection;
+		String result = t.getText();
+
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		TxtEditor te = (TxtEditor) page;
+		FileStoreEditorInput input = (FileStoreEditorInput) te.getEditorInput();
+
+		File f = new File(input.getURI().getPath());
+		String scriptfile = f.getAbsolutePath();
+
+		executeText(result, scriptfile);
+		return null;
+	}
+
+	/**
+	 * Execute text.
+	 * 
+	 * @param text
+	 *            the text
+	 * @param scriptfile
+	 *            the scriptfile
+	 * @return the object
+	 */
+	public static Object executeText(final String text, final String scriptfile) {
+		if (!new File(scriptfile).exists()) {
+			System.err.println(NLS.bind(Messages.ExecuteScriptImport_1,
+					scriptfile));
+			return null;
+		}
+		IPreferencesService service = Platform.getPreferencesService();
+		final String scriptRootDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT, null);
+
+		// get current selection of the corpora view
+				final Object corpusViewSelection = CorporaView.getSelection();
+				final Object corpusViewSelections = CorporaView.getSelections();
+				final Object selection = null;
+				final List selections = null;
+				
+		JobHandler jobhandler = new JobHandler("run") { //$NON-NLS-1$
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				// this.setCurrentMonitor(monitor);
+				this.runInit(monitor);
+
+				try {
+					List<File> classPath = new ArrayList<File>();
+					classPath.add(new File(scriptRootDir));
+					classPath.add(new File(scriptfile));
+					classPath.add(new File(scriptfile).getParentFile());
+					classPath.add(new File(".")); //$NON-NLS-1$
+					// System.out.println(classPath);
+					
+					Binding binding = new Binding();
+					//binding.setVariable("editor", page); //$NON-NLS-1$
+					binding.setVariable("selection", selection); //$NON-NLS-1$
+					binding.setVariable("selections", selections); //$NON-NLS-1$
+					binding.setVariable("corpusViewSelection", corpusViewSelection); //$NON-NLS-1$
+					binding.setVariable("corpusViewSelections", corpusViewSelections); //$NON-NLS-1$
+					binding.setProperty("monitor", this); //$NON-NLS-1$
+					//binding.setProperty("gse", gse);
+					GroovyShell shell = new GroovyShell(this.getClass()
+							.getClassLoader(), binding);
+
+					for (File file : classPath) {
+						try {
+							shell.getClassLoader().addURL(file.toURI().toURL());
+							shell.getClassLoader().addClasspath(
+									file.getAbsolutePath());
+						} catch (MalformedURLException e) {
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+							return null;
+						}
+					}
+
+					// try {
+					System.out.println("Executing text selection..."); //$NON-NLS-1$
+					long time = System.currentTimeMillis();
+					shell.evaluate(text);
+					System.out
+							.println("Done: " + (System.currentTimeMillis() - time) + Messages.ExecuteRScript_3); //$NON-NLS-1$
+				} catch (ThreadDeath td) { 
+					return Status.CANCEL_STATUS;
+				} catch (CompilationFailedException e) {
+					System.err.println(e);
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				}
+				return Status.OK_STATUS;
+			}
+		};
+
+		jobhandler.startJob();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/CooccurrencesToConcordances.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/CooccurrencesToConcordances.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/CooccurrencesToConcordances.java	(revision 122)
@@ -0,0 +1,140 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.cooccurrences.Cooccurrence.CLine;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a cooc result to build a concordance @ author mdecorde.
+ */
+public class CooccurrencesToConcordances extends AbstractHandler {
+
+	/** The window. */
+	private static IWorkbenchWindow window;
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/** The editor input. */
+	private static ConcordancesEditorInput editorInput;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		CooccurrencesEditor ceditor = null;
+		IEditorPart editor = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActiveEditor();
+		ceditor = (CooccurrencesEditor) editor;
+		
+		link(ceditor, selection);
+		return null;
+	}
+	
+	/**
+	 * Link.
+	 *
+	 * @param editor the editor
+	 * @param selection the selection
+	 */
+	public static void link(CooccurrencesEditor editor, IStructuredSelection selection)
+	{
+
+		assert (selection.getFirstElement() instanceof CLine);
+
+		Cooccurrence cooc = ((CLine) selection.getFirstElement()).getCooc();
+		
+		int nbProps = cooc.getProperties().size();
+		List<Property> props = cooc.getProperties();
+		List<CLine> list = selection.toList();
+		//System.out.println("Cooc lines "+list);
+
+		String query = "["; //$NON-NLS-1$
+		for (int p = 0; p < nbProps; p++) {
+			query += props.get(p) + "=\""; //$NON-NLS-1$
+			for (int l = 0; l < list.size(); l++) {
+				CLine line = list.get(l);
+				String s = line.props.get(p);
+				s = Query.addBackSlash(s);
+				query += s + "|"; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 1);
+			query += "\" & "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 3);
+		query += "] "; //$NON-NLS-1$
+		
+		int maxempan = Math.max(cooc.getMaxLeft(), cooc.getMaxRight()); 
+		if (cooc.getIncludeXPivot() && maxempan == 0) maxempan = 1;  
+		
+		String maxempanstr = "within " + maxempan + " "; //$NON-NLS-1$ //$NON-NLS-2$
+		if (cooc.getStructure() != null) maxempanstr += cooc.getStructure().getName(); 
+		
+		query = "("+cooc.getQuery()+" []* "+query+") | ("+query+" []* "+cooc.getQuery()+") "+maxempanstr; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+		
+		Corpus corpus = cooc.getCorpus();
+
+		editorInput = new ConcordancesEditorInput(corpus, null);
+
+		IWorkbenchPage page = editor.getEditorSite().getWorkbenchWindow().getActivePage();
+		
+		try {
+			ConcordancesEditor conceditor = (ConcordancesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			conceditor.setQuery(query);
+			conceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/CooccurrencesToConcordances.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToLexicalTable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToLexicalTable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToLexicalTable.java	(revision 122)
@@ -0,0 +1,152 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.ArrayList;
+
+import org.apache.batik.util.gui.CSSMediaPanel.Dialog;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.index.Index;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.stat.engine.r.data.LexicalTableImpl;
+import org.txm.stat.engine.r.data.QuantitativeDataStructureImpl;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class IndexToLexicalTable.
+ */
+public class IndexToLexicalTable extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	private static Shell shell;
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		if (!Toolbox.isStatEngineInitialized()) {
+			System.out.println(Messages.IndexToLexicalTable_1);
+			return null;
+		}
+		
+		// TODO Auto-generated method stub
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+		.getShell();
+		return null;
+	}
+
+	/**
+	 * Builds the lexical table.
+	 *
+	 * @param voc the voc
+	 * @param from the from
+	 * @param to the to
+	 * @return true, if successful
+	 */
+	public boolean buildLexicalTable(Index voc, int from, int to) {
+		LexicalTable table;
+		Partition partition;
+		Property property;
+
+		if (!voc.isComputedWithPartition()) {
+			
+			System.out.println(Messages.IndexToLexicalTable_0);
+			StatusLine.setMessage(Messages.IndexToLexicalTable_0);
+			return false;
+		}
+
+		System.out.println(Messages.ComputeLexicalTable_3);
+		ArrayList<String> choices = new ArrayList<String>();
+		choices.add(Messages.ComputeLexicalTable_16);
+		choices.add(Messages.ComputeLexicalTable_12);
+		ListSelectionDialog dialog = new ListSelectionDialog(shell, 
+				choices, new ArrayContentProvider(), new LabelProvider(), 
+				Messages.ComputeLexicalTable_13);
+		
+		int ret = dialog.open();
+		//System.out.println("ret= "+ret);
+		if (ret == Dialog.OK_OPTION) {
+			
+		} else {
+			return false;
+		}
+		
+		try {
+			table = LexicalTableImpl.createLexicalTableImpl(voc, QuantitativeDataStructureImpl
+					.createSymbole(LexicalTableImpl.class));
+			partition = voc.getPartition();
+			property = voc.getProperties().get(0);
+		} catch (RWorkspaceException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return false;
+		}
+
+		try {
+			IWorkbenchWindow window = PlatformUI.getWorkbench()
+					.getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+			LexicalTableEditorInput editorInput = new LexicalTableEditorInput(
+					table, partition, property);
+			StatusLine.setMessage(Messages.ComputeLexicalTable_10);
+			page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+		} catch (PartInitException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} 
+
+		return true;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToLexicalTable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToCooccurrence.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToCooccurrence.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToCooccurrence.java	(revision 122)
@@ -0,0 +1,161 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.index.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.CooccurrenceEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a index to compute a concordance 
+ * @author mdecorde.
+ */
+public class IndexToCooccurrence extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchWindow window;
+		IStructuredSelection selection;
+		CooccurrenceEditorInput editorInput;
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		assert (selection.getFirstElement() instanceof Line);
+
+		String query = getQuery(selection);
+
+		// System.out.println(query);
+
+		IndexEditor voceditor = (IndexEditor) HandlerUtil
+				.getActiveWorkbenchWindow(event).getActivePage()
+				.getActivePart();
+		Corpus corpus = voceditor.getCorpus();
+
+		editorInput = new CooccurrenceEditorInput(corpus);
+
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor"); //$NON-NLS-1$
+			conceditor.setFocus(query);
+			conceditor.compute();
+		} catch (Exception e) {
+			System.out.println(Messages.IndexToCooccurrence_0);
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param voceditor the voceditor
+	 * @param selection the selection
+	 * @return the object
+	 */
+	public static Object link(IndexEditor voceditor,
+			IStructuredSelection selection) {
+		assert (selection.getFirstElement() instanceof Line);
+		String query = getQuery(selection);
+		if (query.length() == 0)
+			return null;
+		Corpus corpus = voceditor.getCorpus();
+		CooccurrenceEditorInput editorInput = new CooccurrenceEditorInput(corpus);
+
+		IWorkbenchPage page = voceditor.getEditorSite().getWorkbenchWindow()
+				.getActivePage();
+		try {
+			CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor"); //$NON-NLS-1$
+			conceditor.setFocus(query);
+			conceditor.compute();
+		} catch (Exception e) {
+			System.out.println(Messages.IndexToCooccurrence_0);
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	private static String getQuery(IStructuredSelection selection) {
+		String query = ""; //$NON-NLS-1$
+
+		Line line = (Line) selection.getFirstElement();
+		int nbToken = line.getUnitsProperties().get(0).size();
+		int nbProps = line.getProperties().size();
+		int nbLines = selection.size();
+		List<Line> lines = selection.toList();
+		List<Property> props = line.getProperties();
+		for (int t = 0; t < nbToken; t++) {
+			query += "["; //$NON-NLS-1$
+			for (int p = 0; p < nbProps; p++) {
+				query += props.get(p) + "=\""; //$NON-NLS-1$
+				for (int l = 0; l < nbLines; l++) {
+					line = lines.get(l);
+					List<List<String>> values = line.getUnitsProperties();
+					String s = values.get(p).get(t);
+					s = Query.addBackSlash(s);
+					query += s + "|"; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 1);
+				query += "\" & "; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 3);
+			query += "] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToCooccurrence.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToProgression.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToProgression.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToProgression.java	(revision 122)
@@ -0,0 +1,157 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.index.Line;
+import org.txm.progression.rcp.dialogs.ProgressionDialog;
+import org.txm.progression.rcp.handlers.ComputeProgression;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a index to compute a Progression
+ * @author mdecorde
+ */
+public class IndexToProgression extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/** The editor input. */
+	private ConcordancesEditorInput editorInput;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		assert (selection.getFirstElement() instanceof Line);
+
+		List<Query> queries = getQueries(selection);
+
+		IndexEditor voceditor = (IndexEditor) HandlerUtil
+				.getActiveWorkbenchWindow(event).getActivePage()
+				.getActivePart();
+		Corpus corpus = voceditor.getCorpus();
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		final ProgressionDialog d = new ProgressionDialog(shell, corpus,
+				queries);
+		int code = d.open();
+		if (code == Window.OK) {
+			ComputeProgression.computeProgression(d);
+		}
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param voceditor the voceditor
+	 * @param selection the selection
+	 * @return the object
+	 */
+	public static Object link(IndexEditor voceditor,
+			IStructuredSelection selection) {
+		// window = HandlerUtil.getActiveWorkbenchWindow(event);
+		// selection = (IStructuredSelection)
+		// HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getSelection();
+
+		assert (selection.getFirstElement() instanceof Line);
+
+		List<Query> queries = getQueries(selection);
+		if (queries.size() == 0)
+			return null;
+		// IndexEditor voceditor = (IndexEditor)
+		// HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart();
+		Corpus corpus = voceditor.getCorpus();
+
+		Shell shell = voceditor.getSite().getShell();
+		final ProgressionDialog d = new ProgressionDialog(shell, corpus,
+				queries);
+		int code = d.open();
+		if (code == Window.OK) {
+			ComputeProgression.computeProgression(d);
+		}
+		return null;
+	}
+
+	/**
+	 * Gets the queries.
+	 *
+	 * @param selection the selection
+	 * @return the queries
+	 */
+	public static List<Query> getQueries(IStructuredSelection selection) {
+		List<Line> lines = selection.toList();
+		List<Query> queries = new ArrayList<Query>();
+		for (Line line : lines) {
+			String query = ""; //$NON-NLS-1$
+			int nbToken = line.getUnitsProperties().get(0).size();
+			int nbProps = line.getProperties().size();
+			List<List<String>> values = line.getUnitsProperties();
+			List<Property> props = line.getProperties();
+			for (int t = 0; t < nbToken; t++) {
+				query += "["; //$NON-NLS-1$
+				for (int p = 0; p < nbProps; p++) {
+					query += props.get(p) + "=\""; //$NON-NLS-1$
+					String s = values.get(p).get(t);
+					s = Query.addBackSlash(s);
+					query += s;
+					query += "\" & "; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 3);
+				query += "] "; //$NON-NLS-1$
+			}
+			queries.add(new Query(query));
+		}
+		return queries;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToProgression.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ReferencerToConc.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ReferencerToConc.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ReferencerToConc.java	(revision 122)
@@ -0,0 +1,140 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.ReferencePattern;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.referencer.Referencer.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.rcpapplication.editors.referencer.ReferencerEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ReferencerToConc.
+ */
+public class ReferencerToConc extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil
+		.getActiveWorkbenchWindow(event).getActivePage().getSelection();
+
+		ReferencerEditor refeditor = (ReferencerEditor) HandlerUtil
+		.getActiveWorkbenchWindow(event).getActivePage()
+		.getActivePart();
+
+		return link(refeditor, selection);
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param refeditor the refeditor
+	 * @param iSelection the selection
+	 * @return the object
+	 */
+	public static Object link(ReferencerEditor refeditor, ISelection iSelection)
+	{
+		IStructuredSelection selection = (IStructuredSelection) iSelection;
+		String query = getQuery(selection);
+		if (query.length() == 0)
+			return null;
+		Corpus corpus = refeditor.getCorpus();
+		ConcordancesEditorInput editorInput = new ConcordancesEditorInput(
+				corpus, null);
+
+		IWorkbenchPage page = refeditor.getEditorSite().getWorkbenchWindow()
+		.getActivePage();
+		try {
+			ConcordancesEditor conceditor = (ConcordancesEditor) page
+			.openEditor(editorInput,
+					"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			conceditor.setQuery(query);
+			ReferencePattern rp = new ReferencePattern();
+			for(Property p : refeditor.getReferencer().getPattern())
+				rp.addProperty(p);
+			conceditor.setRefViewPattern(rp);
+			conceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	private static String getQuery(IStructuredSelection selection) {
+		String query = ""; //$NON-NLS-1$
+
+		Line fline = (Line) selection.getFirstElement();
+		Referencer ref = fline.getReferencer();
+		int nbToken = 1;
+
+		List<Line> lines = selection.toList();
+
+		Property prop = ref.getProperty();
+		for (int t = 0; t < nbToken; t++) 
+		{
+			query += "["+prop + "=\""; //$NON-NLS-1$ //$NON-NLS-2$
+
+			for (Line line : lines) {
+				String s = line.getPropValue();
+				s = Query.addBackSlash(s);
+				query += s + "|"; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 1);
+			query += "\"] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ReferencerToConc.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/TextToConcordance.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/TextToConcordance.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/TextToConcordance.java	(revision 122)
@@ -0,0 +1,103 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.IEditionEditor;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.tokenizer.TokenizerClasses;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the ITextSelection to compute a concordance
+ * 
+ * @author mdecorde.
+ */
+public class TextToConcordance extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		//System.out.println("Call TextToConcordance");
+		IWorkbenchWindow window;
+		ConcordancesEditorInput editorInput;
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		//selection = HandlerUtil.getCurrentSelection(event);
+		
+		IEditorPart editor = window.getActivePage().getActiveEditor();
+
+		if (editor instanceof IEditionEditor) {
+			
+			//System.out.println(((TXMBrowser)editor).getWordIDsSelection());
+			String query = ((IEditionEditor)editor).getTextSelection();
+			if (query.length() == 0) {
+				System.out.println("No text selection. Aborting.");
+				return null;
+			}
+			query = fixQuery(query);
+			
+			Corpus corpus = ((IEditionEditor)editor).getCorpus();
+			editorInput = new ConcordancesEditorInput(corpus, null);
+
+			IWorkbenchPage page = window.getActivePage();
+			try {
+				ConcordancesEditor conceditor = (ConcordancesEditor) page
+						.openEditor(editorInput,
+								"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+				conceditor.setQuery(query);
+				conceditor.compute();
+			} catch (PartInitException e) {
+				System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+			}
+		}
+		return null;
+	}
+	
+	public static String fixQuery(String query) {
+		query = "\""+query.replaceAll("\"", "\\\"");//.replaceAll("("+TokenizerClasses.regPunct+")", " $1 ");
+		query = query.replaceAll(" +", "\" \"")+"\"";
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/TextToConcordance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ConcordanceToIndex.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ConcordanceToIndex.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ConcordanceToIndex.java	(revision 122)
@@ -0,0 +1,133 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a index to compute a concordance @ author mdecorde.
+ */
+public class ConcordanceToIndex extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param concordanceEditor the concordance editor
+	 * @param selection the selection
+	 * @return the object
+	 */
+	public static Object link(ConcordancesEditor concordanceEditor,
+			IStructuredSelection selection) {
+		if (selection.getFirstElement() == null) return null;
+		assert (selection.getFirstElement() instanceof Line);
+		String query = getQuery(selection);
+		if (query.length() == 0) return null;
+		Corpus corpus = concordanceEditor.getCorpus();
+		IndexEditorInput editorInput = new IndexEditorInput(corpus);
+
+		IWorkbenchPage page = concordanceEditor.getEditorSite()
+				.getWorkbenchWindow().getActivePage();
+		try {
+			IndexEditor voceditor = (IndexEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+			voceditor.setFocus(query);
+			voceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	private static String getQuery(IStructuredSelection selection) {
+		String query = ""; //$NON-NLS-1$
+
+		Line line = (Line) selection.getFirstElement();
+		List<Property> props = line.getConcordance().getKeywordViewProperties();
+		int nbToken = line.getKeywordsViewProperties().get(props.get(0)).size();
+		int nbProps = line.getKeywordsAnalysisProperty().size();
+		int nbLines = selection.size();
+		List<Line> lines = selection.toList();
+
+		for (int t = 0; t < nbToken; t++) {
+			query += "["; //$NON-NLS-1$
+			for (int p = 0; p < nbProps; p++) {
+				Property property = props.get(p);
+				query += props.get(p) + "=\""; //$NON-NLS-1$
+				for (int l = 0; l < nbLines; l++) {
+					line = lines.get(l);
+					Map<Property, List<String>> values = line
+							.getKeywordsViewProperties();
+					String s = values.get(property).get(t);
+					//s = s.replace(".","\\.").replace("?","\\?").replace("+","\\+").replace("\"","\\\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
+					s = Query.addBackSlash(s);
+					query += s + "|"; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 1);
+				query += "\" & "; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 3);
+			query += "] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ConcordanceToIndex.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToConcordance.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToConcordance.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToConcordance.java	(revision 122)
@@ -0,0 +1,213 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.io.IOException;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.index.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.rcpapplication.swt.dialog.TXMMessageBox;
+import org.txm.searchengine.cqp.MemCqiClient;
+import org.txm.searchengine.cqp.clientExceptions.UnexpectedAnswerException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.QueryResult;
+import org.txm.searchengine.cqp.corpus.StructuralUnitProperty;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.searchengine.cqp.serverException.CqiServerError;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a index to compute a concordance @ author mdecorde.
+ */
+public class IndexToConcordance extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchWindow window;
+		IStructuredSelection selection;
+		ConcordancesEditorInput editorInput;
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		assert (selection.getFirstElement() instanceof Line);
+
+		String query = getQuery(selection);
+
+		// System.out.println(query);
+
+		IndexEditor voceditor = (IndexEditor) HandlerUtil
+				.getActiveWorkbenchWindow(event).getActivePage()
+				.getActivePart();
+
+		//		if (!(voceditor instanceof DictionnaryEditor)) {
+		//			// show alert
+		//		}
+
+		Corpus corpus = voceditor.getCorpus();
+
+		editorInput = new ConcordancesEditorInput(corpus, null);
+
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			ConcordancesEditor conceditor = (ConcordancesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			conceditor.setQuery(query);
+			conceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param voceditor the voceditor
+	 * @param selection the selection
+	 * @return the object
+	 */
+	public static Object link(IndexEditor voceditor,
+			IStructuredSelection selection) {
+		assert (selection.getFirstElement() instanceof Line);
+		String query = getQuery(selection);
+		if (query.length() == 0)
+			return null;
+		Corpus corpus = voceditor.getCorpus();
+		ConcordancesEditorInput editorInput = new ConcordancesEditorInput(
+				corpus, null);
+//		try {
+//			System.out.println("Compute indexResult query: "+voceditor.getQuery());
+//			QueryResult indexResult = corpus.query(voceditor.getQuery(), "Index", false);
+//			System.out.println("N result: "+indexResult.getNMatch());
+//
+//			System.out.println("Compute indexOccResult query: "+query);
+//			QueryResult indexOccResult = corpus.query(new Query(query), "IndexOcc", false);
+//			System.out.println("N result: "+indexOccResult.getNMatch());
+//
+//			String queryname = "Q"+Corpus.getNextQueryCounter();
+//			String interQueryString = queryname+"=intersect "+indexResult.getQualifiedCqpId()+" "+indexOccResult.getQualifiedCqpId()+";"; 
+//			System.out.println("Compute inter query: "+interQueryString);
+//			((MemCqiClient)Toolbox.getCqiClient()).query(interQueryString);
+//			
+//			QueryResult inter = new QueryResult(queryname, queryname, corpus, new Query(interQueryString));
+//			System.out.println("indexResult size: "+indexResult.getNMatch());
+//			System.out.println("indexOccResult size: "+indexOccResult.getNMatch());
+//			System.out.println("inter size: "+inter.getNMatch());
+//			
+//			QueryResult inter2 = corpus.query(new Query("intersect "+indexResult.getQualifiedCqpId()+" "+indexOccResult.getQualifiedCqpId()), "Q"+Corpus.getNextQueryCounter(),false);
+//			System.out.println("inter2 size: "+inter2.getNMatch());
+//		} catch (Exception e) {
+//			e.printStackTrace();
+//			try {
+//				System.out.println("CQP error: "+Toolbox.getCqiClient().getLastError());
+//			} catch (Exception e1) {
+//				e1.printStackTrace();
+//			}
+//		}
+//		
+//		return null;
+
+		IWorkbenchPage page = voceditor.getEditorSite().getWorkbenchWindow()
+				.getActivePage();
+		try {
+			ConcordancesEditor conceditor = (ConcordancesEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			conceditor.setQuery(query);
+			conceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+
+	/**
+	 * Gets the query.
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	private static String getQuery(IStructuredSelection selection) {
+		String query = ""; //$NON-NLS-1$
+
+		Line line = (Line) selection.getFirstElement();
+		int nbToken = line.getUnitsProperties().get(0).size();
+		int nbProps = line.getProperties().size();
+		int nbLines = selection.size();
+		List<Line> lines = selection.toList();
+		List<Property> props = line.getProperties();
+		for (int t = 0; t < nbToken; t++) {
+			query += "["; //$NON-NLS-1$
+			for (int p = 0; p < nbProps; p++) {
+				if (props.get(p) instanceof StructuralUnitProperty) {
+					query += "_."+((StructuralUnitProperty)props.get(p)).getFullName() + "=\""; //$NON-NLS-1$ //$NON-NLS-2$
+				} else {
+					query += props.get(p) + "=\""; //$NON-NLS-1$
+				}
+				for (int l = 0; l < nbLines; l++) {
+					line = lines.get(l);
+					List<List<String>> values = line.getUnitsProperties();
+					String s = values.get(p).get(t);
+					s = Query.addBackSlash(s);
+					query += s + "|"; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 1);
+				query += "\" & "; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 3);
+			query += "] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/IndexToConcordance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToIndex.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToIndex.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToIndex.java	(revision 122)
@@ -0,0 +1,68 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * @author mdecorde.
+ * calls the editor's method toIndex
+ */
+public class ToIndex extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+		IEditorPart editor = page.getActiveEditor();
+		if (editor instanceof CustomizableEditor) {
+			return link((CustomizableEditor) editor);
+		}
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param editor
+	 * @return the object
+	 */
+	public static Object link(CustomizableEditor editor) {
+		return editor.toIndex();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToIndex.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/LexiconToIndex.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/LexiconToIndex.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/LexiconToIndex.java	(revision 122)
@@ -0,0 +1,144 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.index.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * use the lines of a index to compute a concordance.
+ *
+ * @author mdecorde
+ */
+public class LexiconToIndex extends AbstractHandler {
+
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		DictionnaryEditor dictEditor = null;
+		IEditorPart editor = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActiveEditor();
+		dictEditor = (DictionnaryEditor) editor;
+		
+		link(dictEditor, selection);
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param dictEditor the dict editor
+	 * @param selection the selection
+	 * @return the object
+	 */
+	public static Object link(DictionnaryEditor dictEditor,
+			IStructuredSelection selection) {
+		assert (selection.getFirstElement() instanceof Line);
+		String query = getQuery(selection);
+		if (query.length() == 0)
+			return null;
+		Corpus corpus = dictEditor.getCorpus();
+		IndexEditorInput editorInput = new IndexEditorInput(corpus);
+
+		IWorkbenchPage page = dictEditor.getEditorSite()
+				.getWorkbenchWindow().getActivePage();
+		try {
+			IndexEditor voceditor = (IndexEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+			voceditor.setFocus(query);
+			voceditor.compute();
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+
+		return null;
+	}
+
+	/**
+	 * Gets the query.
+	 *
+	 * @param selection the selection
+	 * @return the query
+	 */
+	private static String getQuery(IStructuredSelection selection) {
+		String query = ""; //$NON-NLS-1$
+
+		Line line = (Line) selection.getFirstElement();
+		List<Property> props = line.getProperties();
+		int nbToken = line.getUnitsProperties().get(0).size();
+		int nbProps = props.size();
+		int nbLines = selection.size();
+		List<Line> lines = selection.toList();
+
+		for (int t = 0; t < nbToken; t++) {
+			query += "["; //$NON-NLS-1$
+			for (int p = 0; p < nbProps; p++) {
+
+				query += props.get(p) + "=\""; //$NON-NLS-1$
+				for (int l = 0; l < nbLines; l++) {
+					line = lines.get(l);
+					List<List<String>> values = line.getUnitsProperties();
+					String s = values.get(p).get(t);
+					s = Query.addBackSlash(s);
+					query += s + "|"; //$NON-NLS-1$
+				}
+				query = query.substring(0, query.length() - 1);
+				query += "\" & "; //$NON-NLS-1$
+			}
+			query = query.substring(0, query.length() - 3);
+			query += "] "; //$NON-NLS-1$
+		}
+		query = query.substring(0, query.length() - 1);
+		return query;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/LexiconToIndex.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToProgression.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToProgression.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToProgression.java	(revision 122)
@@ -0,0 +1,68 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * @author mdecorde.
+ * calls the editor's method toProgression
+ */
+public class ToProgression extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+		IEditorPart editor = page.getActiveEditor();
+		if (editor instanceof CustomizableEditor) {
+			return link((CustomizableEditor) editor);
+		}
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param editor
+	 * @return the object
+	 */
+	public static Object link(CustomizableEditor editor) {
+		return editor.toProgression();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToProgression.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Commands which create link between 2 textometry function</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToConcordance.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToConcordance.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToConcordance.java	(revision 122)
@@ -0,0 +1,68 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.link;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+
+// TODO: Auto-generated Javadoc
+/**
+ * calls the editor's method "toConcordance"
+ * @author mdecorde.
+ */
+public class ToConcordance extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+		IEditorPart editor = page.getActiveEditor();
+		if (editor instanceof CustomizableEditor) {
+			return link((CustomizableEditor) editor);
+		}
+		return null;
+	}
+
+	/**
+	 * Link.
+	 *
+	 * @param editor
+	 * @return the object
+	 */
+	public static Object link(CustomizableEditor editor) {
+		return editor.toConcordance();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/link/ToConcordance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Common commands</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/OpenEmptyEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/OpenEmptyEditor.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/OpenEmptyEditor.java	(revision 122)
@@ -0,0 +1,91 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.R;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class OpenEmptyEditor.
+ */
+public class OpenEmptyEditor extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		File txmhome = new File(TxmPreferences.getString(Toolbox.USER_TXM_HOME, "")); //$NON-NLS-1$
+		File scripts = new File(txmhome, "scripts"); //$NON-NLS-1$
+		scripts.mkdir();
+		if (!scripts.exists())
+		{
+			System.out.println(NLS.bind(Messages.OpenEmptyEditor_2, scripts));
+			return null;
+		}
+		
+		File Rscripts = new File(scripts, "R"); //$NON-NLS-1$
+		Rscripts.mkdir();
+		if (!Rscripts.exists())
+		{
+			System.out.println(NLS.bind(Messages.OpenEmptyEditor_2, Rscripts));
+			return null;
+		}
+		
+		int nosession = TxmPreferences.getInt(ScriptPreferencePage.NO_SESSION, 1);
+		
+		File temp = new File(Rscripts, "session"+nosession+".R"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		//create newt session no
+		nosession++;
+		TxmPreferences.set(ScriptPreferencePage.NO_SESSION, nosession);
+		
+		try {
+			temp.createNewFile();
+		} catch (IOException e) {
+			System.out.println(Log.toString(e));
+			return null;
+		}
+		
+		EditFile.openfile(temp.getAbsolutePath());
+		
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/OpenEmptyEditor.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ShowSvgHelp.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ShowSvgHelp.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ShowSvgHelp.java	(revision 122)
@@ -0,0 +1,65 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.R;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class ShowSvgHelp.
+ */
+public class ShowSvgHelp extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		MessageDialog.openInformation(new Shell(), Messages.ShowSvgHelp_0, 
+				Messages.ShowSvgHelp_1 +
+				Messages.ShowSvgHelp_2 +
+				Messages.ShowSvgHelp_3 +
+				Messages.ShowSvgHelp_4 +
+				Messages.ShowSvgHelp_5);
+		return event;
+		
+		/*
+		 * <li>Faire glisser : Shif t+Left Mouse+drag</li>
+<li>Zoom avant et arrière : Shif t+Right Mouse+drag</li>
+<li>Zoom par sélection : Ctrl+Left Mouse+drag</li>
+<li>Rotation : Ctrl+Right Mouse+drag</li>
+<li>Retour à la vue initiale : F5</li>
+		 */
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ShowSvgHelp.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/CopySelection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/CopySelection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/CopySelection.java	(revision 122)
@@ -0,0 +1,70 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.R;
+
+import java.lang.reflect.Method;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class CopySelection.
+ */
+public class CopySelection extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		copyFirst(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy first.
+	 *
+	 * @param selection the selection
+	 */
+	public static void copyFirst(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+		String text = ""; //$NON-NLS-1$
+		try {
+			Method getname = selectedItem.getClass().getMethod("getSymbol"); //$NON-NLS-1$
+			text = (String)getname.invoke(selectedItem);
+		} catch (Exception e2) {}
+		org.txm.rcpapplication.utils.IOClipboard.write(text);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/CopySelection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/Submit.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/Submit.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/Submit.java	(revision 122)
@@ -0,0 +1,113 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.R;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.ExecuteRScript;
+import org.txm.rcpapplication.commands.ExecuteRText;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.utils.JobHandler;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class Submit. Deprecated due to ExecuteScript command
+ */
+@Deprecated
+public class Submit extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(final ExecutionEvent event) throws ExecutionException {
+
+		IWorkbenchWindow wb = HandlerUtil.getActiveWorkbenchWindow(event);
+		IWorkbenchPage ap = wb.getActivePage();
+		IWorkbenchPart editor = ap.getActivePart();
+
+		if (editor == null)
+			return null;
+
+		if (editor instanceof TxtEditor) {
+			final TxtEditor Teditor = (TxtEditor) editor;
+			final ISelection selection = Teditor.getSelectionProvider().getSelection();
+			JobHandler job = new JobHandler(Messages.Submit_0, true) {
+
+				@Override
+				protected IStatus run(final IProgressMonitor monitor) {
+					this.syncExec(new Runnable() {
+						@Override
+						public void run() {
+							try {
+								if (selection == null) {
+									Teditor.doSave(monitor);
+									File script = Teditor.getEditedFile();
+									ExecuteRScript.executeScript(script.getAbsolutePath());
+								} else {
+									if (selection instanceof TextSelection) {
+										TextSelection t = (TextSelection) selection;
+										String result = t.getText();
+
+										if (result.length() > 0) {
+											ExecuteRText.executeText(result);
+										} else {
+											Teditor.doSave(monitor);
+											FileStoreEditorInput input = (FileStoreEditorInput) Teditor.getEditorInput();
+											File script = new File(input.getURI().getPath());
+											ExecuteRScript.executeScript(script.getAbsolutePath());
+										}
+									}
+								}
+							}
+							catch(Throwable e){org.txm.rcpapplication.utils.Logger.printStackTrace(e);}
+						}
+					});
+					monitor.done();
+					return Status.OK_STATUS;
+				}
+			};
+			job.schedule();
+
+		}
+		return event;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/Submit.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ReconnectToRWorkspace.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ReconnectToRWorkspace.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ReconnectToRWorkspace.java	(revision 122)
@@ -0,0 +1,55 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.R;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.views.RConsole;
+
+public class ReconnectToRWorkspace extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchPage wbp = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+		IWorkbenchPart view = wbp.getActivePartReference().getPart(true);
+		//System.out.println("Active part: "+view);
+		if (view instanceof RConsole) {
+			//System.out.println("Rconsole view!");
+			RConsole console = (RConsole)view;
+			console.reconnectToRWorkspace();
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/R/ReconnectToRWorkspace.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestCommands.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestCommands.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestCommands.java	(revision 122)
@@ -0,0 +1,391 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.tests;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
+import org.txm.doc.Zip;
+import org.txm.functions.Reference;
+import org.txm.functions.ReferencePattern;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.diagnostic.Diagnostic;
+import org.txm.functions.index.Index;
+import org.txm.functions.progression.Progression;
+import org.txm.functions.specificities.Specificites;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Part;
+import org.txm.searchengine.cqp.corpus.Partition;
+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.Subcorpus;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.stat.data.LexicalTable;
+import org.txm.utils.DeleteDir;
+
+public class TestCommands extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+
+		JobHandler jobhandler = new JobHandler("Testing TXM") {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+				File outDir = new File(txmhome, "results/TESTS");
+				outDir.mkdirs();
+				try {
+					monitor.beginTask("Testing commands", 100);
+					JobsTimer.start();
+					
+					DeleteDir.deleteDirectory(outDir);
+					outDir.mkdir();
+					
+					Query query1 = new Query("\"school.*\"");
+					Query query2 = new Query("[enpos=\"MD\"]");
+					Query query3 = new Query("\".\\p{P}\"");
+					
+					//1 MAINCORPUS
+					monitor.subTask("CORPUS: BROWN");
+					MainCorpus corpus = CorpusManager.getCorpusManager().getCorpus("BROWN");
+					if (corpus == null) {
+						System.out.println("Can't continue, the BROWN corpus is missing");
+						System.out.println("You can download it at https://sourceforge.net/projects/txm/files/corpora/brown/");
+						return Status.CANCEL_STATUS;
+					}
+					try {
+						corpus.getStructuralUnit("text");
+					} catch(Exception testE) {
+						System.out.println("Can't continue, the BROWN corpus is missing");
+						System.out.println("You can download it at https://sourceforge.net/projects/txm/files/corpora/brown/");
+						return Status.CANCEL_STATUS;
+					}
+					StructuralUnit textUnit = corpus.getStructuralUnit("text");
+					StructuralUnitProperty text_type = textUnit.getProperty("type");
+					StructuralUnitProperty text_id = textUnit.getProperty("id");
+					StructuralUnit sUnit = corpus.getStructuralUnit("s");
+					Property word = corpus.getProperty("word");
+					Property enpos = corpus.getProperty("enpos");
+					Property enlemma = corpus.getProperty("enlemma");			
+					
+					monitor.subTask("INFORMATIONS");
+					Diagnostic diag = new Diagnostic(corpus, 10);
+					diag.stepGeneralInfos();
+					diag.stepLexicalProperties();
+					diag.stepStructuralUnits();
+					diag.toHTML(new File(outDir, "diag.html"));
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("LEXICON: prop=word");
+					Lexicon lex1 = corpus.getLexicon(word);
+					lex1.toTxt(new File(outDir, "lex_word.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("LEXICON: prop=enlemma");
+					Lexicon lex2 = corpus.getLexicon(enlemma);
+					lex2.toTxt(new File(outDir, "lex_enlemma.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("INDEX: prop=word query="+query2);
+					Index voc1 = new Index(corpus, query2, Arrays.asList(word));
+					voc1.getAllLines();
+					voc1.toTxt(new File(outDir, "voc_query2_word.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("INDEX: prop=enlemma/enpos query="+query2);
+					Index voc2 = new Index(corpus, query2, Arrays.asList(enlemma, enpos));
+					voc2.getAllLines();
+					voc2.toTxt(new File(outDir, "voc_query2_enlemma_enpos.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("INDEX: prop=enlemma/enpos query="+query3);
+					Index voc3 = new Index(corpus, query3, Arrays.asList(enlemma));
+					voc3.getAllLines();
+					voc3.toTxt(new File(outDir, "voc_query3_unicode.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("CONCORDANCE: props=enpos/word/enlemma view props=enlemma/word/enpos query="+query1);
+					ArrayList<Property> refPropList = new ArrayList<Property>();
+					refPropList.add(text_id);
+					refPropList.add(text_type);
+					Concordance conc = new Concordance(corpus, query1, 
+							Arrays.asList(enpos), Arrays.asList(enlemma), Arrays.asList(word), 
+							Arrays.asList(enlemma), Arrays.asList(enpos), Arrays.asList(word), 
+							new ReferencePattern(refPropList), new ReferencePattern(text_id), 10, 30);
+					conc.getLines(0, conc.getNLines());
+					conc.toTxt(new File(outDir, "conc.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("COOCCURRENCE1: sentence window=3 1 1 5 query="+query1);
+					Cooccurrence cooc = new Cooccurrence(corpus, query1, Arrays.asList(word),
+							sUnit, 3, 1, 1, 5, 1, 1, 1, false, false);
+					cooc.process();
+					cooc.toTxt(new File(outDir, "cooc_s.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("COOCCURRENCE2: word window=20 1 1 20 query="+query1);
+					Cooccurrence cooc2 = new Cooccurrence(corpus, query1, Arrays.asList(word),
+							null, 20, 1, 1, 20, 1, 1, 1, false, false);
+					cooc2.process();
+					cooc2.toTxt(new File(outDir, "cooc_20.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PROGRESSION: no structures queries="+query1+" "+query2);
+					Progression rep = new Progression(corpus, Arrays.asList(query1, query2), null,
+							null, null, true, false, false, 1, false, 1.0f);
+					rep.process();
+					rep.toSvg(new File(outDir, "progression_acc.svg"));
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("REFERENCES: prop=word query="+query1);
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					//2- SUBCORPUS FICTION
+					monitor.subTask("SUBCORPUS: text_type=FICTION.*");
+					Subcorpus fiction = corpus.createSubcorpusWithQueryString(textUnit, text_type, "FICTION.*", "fiction");
+					StructuralUnit fiction_textUnit = fiction.getStructuralUnit("text");
+					StructuralUnitProperty fiction_text_type = fiction_textUnit.getProperty("type");
+					StructuralUnitProperty fiction_text_id = fiction_textUnit.getProperty("id");
+					StructuralUnit fiction_sUnit = fiction.getStructuralUnit("s");
+					Property fiction_word = fiction.getProperty("word");
+					Property fiction_enpos = fiction.getProperty("enpos");
+					Property fiction_enlemma = fiction.getProperty("enlemma");		
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-INFORMATIONS");
+					Diagnostic fiction_diag = new Diagnostic(fiction, 10);
+					fiction_diag.stepGeneralInfos();
+					fiction_diag.stepLexicalProperties();
+					fiction_diag.stepStructuralUnits();
+					fiction_diag.toHTML(new File(outDir, "fiction_diag.html"));
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-LEXICON: prop=word");
+					Lexicon fiction_lex1 = fiction.getLexicon(fiction_word);
+					fiction_lex1.toTxt(new File(outDir, "fiction_lex_word.tsv"), "UTF-8", "\t", "");
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-LEXICON: prop=enlemma");
+					Lexicon fiction_lex2 = fiction.getLexicon(fiction_enlemma);
+					fiction_lex2.toTxt(new File(outDir, "fiction_lex_enlemma.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(1); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-INDEX: prop=word query="+query2);
+					Index fiction_voc1 = new Index(fiction, query2, Arrays.asList(fiction_word));
+					fiction_voc1.getAllLines();
+					fiction_voc1.toTxt(new File(outDir, "fiction_voc_query2_word.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-INDEX: prop=enlemma+enpos query="+query2);
+					Index fiction_voc2 = new Index(fiction, query2, Arrays.asList(fiction_enlemma, fiction_enpos));
+					fiction_voc2.getAllLines();
+					fiction_voc2.toTxt(new File(outDir, "fiction_voc_query2_enlemma_enpos.tsv"), "UTF-8", "\t", "");
+					
+					monitor.worked(2); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-CONCORDANCE: sort props=enpos/word/enlemma view props=enlemma/enpos/word query="+query1);
+					ArrayList<Property> fiction_refPropList = new ArrayList<Property>();
+					refPropList.add(fiction_text_id);
+					refPropList.add(fiction_text_type);
+					Concordance fiction_conc = new Concordance(fiction, query1, 
+							Arrays.asList(fiction_enpos), Arrays.asList(fiction_enlemma), Arrays.asList(fiction_word), 
+							Arrays.asList(fiction_enlemma), Arrays.asList(fiction_word), Arrays.asList(fiction_enpos), 
+							new ReferencePattern(fiction_refPropList), new ReferencePattern(fiction_text_id), 10, 30);
+					fiction_conc.getLines(0, fiction_conc.getNLines());
+					fiction_conc.toTxt(new File(outDir, "fiction_conc.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-COOCCURRENCE: sUnit prop=word query="+query1);
+					Cooccurrence fiction_cooc = new Cooccurrence(fiction, query1, Arrays.asList(fiction_word),
+							fiction_sUnit, 3, 1, 1, 5, 1, 1, 1, false, false);
+					fiction_cooc.process();
+					fiction_cooc.toTxt(new File(outDir, "fiction_cooc_s.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-COOCCURRENCE2: prop=word query="+query1);
+					Cooccurrence fiction_cooc2 = new Cooccurrence(fiction, query1, Arrays.asList(fiction_word),
+							null, 20, 1, 1, 20, 1, 1, 1, false, false);
+					fiction_cooc2.process();
+					fiction_cooc2.toTxt(new File(outDir, "fiction_cooc_20.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("FICTION-SPECIFS: prop=word");
+					SpecificitesResult fiction_specif = Specificites.specificites(corpus, fiction, fiction_word, 100);
+					fiction_specif.toTxt(new File(outDir, "fiction_specif.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+							
+					//3- PARTITION
+					monitor.subTask("PARTITION: text_type");
+					Partition partition = corpus.createPartition(textUnit, text_type);
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-INDEX: prop=enlemma query="+query2);
+					Index partition_voc = new Index(partition, query2, Arrays.asList(enlemma));
+					partition_voc.getAllLines();
+					partition_voc.toTxt(new File(outDir, "partition_voc_query2_enlemma.tsv"), "UTF-8", "\t", "");
+					
+					monitor.subTask("PARTITION-LEXICALTABLE: prop=enlemma");
+					LexicalTable table = partition.getLexicalTable(enlemma, 2);
+					table.toTxt(new File(outDir, "partition_table.csv"), "UTF-8", "\t","");
+							
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-LEXICALTABLE-SPECIFS");
+					SpecificitesResult table_specif = Specificites.specificites(table, 100);
+					table_specif.toTxt(new File(outDir, "partition_table_specif.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-LEXICALTABLE-AFC");
+					CA ca = new CA(table);
+					ca.stepCompute();
+					ca.setShown(true, true);
+					ca.getSingularValues();
+					ca.getColsCoords(); 
+					ca.getColsDist();
+					ca.getColsInertia();
+					ca.getColsMass();
+					ca.getRowsCoords();
+					ca.getRowsDist();
+					ca.getRowsInertia();
+					ca.getRowsMass();
+					ca.toTxt(new File(outDir, "partition_table_afc.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-SPECIFS: prop=enpos");
+					SpecificitesResult partition_specif = Specificites.specificites(partition, enpos, new ArrayList<Part>(), 2, 100);
+					partition_specif.toTxt(new File(outDir, "partition_specif.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-AFC: prop=enlemma fmin=2 vmax=1000");
+					CA partition_ca = new CA(partition, enlemma, 2, 1000);
+					partition_ca.stepLexicalTable();
+					partition_ca.stepSortTableLexical();
+					partition_ca.stepCompute();
+					partition_ca.setShown(true, true);
+					partition_ca.getSingularValues();
+					partition_ca.getColsCoords(); 
+					partition_ca.getColsDist();
+					partition_ca.getColsInertia();
+					partition_ca.getColsMass();
+					partition_ca.getRowsCoords();
+					partition_ca.getRowsDist();
+					partition_ca.getRowsInertia();
+					partition_ca.getRowsMass();
+					partition_ca.toTxt(new File(outDir, "partition_afc.csv"), "UTF-8", "\t", "");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+					
+					monitor.subTask("PARTITION-AFC-CAH");
+					CAH cah = new CAH(partition_ca, true, CAH.getDefaultMethod(), CAH.getDefaultMetric(), 5, true);
+					cah.stepCompute();
+					cah.toTxt(new File(outDir, "partition_afc_cah.csv"), "UTF-8");
+					
+					monitor.worked(5); if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} 
+				
+//				try {
+//					//4-VALIDATION
+//					monitor.beginTask("Testing commands: validation", 100);
+//					monitor.worked(100);
+//				} catch (Exception e) {
+//					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+//				} 
+				String date = DateFormat.getDateInstance(DateFormat.SHORT, Locale.UK).format(new java.util.Date());
+				File zipFile = new File(outDir.getParentFile(), "TESTS"+date+".zip");
+				File zipFile2 = new File(outDir.getParentFile(), "TESTS.odt");
+				zipFile.delete();
+				zipFile2.delete();
+				monitor.beginTask("Testing commands: compressing results in "+zipFile.getAbsolutePath(), 100);
+				System.out.println("Testing commands: compressing results in "+zipFile.getAbsolutePath());
+				try {
+					Zip.compress(outDir, zipFile2);
+					zipFile2.renameTo(zipFile);
+				} catch (IOException e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					return Status.CANCEL_STATUS;
+				}
+				monitor.done();
+				JobsTimer.stopAndPrint();
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestCommands.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/NilsTest.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/NilsTest.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/NilsTest.java	(revision 122)
@@ -0,0 +1,119 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.tests;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.IJobManager;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.utils.logger.Log;
+
+public class NilsTest extends AbstractHandler {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
+	 * .ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		JobHandler jobhandler = new JobHandler("Testing TXM") { //$NON-NLS-1$
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				// this.setCurrentMonitor(monitor);
+				this.runInit(monitor);
+				JobsTimer.start();
+				int ii = 0;
+				try {
+					// while (ii++ < 999999999) {
+					// ii = 0;
+					// }
+					monitor.beginTask("Testing commands", 100); //$NON-NLS-1$
+					monitor.subTask("P1"); //$NON-NLS-1$
+					//Thread.sleep(3000);
+					monitor.worked(30);// if (monitor.isCanceled()) return
+										// Status.CANCEL_STATUS;
+
+					this.acquireSemaphore();
+					System.out.println("test");
+//					Logger.addFlag(Logger.STATUSLINE);
+				//	Logger.severe("test severe std");
+//					Logger.addFlag(Logger.MSGBOX);
+//					Logger.removeFlag(Logger.CONSOLE);
+//					Logger.severe("severe status line", Logger.STATUSLINE);
+//					Logger.info("info msgbox", Logger.MSGBOX | Logger.CONSOLE);
+//					Logger.info("info std");
+//					Logger.warning("warn all", Logger.STATUSLINE | Logger.MSGBOX);
+					Logger.info("NilsTest running", Logger.STATUSLINE_REMAIN); //$NON-NLS-1$
+					throw new Exception("test exception");
+					/*
+					try {
+						monitor.subTask("P2"); //$NON-NLS-1$
+						Thread.sleep(1000);
+						monitor.worked(30);// if (monitor.isCanceled()) return
+											// Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						System.out.println("catch p2"); //$NON-NLS-1$
+					}
+
+					this.releaseSemaphore();
+
+					monitor.subTask("P3"); //$NON-NLS-1$
+					Thread.sleep(1000);
+					monitor.worked(40);// if (monitor.isCanceled()) return
+										// Status.CANCEL_STATUS;
+										 * 
+				*/
+				} catch (InterruptedException e) {
+					System.out.println("Thread interrupted"); //$NON-NLS-1$
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} catch (ThreadDeath e) {
+					// org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					return Status.CANCEL_STATUS;
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/NilsTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestImports.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestImports.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestImports.java	(revision 122)
@@ -0,0 +1,234 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.tests;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Locale;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.doc.Zip;
+import org.txm.importer.DomUtils;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.commands.ExecuteImportScript;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+
+public class TestImports extends AbstractHandler {
+
+	public static String ID = "org.txm.rcpapplication.commands.tests.TestImports";
+
+	static HashMap<String, String> scripts = new HashMap<String, String>();
+	static {
+		scripts.clear();
+		scripts.put("cnr", "discoursLoader.groovy"); // cnr +csv
+		scripts.put("hyperbase", "hyperbaseLoader.groovy"); // old hyperbase
+		scripts.put("alceste", "alcesteLoader.groovy"); // alceste
+		scripts.put("alceste2", "alcesteLoader.groovy"); // alceste
+		scripts.put("bfm", "bfmLoader.groovy"); // xml-tei-bfm
+		scripts.put("frantext", "frantextLoader.groovy"); // xml-tei-bfm
+		scripts.put("xml", "xmlLoader.groovy"); // xml
+		scripts.put("factiva", "factivaLoader.groovy"); // factiva
+		scripts.put("xml", "xmlLoader.groovy"); // <w attr="" atrt2="">
+		scripts.put("xmlws", "xmlLoader.groovy"); // <w attr="" atrt2="">
+		scripts.put("txt", "quickLoader.groovy"); // txt + csv
+		scripts.put("transcriber", "transcriberLoader.groovy"); // echant EVS +
+																// csv
+		scripts.put("xmltxm", "xmltxmLoader.groovy"); // domi
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
+	 * .ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		final File scriptsdir = new File(txmhome, "scripts/import");
+		// final File sourcesdir = new
+		// File(System.getProperty("user.home"),"xml/TESTS");
+		final int delta = 100 / scripts.size();
+
+		System.out
+				.println("Please select the directory containing source directories for the following import modules :");
+		System.out.println(scripts.toString());
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN);
+
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+		} else {
+			dialog.setFilterPath(System.getProperty("user.home"));
+		}
+		String path = dialog.open();
+
+		if (path == null)
+			return null;
+
+		final File sourcesdir = new File(path);
+
+		if (!scriptsdir.exists()) {
+			System.out.println("Error: TXM is not well installed.");
+			System.out.println("Cannot find TXM import scripts directory: "
+					+ scriptsdir);
+			return null;
+		}
+
+		if (!sourcesdir.exists()) {
+			System.out.println("Cannot find test sources directory: "
+					+ sourcesdir);
+			return null;
+		}
+
+		System.out
+				.println("Select the directory containing the source directories : "
+						+ scripts.keySet());
+		JobHandler jobhandler = new JobHandler(
+				"Testing TXM - select the directory containing the source dierctories") {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+					File outDir = new File(txmhome, "results/TESTS-imports");
+					outDir.mkdirs();
+					ArrayList<File> missings = new ArrayList<File>();
+					try {
+						monitor.beginTask("Testing imports", 100);
+						JobsTimer.start();
+
+						for (String filename : scripts.keySet()) {
+							final File source = new File(sourcesdir, filename);
+							final File script = new File(scriptsdir,
+									scripts.get(filename));
+
+							if (source.exists()) {
+								final BaseParameters params = new BaseParameters(
+										new File(source, "import.xml"));
+								params.load();
+								params.rootDir = source.getAbsolutePath(); // fix
+																			// source
+																			// dir
+								params.saveToElement();
+								
+								this.acquireSemaphore();
+								boolean returnSave = params.save();
+								this.releaseSemaphore();
+								
+								if (!returnSave) {
+									System.out
+											.println("ERROR: could not save import configuration: "
+													+ params.paramFile);
+									continue;
+								}
+								System.out.println("USING ROOT DIR : "
+										+ params.rootDir);
+								this.syncExec(new Runnable() {
+									public void run() {
+										new ExecuteImportScript()
+												.executeScript(script
+														.getAbsolutePath(),
+														params.paramFile);
+									}
+								});
+							} else {
+								System.out
+										.println("Warning: Missing source directory: "
+												+ source);
+								missings.add(source);
+							}
+							monitor.worked(delta);
+							if (monitor.isCanceled())
+								return Status.CANCEL_STATUS;
+						}
+					} catch (Exception e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						return Status.CANCEL_STATUS;
+					}
+
+					String date = BaseParameters.dateformat.format(new java.util.Date());
+					File zipFile = new File(outDir.getParentFile(),
+							"TESTS_imports_" + date + ".zip");
+					File zipFile2 = new File(outDir.getParentFile(),
+							"TESTS_imports_.odt");
+					this.acquireSemaphore();
+					zipFile.delete();
+					zipFile2.delete();
+					this.releaseSemaphore();
+					if (missings.size() > 0)
+						System.out.println("Missing sources directories: "
+								+ missings);
+					monitor.beginTask(
+							"Testing imports: results will be compressed in "
+									+ zipFile.getAbsolutePath(), 100);
+					System.out
+							.println("Testing imports: results will be compressed in "
+									+ zipFile.getAbsolutePath());
+					try {
+						this.acquireSemaphore();
+						Zip.compress(outDir, zipFile2);
+						zipFile2.renameTo(zipFile);
+						this.releaseSemaphore();
+					} catch (IOException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						return Status.CANCEL_STATUS;
+					}
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+
+		jobhandler.startJob();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/tests/TestImports.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateMacro.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateMacro.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateMacro.java	(revision 122)
@@ -0,0 +1,209 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+import org.txm.utils.AsciiUtils;
+import org.txm.utils.IOUtils;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: creates a macro template
+ */
+public class CreateMacro extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.CreateMacro"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		//get scripts dir
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptRootDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT, null);
+		File currentRootDir = new File(scriptRootDir, "macro"); //$NON-NLS-1$
+
+		//if selection is a file, get its path
+		String dir = null;
+		IWorkbenchWindow activeW = HandlerUtil.getActiveWorkbenchWindow(event);
+		if (activeW != null) {
+			IWorkbenchPage activeP = activeW.getActivePage();
+			if (activeP != null) {
+				ISelection selection = activeP.getSelection();
+				if (selection != null && selection instanceof IStructuredSelection) {
+					IStructuredSelection sel = (IStructuredSelection) selection;
+					Object obj = sel.getFirstElement();
+					if (obj instanceof File) {
+						File current = ((File)obj);
+						if (current.isDirectory()) {
+							dir = current.getAbsolutePath();
+						} else {
+							dir = current.getParent();
+						}
+					}
+				}
+			}
+		}
+
+		if (dir == null) {
+			dir = currentRootDir.getAbsolutePath();
+		}
+		
+		//ask new file name
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		InputDialog dialog = new InputDialog(shell, Messages.CreateMacro_0, Messages.CreateMacro_1, "", null); //$NON-NLS-1$
+		
+		dialog.open();
+		String name = dialog.getValue();
+		
+		return createMacro(dir, name);
+	}
+	
+	public static boolean createMacro(String dir, String name) {
+		if (name == null) return false;
+		if (dir == null) return false;
+		
+		int idx = dir.indexOf("scripts/macro/org/txm/macro/");
+		String packagePath = "org.txm.macro";
+		if (idx > 0) {
+			String sub = dir.substring(idx + "scripts/macro/org/txm/macro/".length(), dir.length()).replaceAll("/", ".").replaceAll("\\\\", ".");
+			if (sub.trim().length() > 0) {
+				packagePath += "."+sub;
+			}
+		}
+		name = name.replaceAll("\\p{Punct}", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		name = AsciiUtils.convertNonAscii(name);
+		name = name.substring(0, 1).toUpperCase()+name.substring(1);
+		StringBuffer tmp = new StringBuffer();
+		for (int i = 0 ; i < name.length() ; i++) {
+			if (name.charAt(i) == ' ') {
+				i++;
+				if (i <name.length() )
+					tmp.append((""+name.charAt(i)).toUpperCase()); //$NON-NLS-1$
+			} else {
+				tmp.append(name.charAt(i));
+			}
+		}
+		name = tmp.toString();
+		if (name == null) return false;
+
+		//create the new file
+		File newfile = new File(dir, name+"Macro.groovy"); //$NON-NLS-1$
+		LastOpened.set(ID, newfile.getParent(), newfile.getName());
+		if (!newfile.exists() && newfile.getParentFile().canWrite()) {
+			try {
+				if (newfile.createNewFile()) {
+					System.out.println(NLS.bind(Messages.CreateFile_1, newfile.getAbsolutePath()));
+					
+					PrintWriter writer = IOUtils.getWriter(newfile, "UTF-8"); //$NON-NLS-1$
+					writer.println("// STANDARD DECLARATIONS"); //$NON-NLS-1$
+					writer.println("package "+packagePath); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("import org.kohsuke.args4j.*"); //$NON-NLS-1$
+					writer.println("import groovy.transform.Field"); //$NON-NLS-1$
+					writer.println("import org.txm.rcpapplication.swt.widget.parameters.*"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("// BEGINNING OF PARAMETERS"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("// Declare each parameter here"); //$NON-NLS-1$
+					writer.println("// (available widget types: Query, File, Folder, String, Text, Boolean, Integer, Float and Date)"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"query\", usage=\"an example query\", widget=\"Query\", required=true, def='[pos=\"V.*\"]')"); //$NON-NLS-1$
+					writer.println("//def query"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"file\", usage=\"an example file\", widget=\"File\", required=true, def=\"C:/Temp/foo.txt\")"); //$NON-NLS-1$
+					writer.println("//def file"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"folder\", usage=\"an example folder\", widget=\"Folder\", required=false, def=\"C:/Temp\")"); //$NON-NLS-1$
+					writer.println("//def folder"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"date\", usage=\"an example date\", widget=\"Date\", required=false, def=\"1984-09-01\")"); //$NON-NLS-1$
+					writer.println("//def date"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"integer\", usage=\"an example integer\", widget=\"Integer\", required=false, def=\"42\")"); //$NON-NLS-1$
+					writer.println("//def integer"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"floatValue\", usage=\"an example float\", widget=\"Float\", required=false, def=\"42.42\")"); //$NON-NLS-1$
+					writer.println("//def floatValue"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"string\", usage=\"an example string\", widget=\"String\", required=false, def=\"hello world!\")"); //$NON-NLS-1$
+					writer.println("//def string"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"longString\", usage=\"an example longString\", widget=\"Text\", required=false, def=\"hello world!\")"); //$NON-NLS-1$
+					writer.println("//def longString"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("//@Field @Option(name=\"bool\", usage=\"an example boolean\", widget=\"Boolean\", required=false, def=\"true\")"); //$NON-NLS-1$
+					writer.println("//def bool"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("// Open the parameters input dialog box"); //$NON-NLS-1$
+					writer.println("if (!ParametersDialog.open(this)) return;"); //$NON-NLS-1$
+					writer.println(""); //$NON-NLS-1$
+					writer.println("// END OF PARAMETERS"); //$NON-NLS-1$ 
+					writer.println(""); //$NON-NLS-1$
+					writer.println("println \"corpora selection: \"+corpusViewSelection"); //$NON-NLS-1$
+					writer.close();
+					
+					EditFile.openfile(newfile);
+					//Explorer.refresh();
+					MacroExplorer.refresh();
+				}
+			} catch (IOException e) {
+				System.out.println(e.getLocalizedMessage());
+				return false;
+			}
+		}
+		
+		
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateMacro.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditFile.java	(revision 122)
@@ -0,0 +1,116 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.utils.logger.Log;
+
+/**
+ * Open a file in the TxtEditor
+ * 
+ * @author mdecorde.
+ */
+public class EditFile extends AbstractHandler {
+
+	public static final String ID = EditFile.class.getCanonicalName(); //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+
+		FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		} else {
+			dialog.setFilterPath(txmhome);
+		}
+		if (dialog.open() == null) return null;
+		String filepath = dialog.getFilterPath() + "/" + dialog.getFileName(); //$NON-NLS-1$
+		LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+		openfile(filepath);
+
+		return null;
+	}
+
+	/**
+	 * Open a file in TXM TxtEditor.
+	 *
+	 * @param filepath the filepath
+	 */
+	static public void openfile(File file) {
+		if (file.isDirectory())
+			return;
+		try {
+			IFileStore fileOnLocalDisk = EFS.getLocalFileSystem().getStore(file.toURI());
+
+			FileStoreEditorInput editorInput = new FileStoreEditorInput(fileOnLocalDisk);
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			IEditorPart a = page.openEditor(editorInput, TxtEditor.ID, true);
+			TxtEditor editor = (TxtEditor) a;
+		} catch (Exception e) {
+			Log.printStackTrace(e);
+		}
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 */
+	static public void openfile(String filepath) {
+		openfile(new File(filepath));
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRText.java	(revision 122)
@@ -0,0 +1,107 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.TextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.views.RConsole;
+import org.txm.stat.engine.r.RWorkspace;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: execute a selection of R code from the TxtEditor.
+ *
+ * @author mdecorde
+ */
+public class ExecuteRText extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getSelection();
+		if (selection == null) return null;
+		if (!(selection instanceof TextSelection)) return null;
+
+		TextSelection t = (TextSelection) selection;
+		String result = t.getText();
+
+		executeText(result);
+		return null;
+	}
+
+	/**
+	 * Execute text.
+	 *
+	 * @param text the text
+	 * @return the object
+	 */
+	public static Object executeText(String text) {
+		RWorkspace rw = null;
+		try {
+			rw = RWorkspace.getRWorkspaceInstance();
+		} catch (RWorkspaceException e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			return null;
+		}
+		boolean initState = rw.isLogging();
+		rw.setLog(true);
+
+		try {
+			System.out.println(Messages.ExecuteRText_0);
+			long time = System.currentTimeMillis();
+			//execute a file line per line
+
+			//String str = rw.userEval(text);//evaluate line in R
+			rw.eval(text);
+//			if (str != null && rw.isLogging() && str.length() > 0)
+//				RConsole.printServer(str);
+			RWorkspace.appendtoEvalLog(text);
+
+			System.out.println(Messages.ExecuteRScript_2+(System.currentTimeMillis()-time)+Messages.ExecuteRText_2); 
+		} catch(Exception e) {
+			System.out.println(NLS.bind(Messages.ExecuteRText_1, text, Log.toString(e))); 
+			StatusLine.error(NLS.bind(Messages.ExecuteRText_1, text, Log.toString(e))); 
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		rw.setLog(initState);
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteRText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyMacro.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyMacro.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyMacro.java	(revision 122)
@@ -0,0 +1,121 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: execute a Macro (Groovy script that opens an UI for parameters)
+ */
+public class ExecuteGroovyMacro extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteMacro"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// the file to execute
+		String result = ""; //$NON-NLS-1$
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (page != null && page instanceof TxtEditor) {
+			TxtEditor te = (TxtEditor) page;
+			selection = HandlerUtil.getActiveWorkbenchWindow(event)
+					.getActivePage().getSelection();
+			FileStoreEditorInput input = (FileStoreEditorInput) te
+					.getEditorInput();
+
+			File f = new File(input.getURI().getPath());
+			result = f.getAbsolutePath();
+		} else if (selection != null
+				& selection instanceof IStructuredSelection) {
+			File file = null;
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				file = (File) iterator.next();
+				result = file.getAbsolutePath();
+				break;
+			}
+		}
+
+		if (result == "") { //$NON-NLS-1$
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			dialog.setFilterExtensions(new String[] { "*.groovy" }); //$NON-NLS-1$
+
+			IPreferencesService service = Platform.getPreferencesService();
+			String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+
+			dialog.setFilterPath(scriptRootDir);
+			result = dialog.open();
+			if (result == null) return null;
+			LastOpened.set(ID, new File(result));
+		}
+
+		execute(result, page, selection);
+		return null;
+	}
+	
+	public static void execute(String scriptpath, IWorkbenchPart page, ISelection selection) {
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+		File currentRootDir = new File(scriptRootDir, "macro"); //$NON-NLS-1$
+		
+		ExecuteGroovyScript.executeScript(currentRootDir, scriptpath, page, selection, false);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyMacro.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/InitializeKnowledgeRepository.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/InitializeKnowledgeRepository.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/InitializeKnowledgeRepository.java	(revision 122)
@@ -0,0 +1,77 @@
+package org.txm.rcpapplication.commands.annotation;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.rcpapplication.swt.dialog.UsernamePasswordDialog;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+public class InitializeKnowledgeRepository extends AbstractHandler {
+
+	public static final String ID = InitializeKnowledgeRepository.class.getCanonicalName();
+	
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) return null;
+		IStructuredSelection selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof MainCorpus))
+			return null;
+		
+		MainCorpus corpus = (MainCorpus) s;
+		return get(corpus);
+	}
+	
+	/**
+	 * Use this method to set eventual login+password needed by SQL knowledge repositories
+	 * 
+	 * @param corpus
+	 * @return
+	 */
+	public static List<KnowledgeRepository> get(MainCorpus corpus) {
+		List<KnowledgeRepository> ret = new ArrayList<KnowledgeRepository>();
+		
+		for (String kr_name : corpus.getKnowledgeRepositoryNames()) {
+			KnowledgeRepository kr = corpus.getKnowledgeRepository(kr_name);
+			if (kr == null) {
+				System.out.println("Warning '"+kr_name+"' KR is null. Please check KR configuration.");
+				continue;
+			}
+			//System.out.println("IS CREDENTIAL NEEDED: "+kr_name+" "+corpus);
+			boolean[] must = KnowledgeRepositoryManager.mustLoginToKnowledgeRepository(kr_name, corpus);
+			
+			if (must[0] || must[1]) {
+				System.out.println("Asking credentials for "+kr_name+" KR login");
+				UsernamePasswordDialog dialog = new UsernamePasswordDialog(Display.getCurrent().getActiveShell(), must, kr_name);
+				
+				if (dialog.open() == UsernamePasswordDialog.OK) {
+					System.out.println("Temporary save login+password");
+					System.setProperty(KnowledgeRepository.LOGIN_KEY+kr_name, dialog.getUser());
+					System.setProperty(KnowledgeRepository.PASSWORD_KEY+kr_name, dialog.getPassword());
+				} else {
+					System.out.println("Cancelling login for "+kr_name+" KR");
+					continue; // ignoring
+				}
+			}
+			
+			if (!kr.checkConnection()) {
+				System.out.println("Error during connection to '"+kr_name+"'. Please check login, password and Internet connection.");
+			} else {
+				ret.add(kr);
+			}
+		}
+		return ret;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/InitializeKnowledgeRepository.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/ExportStandoff.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/ExportStandoff.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/ExportStandoff.java	(revision 122)
@@ -0,0 +1,150 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.annotation;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.annotation.AnnotationManager;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open a file in the TxtEditor @ author mdecorde.
+ */
+public class ExportStandoff extends AbstractHandler {
+
+	public static final String ID = ExportStandoff.class.getCanonicalName();
+	
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) return null;
+		IStructuredSelection selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof MainCorpus)) {
+			System.out.println("Selection is not a Corpus. Aborting.");
+			return null;
+		}
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		//FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+		FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+		MainCorpus corpus = (MainCorpus) s;
+		String path = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		dialog.setFilterPath(path); //To set a specific path
+		dialog.setFileName(corpus.getName()+"_annotations.zip");
+		dialog.setFilterExtensions(new String[]{"*.zip"});
+		if (dialog.open() != null) {
+			StatusLine.setMessage(Messages.ExportAnnotation_0);
+			String filepath = dialog.getFilterPath();
+			String filename = dialog.getFileName();
+
+			final File resultZipFile = new File(filepath, filename);
+			LastOpened.set(ID, resultZipFile.getParent(), resultZipFile.getName());
+			
+			exportAnnotations(corpus, resultZipFile);
+		}
+		return corpus;
+	}
+
+	public static boolean exportAnnotations(final MainCorpus corpus, final File resultZipFile) {
+		final AnnotationManager am = corpus.getAnnotationManager();
+		if (am == null) return true; // nothing to do
+		
+		JobHandler saveJob = SaveAnnotations.save(corpus);
+		if (saveJob != null)
+			try {
+				saveJob.join();
+			} catch (InterruptedException e1) {
+				// TODO Auto-generated catch block
+				e1.printStackTrace();
+			}
+		
+		JobHandler jobhandler = new JobHandler("Exporting annotations as standoff for "+corpus) { //$NON-NLS-1$
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					monitor.beginTask("Exporting annotations as standoff", 100);
+					
+					monitor.setTaskName("Writing annotations in XML-TXM stand-off files");
+					/*if (MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), "Before saving annotations...", "All editors using this corpus are going to be closed. Continue ?")) {
+						return false;
+					}*/
+					
+					///lecture de tous les fichiers un par un
+					///chaque annotation est récupérée et selon l'annotateur, écrite dans un fichier spécifique à celui-ci
+
+					if (!am.exportAnnotationsToSyMoGIH(resultZipFile)) {
+						System.out.println("Error while saving stand-off annotations (see logs above).");
+						return Status.CANCEL_STATUS;
+					}
+					monitor.worked(30);
+					
+					System.out.println("Done.");
+
+				} catch(Exception e) {
+					System.out.println("Error while saving annotations: "+e);
+					Log.printStackTrace(e);
+					return Status.CANCEL_STATUS;
+				}
+				return Status.OK_STATUS;
+			}
+		};
+
+		jobhandler.startJob(true);
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/ExportStandoff.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/SaveAnnotations.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/SaveAnnotations.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/SaveAnnotations.java	(revision 122)
@@ -0,0 +1,104 @@
+package org.txm.rcpapplication.commands.annotation;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.AnnotationManager;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.CloseEditorsUsing;
+import org.txm.rcpapplication.commands.workspace.UpdateCorpus;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
+
+public class SaveAnnotations extends AbstractHandler {
+
+	public static final String ID = SaveAnnotations.class.getCanonicalName();
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) return null;
+		IStructuredSelection selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof MainCorpus))
+			return null;
+		MainCorpus corpus = (MainCorpus) s;
+		save(corpus);
+
+		return corpus;
+	}
+
+	public static JobHandler save(final MainCorpus corpus) {
+		final AnnotationManager am = corpus.getAnnotationManager();
+		if (am == null) return null; // nothing to do
+		
+		if (!corpus.needToSaveAnnotations()) {
+			return null;
+		}
+
+		//System.out.println("DISPLAY="+Display.getDefault());
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {
+				if (!MessageDialog.openConfirm(Display.getDefault().getActiveShell(), "Before saving annotations...", "All editors using this corpus are going to be closed. Continue ?")) {
+					return;
+				}
+			}
+		});
+
+		JobHandler jobhandler = new JobHandler("Saving annotations of "+corpus) { //$NON-NLS-1$
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					monitor.beginTask("Saving annotations", 100);
+
+					monitor.setTaskName("writing annotations in XML-TXM files");
+					boolean rez = am.saveAnnotations();
+					monitor.worked(30);
+
+					if (rez) {
+						System.out.println("Annotations are saved in XML-TXM files. Updating corpus indexes and editions");
+
+						monitor.setTaskName("updating corpus indexes and editions");
+						if (UpdateCorpus.update(corpus) != null) {
+							monitor.worked(50);
+							this.syncExec(new Runnable() {
+								public void run() {CorporaView.refreshObject(corpus);}
+							});
+						} else {
+							monitor.worked(50);
+							System.out.println("Fail to update corpus. Aborting");
+							System.out.println("Fix XML-TXM files and call command 'UpdateCorpus'");
+						}
+					} else {
+						System.out.println("Error while saving annotations (see logs above).");
+					}
+
+				} catch(Exception e) {
+					System.out.println("Error while saving annotations: "+e);
+					Log.printStackTrace(e);
+					return Status.CANCEL_STATUS;
+				}
+				return Status.OK_STATUS;
+			}
+		};
+
+		jobhandler.startJob(true);
+
+		return jobhandler;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/annotation/SaveAnnotations.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenBiblio.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenBiblio.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenBiblio.java	(revision 122)
@@ -0,0 +1,142 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.rcpapplication.swt.dialog.ComboDialog;
+import org.txm.searchengine.cqp.corpus.Corpus;
+// TODO: Auto-generated Javadoc
+/**
+ * Open a text edition from: a main corpus : the first text of the maincorpus a
+ * sub-corpus : the first text of the subcorpus a partition : the user must
+ * choose one of the text used in the partition @ author mdecorde.
+ */
+public class OpenBiblio extends AbstractHandler {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.base.OpenBiblio"; //$NON-NLS-1$
+
+	/** The lastopenedfile. */
+	public static String lastopenedfile;
+
+	/** The textids. */
+	private ArrayList<String> textids;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+
+		if (selection.getFirstElement() instanceof Corpus) {
+			Corpus corpus = (Corpus) selection.getFirstElement();
+
+			textids = new ArrayList<String>(corpus.getTextsID());
+			if (textids.size() == 0)
+			{
+				System.out.println(NLS.bind(Messages.OpenBiblio_1, corpus.getName()));
+				return null;
+			}
+
+			ComboDialog dialog = new ComboDialog(shell, Messages.OpenBiblio_2, textids, textids.get(0));
+			if (dialog.open() == Window.OK)
+			{
+				String textid = dialog.getSelectedValue();
+				openBiblio(corpus, textid);
+			}
+		}
+		else if (selection.getFirstElement() instanceof Text)
+		{
+			Text text = (Text) selection.getFirstElement();
+			openBiblio(text);
+		}
+		return null;
+	}
+
+	/**
+	 * Open biblio.
+	 *
+	 * @param base the base
+	 * @param textid the textid
+	 * @return the object
+	 */
+	public Object openBiblio(Corpus corpus, String textid ) {
+
+		Text text = corpus.getMainCorpus().getText(textid);
+		if (text == null) {
+			System.out.println(NLS.bind(Messages.OpenBiblio_7, textid, corpus.getName()));
+			return null;
+		}
+
+		return openBiblio(text);
+	}
+
+	/**
+	 * Open biblio.
+	 *
+	 * @param text the text
+	 * @return the object
+	 */
+	public Object openBiblio(Text text) {
+
+		if (text == null)
+		{
+			return null;
+		}
+		if (text.getBiblioPath() == null) {
+			System.out.println(NLS.bind(Messages.OpenBiblio_9, text.getName()));
+			return null;
+		}
+		String url = text.getBiblioPath().toString();
+		if (url.trim().length() == 0) {
+			System.out.println(NLS.bind(Messages.OpenBiblio_9, text.getName()));
+			return null;
+		}
+		TXMBrowser attachedBrowserEditor = OpenBrowser.openEdition(url);
+		//attachedBrowserEditor.setCorpus(text.getCorpus());
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenBiblio.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreateSubCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreateSubCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreateSubCorpus.java	(revision 122)
@@ -0,0 +1,166 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.actions.CreateSubcorpusDialog;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+import org.txm.searchengine.cqp.corpus.query.Query;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Command which creates a subcorpus from a Corpus @ author mdecorde.
+ */
+public class CreateSubCorpus extends AbstractHandler {
+
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (selection == null) {
+			System.out.println(Messages.CreateSubCorpus_1+HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActiveEditor());
+			return null;
+		}
+		Object firstElement = selection.getFirstElement();
+		
+		if (!(firstElement instanceof Corpus)) {
+			System.out.println(Messages.CreateSubCorpus_3+firstElement);
+			return null;
+		}
+		
+		final Corpus corpus = (Corpus) firstElement;
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		final CreateSubcorpusDialog d = new CreateSubcorpusDialog(shell, corpus);
+		int code = d.open();
+		if (code == Window.OK) {
+			JobHandler jobhandler = new JobHandler(NLS.bind(
+					Messages.CreateSubCorpus_create, corpus.getName())) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {		
+					this.runInit(monitor);
+					JobsTimer.start();
+					try {
+						monitor.beginTask(Messages.CreateSubCorpus_begin, 100);
+						final Subcorpus subcorpus;
+
+						if (d.isAdvancedSelected() || d.isAssistedSelected()) {
+							Query q = new Query(d.getQuery());
+							System.out.println(NLS.bind(Messages.CreateSubcorpus_9,
+								corpus.getName(), q.getQueryString())); 
+							subcorpus = corpus.createSubcorpus(q, d.getName());
+						} 
+						else {
+							System.out.println(NLS.bind(Messages.CreateSubcorpus_7,
+							new Object[]{corpus.getName(), d.getStructuralUnit(),
+									d.getStructuralUnitProperty(), d.getValues()}));
+							
+							//Escape regex char of prop values
+							//List<String> values = d.getValues();
+							//for(int i = 0 ; i < values.size() ; i++)
+							//	values.set(i, Query.addBackSlash(values.get(i)));
+							
+							subcorpus = corpus.createSubcorpus(d
+									.getStructuralUnit(), d
+									.getStructuralUnitProperty(),
+									d.getValues(), d.getName());
+
+						}
+						
+						if(subcorpus == null)
+						{
+							monitor.done();
+							System.out.println(Messages.CreateSubCorpus_0);
+							return Status.CANCEL_STATUS;
+						}
+						
+						System.out.println(NLS.bind(Messages.CreateSubcorpus_8
+								, subcorpus.getName()));
+						monitor.worked(50);
+
+						monitor.subTask(Messages.CreatePartition_9);
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								CorporaView.refresh();
+								//System.out.println("expand");
+								CorporaView.expand(subcorpus.getParent());
+							}
+						});
+
+						monitor.worked(100);
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (CqiClientException e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						Log.severe(e.toString());
+						
+						try {
+							System.out.println(Messages.LastCQPError+Toolbox.getCqiClient().getLastCQPError());
+						} catch (Exception e1) {
+							System.out.println(Messages.CreateSubCorpus_2+e1);
+							org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+						}
+					} finally {
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}				
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		}
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreateSubCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/DeleteObject.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/DeleteObject.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/DeleteObject.java	(revision 122)
@@ -0,0 +1,359 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.internal.Workbench;
+import org.txm.HasResults;
+import org.txm.functions.Function;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.progression.Progression;
+//import org.txm.functions.queryindex.QueryIndex;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.objects.TxmObject;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.preferences.UserPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.BasesView;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.stat.data.LexicalTable;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Delete the selection: TXMObjects and results code for the results must be
+ * added manually here @ author mdecorde.
+ */
+public class DeleteObject extends AbstractHandler {
+
+	private static boolean shouldRestartToolbox = false;
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		
+		if (!askContinueToDelete(selection)) return null;
+		
+		JobHandler job = new JobHandler("Deleting", true) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				delete(selection);
+				return Status.OK_STATUS;
+			}
+		};
+		job.schedule();
+		try {
+			job.join();
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+			return Status.CANCEL_STATUS;
+		}
+		return job.getResultObject();
+	}
+
+	private static boolean continueToDelete = true;
+	public static synchronized boolean askContinueToDelete(final IStructuredSelection selection) {
+		continueToDelete = true;
+		
+		boolean dontShowAlert = !TxmPreferences.getBoolean(
+				UserPreferencePage.USER_ALERT_DELETE, false);
+		
+		if (dontShowAlert) {
+			Display.getDefault().syncExec(new Runnable() {
+				@Override
+				public void run() {
+					MessageBox messageBox = new MessageBox(Display.getDefault().getActiveShell(), SWT.ICON_QUESTION
+							| SWT.YES | SWT.NO);
+					messageBox.setMessage(NLS.bind(Messages.DeleteObject_0, selection.toList()));
+					int response = messageBox.open();
+					if (response != SWT.YES) {
+						StatusLine.setMessage(""); //$NON-NLS-1$
+						continueToDelete = false;
+					}
+				}
+			});
+		}
+		return continueToDelete;
+	}
+	
+	/**
+	 * Delete.
+	 *
+	 * @param sel the selection of object to delete
+	 */
+	public static HashSet<Object> delete(ISelection sel) {
+		IStructuredSelection selection = (IStructuredSelection) sel;
+		if (selection.size() == 0) return new HashSet<Object>();
+		
+		List<Object> objects = new ArrayList<Object>(selection.toList());
+		return delete(objects);
+	}
+	
+
+	/**
+	 * Delete.
+	 *
+	 * @param objects the objects to delete
+	 * @return 
+	 */
+	public synchronized static HashSet<Object> delete(final List<Object> objects) {
+		StatusLine.setMessage(NLS.bind(Messages.DeleteObject_5, objects));
+		
+		final HashSet<Object> allObjectDeleted = new HashSet<Object>();
+		shouldRestartToolbox = false;
+		while (objects.size() > 0) {
+			Object o = objects.get(0);
+			try {
+				List<Object> deleted = delete(o);
+				allObjectDeleted.addAll(deleted);
+				if (deleted.size() == 0) {
+					StatusLine.setMessage(Messages.DeleteObject_3+" : "+o);
+					return new HashSet<Object>();
+				}
+				// remove results already deleted
+				objects.removeAll(deleted);
+			} catch(Exception e) {
+				Log.info(NLS.bind(Messages.DeleteObject_4, o, e)); 
+				StatusLine.error(NLS.bind(Messages.DeleteObject_4, o, e)); 
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				return new HashSet<Object>();
+			}
+		}
+		
+		if (allObjectDeleted.size() > 0) {
+			
+			if (shouldRestartToolbox) {
+				org.txm.Toolbox.restartWorkspace();
+				org.txm.Toolbox.restartSearchEngine();
+				
+				System.err.println(Messages.AddBase_10);
+				StatusLine.setMessage(Messages.AddBase_10);
+			}
+			
+			Display.getDefault().syncExec(new Runnable() {
+				@Override
+				public void run() {
+					try {
+						CorporaView.refresh();
+						BasesView.refresh();
+						QueriesView.refresh();
+						RVariablesView.refresh();
+						
+						//close corresponding editors
+						for(Object obj : allObjectDeleted) {
+							closeEditorOfSelection(obj);
+						}
+					} catch(Exception e) { }
+				}
+			});
+		}
+
+		StatusLine.setMessage(""); //$NON-NLS-1$
+		return allObjectDeleted;
+	}
+
+	/**
+	 * Delete.
+	 *
+	 * @param o the o
+	 * @return the list
+	 */
+	public static List<Object> delete(Object o) {
+		ArrayList<Object> deleted = new ArrayList<Object>();
+		if (o instanceof TxmObject) {
+			Log.info(NLS.bind(Messages.DeleteObject_10, ((TxmObject) o).getName()));
+
+			try {
+				if (o instanceof Corpus) {
+					Corpus c = (Corpus)o;
+					if (o instanceof MainCorpus) {
+						shouldRestartToolbox = true;
+					}
+					deleted.addAll(c.clearResults());
+					deleted.addAll(c.getSubcorpora());
+					deleted.addAll(c.getPartitions());
+
+					if (!((TxmObject) o).delete()) {
+						Log.info(Messages.DeleteObject_3);
+						return new ArrayList<Object>(0);
+					}
+				} else if (o instanceof Partition) {
+					Partition p = (Partition)o;
+					for (int i = 0 ; i < p.getResults().size() ; i++) {
+						deleted.addAll(delete(p.getResults().get(i)));
+						i--;
+					}
+					if (!((TxmObject) o).delete()) {
+						Log.info(Messages.DeleteObject_3);
+						return new ArrayList<Object>(0);
+					}
+				}
+			} catch (Exception e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		} else if (o instanceof Lexicon) {
+			Lexicon l = (Lexicon) o;
+			Corpus c = l.getCorpus();
+			c.dropLexicon(l.getProperty());
+			System.out.println(NLS.bind(Messages.DeleteObject_10, l.getName()));
+		} else if (o instanceof SpecificitesResult) {
+			SpecificitesResult specif = (SpecificitesResult) o;
+			
+			HasResults p = specif.getParent();
+			
+			if (p != null) {
+				if (p instanceof Partition)
+					((Partition)p).dropLexicalTable(specif.getLexicalTable().getProperty());
+				p.removeResult(specif );
+			}
+			System.out.println(NLS.bind(Messages.DeleteObject_10, specif.getName()));
+		} else if (o instanceof Concordance) {
+			Concordance conc = (Concordance) o;
+			Corpus c = conc.getCorpus();
+			c.removeResult(conc);
+			conc.cleanMemory();
+			System.out.println(NLS.bind(Messages.DeleteObject_10, conc.getName()));
+		} else if (o instanceof Referencer) {
+			Referencer referencer = (Referencer) o;
+			Corpus c = referencer.getCorpus();
+			c.removeResult(referencer);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, referencer.getName()));
+		} else if (o instanceof Cooccurrence) {
+			Cooccurrence cooc = (Cooccurrence) o;
+			Corpus c = cooc.getCorpus();
+			c.removeResult(cooc);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, cooc.getName()));
+		} else if (o instanceof Progression) {
+			Progression rep = (Progression) o;
+			Corpus c = rep.getCorpus();
+			c.removeResult(rep);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, rep.getName()));
+		} else if (o instanceof Index) {
+			Index voc = (Index) o;
+			voc.getParent().removeResult(voc);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, voc.getName()));
+		} else if (o instanceof CA) {
+			CA ca = (CA) o;
+			for (int i = 0 ; i < ca.getResults().size() ; i++) {
+				deleted.addAll(delete(ca.getResults().get(i)));
+				i--;
+			}
+			ca.delete();
+			deleted.add(ca);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, ca.getName()));
+		} else if (o instanceof CAH) {
+			CAH cah = (CAH) o;
+			cah.delete();
+			deleted.add(cah);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, cah.getName()));
+		} else if (o instanceof LexicalTable) {
+			LexicalTable lt = (LexicalTable) o;
+			for (int i = 0 ; i < lt.getResults().size() ; i++) {
+				deleted.addAll(delete(lt.getResults().get(i)));
+				i--;
+			}
+			lt.getParent().removeResult(lt);
+			System.out.println(NLS.bind(Messages.DeleteObject_10, lt.getName()));
+		} else if (o instanceof Function) {
+			Function l = (Function) o;
+			l.delete();
+			System.out.println(NLS.bind(Messages.DeleteObject_10, l));
+		}
+
+		deleted.add(o);
+		
+		return deleted;
+	}
+
+	/**
+	 * Close the editors which uses an Object.
+	 *
+	 * @param o the object used by an editor
+	 */
+	public static void closeEditorOfSelection(Object o)
+	{
+		for (IWorkbenchPage page : getPages()) {
+			for (IEditorReference editorref : page.getEditorReferences()) {
+				IEditorPart editor = editorref.getEditor(false);
+
+				if (editor instanceof CustomizableEditor)
+					if (o.equals(((CustomizableEditor)editor).getSource()))
+						editor.getEditorSite().getPage().closeEditor(editor, true);
+			}
+		}
+	}
+
+	/**
+	 * Gets the pages.
+	 *
+	 * @return the pages
+	 */
+	public static IWorkbenchPage[] getPages()
+	{
+		for (IWorkbenchWindow win : Workbench.getInstance().getWorkbenchWindows()) {
+			return win.getPages();
+		}
+		return new IWorkbenchPage[0];
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/DeleteObject.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreatePartition.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreatePartition.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreatePartition.java	(revision 122)
@@ -0,0 +1,132 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.actions.CreatePartitionDialog;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Command which creates a Partition from a Corpus @ author mdecorde.
+ */
+public class CreatePartition extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
+	 * .ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		final Corpus corpus = (Corpus) selection.getFirstElement();
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		final CreatePartitionDialog d = new CreatePartitionDialog(shell, corpus);
+		int code = d.open();
+		if (code == Window.OK) {
+			try {
+				JobHandler jobhandler = new JobHandler(NLS.bind(
+						Messages.CreatePartition_0, corpus.getName())) {
+					@Override
+					protected IStatus run(IProgressMonitor monitor) {
+						this.runInit(monitor);
+						try {
+							JobsTimer.start();
+							monitor.beginTask(
+									NLS.bind(Messages.CreatePartition_0,
+											corpus.getName()), 100);
+							System.out.println(NLS.bind(
+									Messages.CreatePartition_0,
+									corpus.getName()));
+							final Partition partition = d.getPartition();
+							if (partition == null) {
+								monitor.done();
+								System.out.println(Messages.CreatePartition_2);
+								return Status.CANCEL_STATUS;
+							}
+							System.out.println(NLS.bind(
+									Messages.CreatePartition_6,
+									partition.getNPart()));
+							monitor.worked(95);
+
+							monitor.subTask(Messages.CreatePartition_9);
+							syncExec(new Runnable() {
+								@Override
+								public void run() {
+									CorporaView.refresh();
+									CorporaView.expand(partition.getParent());
+								}
+							});
+							monitor.worked(100);
+						} catch (ThreadDeath td) {
+							return Status.CANCEL_STATUS;
+						} finally {
+							monitor.done();
+							JobsTimer.stopAndPrint();
+						}
+						return Status.OK_STATUS;
+					}
+				};
+				jobhandler.startJob();
+
+			} catch (Exception e) {
+				System.err.println(NLS.bind(Messages.Error_creating_partition,
+						e));
+			}
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/CreatePartition.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/ExportCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/ExportCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/ExportCorpus.java	(revision 122)
@@ -0,0 +1,145 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.swt.dialog.ConfirmDialog;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Call the function Information on a MainCorpus, a SubCorpus and a Partition
+ * show basic stats and give some properties values @ author mdecorde.
+ */
+public class ExportCorpus extends AbstractHandler {
+
+	public final static String ID = "org.txm.rcpapplication.commands.base.ExportCorpus"; //$NON-NLS-1$
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/** The lastopenedfile. */
+	private static String lastopenedfile;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see
+	 * org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands
+	 * .ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		if (!(selection.getFirstElement() instanceof MainCorpus))
+			return null;
+
+		final MainCorpus corpus = (MainCorpus) selection.getFirstElement();
+
+		if (corpus.isModified()) {
+			boolean ret = MessageDialog.openConfirm(shell, "Export - "+corpus.getName()+" annotations not saved", "Do you wish to export without the current annotations?\n\n(to include the current annotations in the exported corpus, you need to save them before calling the \"Export\" command)");
+			if (!ret) return null;
+		}
+		
+		FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+		String[] exts = {"*.txm", "*.zip"}; //$NON-NLS-1$ //$NON-NLS-2$
+		dialog.setFilterExtensions(exts);
+		if (LastOpened.getFile(ID) != null) {
+			lastopenedfile = LastOpened.getFolder(ID)
+					+ "/" + LastOpened.getFile(ID); //$NON-NLS-1$
+		} else if (lastopenedfile != null) {
+			dialog.setFilterPath(new File(lastopenedfile).getAbsolutePath());
+		} else {
+			dialog.setFilterPath(txmhome + "/samples"); //$NON-NLS-1$
+		}
+
+		dialog.setFileName(corpus.getName()+".txm");
+		
+		if (dialog.open() != null) {
+			String filepath = dialog.getFilterPath()
+					+ "/" + dialog.getFileName(); //$NON-NLS-1$
+			if (!(filepath.endsWith(".txm") || filepath.endsWith(".zip"))) { //$NON-NLS-1$ //$NON-NLS-2$
+				filepath += ".txm"; //$NON-NLS-1$
+			}
+			LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+			lastopenedfile = filepath;
+			final File outfile = new File(filepath);
+			JobHandler jobhandler = new JobHandler(NLS.bind(
+					Messages.ExportCorpus_3, corpus.getName())) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						monitor.beginTask(
+								NLS.bind(Messages.ExportCorpus_3,
+										corpus.getName()), 100);
+						
+
+						if (!corpus.export(outfile, this)) {
+							System.out.println(NLS.bind(
+									Messages.ExportCorpus_0, corpus.getName()));
+						}
+
+						System.out.println(Messages.bind(Messages.ExportCorpus_4,outfile.getAbsolutePath()));
+						monitor.worked(100);
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} finally {
+						monitor.done();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		}
+
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/ExportCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenEdition.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenEdition.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenEdition.java	(revision 122)
@@ -0,0 +1,218 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Edition;
+import org.txm.objects.Page;
+import org.txm.objects.Text;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Part;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+import org.txm.searchengine.cqp.corpus.query.Match;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Open a text edition from: a main corpus : the first text of the maincorpus a
+ * sub-corpus : the first text of the subcorpus a partition : the user must
+ * choose one of the text used in the partition @ author mdecorde.
+ */
+public class OpenEdition extends AbstractHandler {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.base.OpenEdition"; //$NON-NLS-1$
+
+	/** The lastopenedfile. */
+	public static String lastopenedfile;
+
+	private Text text;
+
+	private Edition edition;
+
+	private Page page;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (selection.getFirstElement() instanceof Corpus) {
+			openEdition((Corpus) selection.getFirstElement());
+		} else if (selection.getFirstElement() instanceof Partition) {
+			try {
+				Partition p = (Partition) selection.getFirstElement();
+				Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+				
+				ElementListSelectionDialog d = new ElementListSelectionDialog(
+						shell, new ILabelProvider() {
+							@Override
+							public void removeListener(
+									ILabelProviderListener listener) {
+							}
+
+							@Override
+							public boolean isLabelProperty(Object element,
+									String property) {
+								return false;
+							}
+
+							@Override
+							public void dispose() {
+							}
+
+							@Override
+							public void addListener(
+									ILabelProviderListener listener) {
+							}
+
+							@Override
+							public Image getImage(Object element) {
+								return null;
+							}
+
+							@Override
+							public String getText(Object element) {
+								return element.toString();
+							}
+						});
+				d.setTitle(Messages.OpenEdition_0);
+				d.setMessage(Messages.OpenEdition_0);
+				d.setMultipleSelection(false);
+				d.setElements(p.getParts().toArray());
+				if (d.open() == Window.OK) {
+					for (Part part : p.getParts()) {
+						if (part.getName().equals(d.getFirstResult().toString()))
+							openEdition(part);
+					}
+				}
+				// choose part
+				// open edition
+			} catch (Exception e) {
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Open edition.
+	 *
+	 * @param corpus the corpus
+	 * @return the object
+	 */
+	public Object openEdition(Corpus corpus) {
+		String textid = null;
+		text = null;
+		System.out.println(Messages.bind(Messages.OpenEdition_3,corpus));
+		try {
+			
+			if (corpus instanceof Subcorpus) {
+				Subcorpus sub = (Subcorpus)corpus;
+				List<Match> matches = sub.getMatches();
+				if (matches.size() > 0) {
+					StructuralUnit text_su = corpus.getStructuralUnit("text"); //$NON-NLS-1$
+					Property text_id = text_su.getProperty("id"); //$NON-NLS-1$
+
+					textid = matches.get(0).getValueForProperty(text_id);
+					if (textid != null) text = corpus.getMainCorpus().getText(textid);
+				}
+			}
+//			QueryResult result = corpus.query(new Query("<text> []"), "get_edition", false); //$NON-NLS-1$ //$NON-NLS-2$ 
+//			StructuralUnit text_su = corpus.getStructuralUnit("text"); //$NON-NLS-1$
+//			Property text_id = text_su.getProperty("id"); //$NON-NLS-1$
+
+// 			if (result.getNMatch() > 0) textid = result.getMatches(0, 1).get(0).getValueForProperty(text_id);
+			MainCorpus maincorpus = corpus.getMainCorpus();
+			
+			if (maincorpus == null) {
+				System.out.println(Messages.OpenEdition_2+corpus);
+				return null;
+			}
+
+			if (maincorpus.getEditionNames().size() == 0) {
+				System.out.println("No edition available.");
+				return null;
+			}
+			
+			if (text == null) {
+				text = maincorpus.getFirstText();
+			}
+
+			if (text == null) {
+				System.out.println(Messages.bind(Messages.OpenEdition_5,textid));
+				return null;
+			}
+			
+			textid = text.getName();
+
+			edition = text.getEdition(maincorpus.getDefaultEdition()); 
+			if (edition == null) {
+				System.out.println(Messages.OpenEdition_7+text);
+				return null;
+			}
+
+			page = edition.getFirstPage();
+			if (page == null) {
+				System.out.println(Messages.OpenEdition_8+edition);
+				return null;
+			}
+
+			TXMBrowser attachedBrowserEditor = OpenBrowser.openEdition(page.getFile().getAbsolutePath());
+			attachedBrowserEditor.setEdition(edition);
+			attachedBrowserEditor.setCorpus(corpus);
+			attachedBrowserEditor.showPage(page);
+		} catch (Exception e1) {
+			System.out.println(NLS.bind(Messages.OpenEdition_1, corpus));
+			System.out.println(NLS.bind(Messages.CorporaView_1, Log.toString(e1)));
+			return null;
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/OpenEdition.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/SendToR.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/SendToR.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/SendToR.java	(revision 122)
@@ -0,0 +1,316 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.base;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.internal.Workbench;
+import org.txm.functions.ca.CA;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.progression.Progression;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.commands.editor.CustomizableEditor;
+import org.txm.rcpapplication.editors.ca.CaEditor;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor;
+import org.txm.rcpapplication.editors.referencer.ReferencerEditor;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.specificities.rcp.editors.SpecificitiesTableEditor;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.data.Vector;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Delete the selection: TXMObjects and results code for the results must be
+ * added manually here @ author mdecorde.
+ */
+public class SendToR extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		
+		final List list = selection.toList();
+		JobHandler jobhandler = new JobHandler(Messages.SendToR_0+ list) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						JobsTimer.start();
+						monitor.beginTask(Messages.SendToR_0+ list, 100);
+						int delta = 100 / list.size();
+						//System.out.println(selection.toList());
+						for(Object o : list)
+							try {
+								monitor.subTask(Messages.SendToR_0+ o);
+								this.acquireSemaphore();
+								send(o);
+								this.releaseSemaphore();
+								
+								monitor.worked(delta);
+								
+							} catch (Exception e) {
+								// TODO Auto-generated catch block
+								org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+							}
+	
+						monitor.subTask(Messages.SendToR_3);
+						this.syncExec(new Runnable() {
+							@Override
+							public void run() {
+								CorporaView.refresh();
+								RVariablesView.reload();
+							}
+						});
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} finally {
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		
+		
+			return null;
+	}
+
+	/**
+	 * Send.
+	 *
+	 * @param o the o
+	 * @throws Exception the exception
+	 */
+	public static void send(Object o) throws Exception {
+
+		if (o instanceof Lexicon) 
+		{
+			Lexicon lex = (Lexicon) o;
+			Vector v = lex.asVector();
+			lex.setSymbol(v.getSymbol());
+
+			System.out.println(lex.getName()+" >> "+lex.getSymbol()); //$NON-NLS-1$
+		}  else if (o instanceof Corpus) {
+			Corpus corpus = (Corpus) o;
+			String symbol = corpus.SendToR();
+
+			System.out.println(corpus.getName()+" >> "+symbol); //$NON-NLS-1$
+		} else if (o instanceof Concordance) {
+			Concordance conc = (Concordance) o;
+			String symbol = conc.asRMatrix();
+
+			System.out.println(conc.getName()+" >> "+conc.getSymbol()); //$NON-NLS-1$
+		} else if (o instanceof Referencer) {
+			Referencer referencer = (Referencer) o;
+			String symbol = referencer.asRMatrix();
+
+			System.out.println(referencer.getName()+" >> "+referencer.getSymbol()); //$NON-NLS-1$
+		} else if (o instanceof Cooccurrence) {
+			Cooccurrence cooc = (Cooccurrence) o;
+			String symbol = cooc.asRMatrix();
+
+			System.out.println(cooc.getName()+" >> "+cooc.getSymbol()); //$NON-NLS-1$
+		} else if (o instanceof Index) {
+			Index voc = (Index) o;
+			voc.asRMatrix();
+			
+			System.out.println(voc.getName()+" >> "+voc.getSymbol()); //$NON-NLS-1$
+		}
+	}
+
+	/**
+	 * Close the editors which uses an Object.
+	 *
+	 * @param o the object used by an editor
+	 */
+	public static void closeEditorOfSelection(Object o)
+	{
+		if (o != null) {
+			//get all editors
+			//check editor class
+			//test if object used dispose editor if necessary
+			if (o instanceof Concordance)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+
+						if (editor instanceof ConcordancesEditor)
+							if (((Concordance)o).equals(((ConcordancesEditor)editor).getConcordance()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+			else if (o instanceof Cooccurrence)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+
+						if (editor instanceof CooccurrencesEditor)
+							if (o.equals(((CooccurrencesEditor)editor).getCooc()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+			else if (o instanceof CA)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof CaEditor)
+							if (o.equals(((CaEditor)editor).getCA()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+			else if (o instanceof SpecificitesResult)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof SpecificitiesTableEditor)
+							if (o.equals(((SpecificitiesTableEditor)editor).getSpecificitiesResult()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+			else if (o instanceof Index)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof IndexEditor)
+						{
+							if (o.equals(((IndexEditor)editor).getIndex()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+						}
+					}
+				}
+			}
+			else if (o instanceof LexicalTable)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof LexicalTableEditor)
+							if (o.equals(((LexicalTableEditor)editor).getLexicalTable()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			}
+			else if (o instanceof Referencer)
+			{
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof ReferencerEditor)
+							if (o.equals(((ReferencerEditor)editor).getReferencer()))
+								editor.getEditorSite().getPage().closeEditor(editor, true);
+					}
+				}
+			} 
+			else if (o instanceof Progression) 
+			{
+				Progression rep = (Progression)o;
+				for(IWorkbenchPage page : getPages())
+				{
+					for(IEditorReference editorref : page.getEditorReferences())
+					{
+						IEditorPart editor = editorref.getEditor(false);
+						if (editor instanceof CustomizableEditor)
+						{	
+							Object source = ((CustomizableEditor)editor).getSource();
+							if (source != null && source instanceof Progression)
+								if (rep.equals(source))
+									editor.getEditorSite().getPage().closeEditor(editor, true);
+						}
+					}
+				}
+			}
+		}
+
+	}
+
+	/**
+	 * Gets the pages.
+	 *
+	 * @return the pages
+	 */
+	private static IWorkbenchPage[] getPages()
+	{
+		for(IWorkbenchWindow win : Workbench.getInstance().getWorkbenchWindows())
+		{
+			return win.getPages();
+		}
+		return new IWorkbenchPage[0];
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/SendToR.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Commands which deals with the CWB corpora view</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/base/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFolder.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFolder.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFolder.java	(revision 122)
@@ -0,0 +1,114 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: create a directory depending on the selection
+ */
+public class CreateFolder extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.CreateFolder"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+
+		//get scripts dir
+		String dir = TxmPreferences.getString(Toolbox.USER_TXM_HOME, System.getProperty("user.home")); //$NON-NLS-1$
+
+		//if selection is a file, get its path
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		boolean useSavedValue = true;
+		if (selection instanceof IStructuredSelection) {
+			IStructuredSelection sel = (IStructuredSelection) selection;
+			Object obj = sel.getFirstElement();
+
+			if (obj instanceof File) {
+				File current = ((File)obj);
+				if (current.isDirectory())
+					dir = current.getAbsolutePath();
+				else
+					dir = current.getParent();
+				useSavedValue = false;
+			}
+		}
+		//ask new file name
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+
+		if (LastOpened.getFile(ID) != null && useSavedValue) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		} else {
+			dialog.setFilterPath(dir);
+		}
+		String path = dialog.open();
+		if (path == null) return null;
+		//create the new file
+		File newfile = new File(path);
+		LastOpened.set(ID, newfile.getParent(), newfile.getName());
+		if (!newfile.exists() && newfile.getParentFile().canWrite()) {
+			if (newfile.mkdir())
+				System.out.println(NLS.bind(Messages.CreateFolder_1, newfile.getAbsolutePath()));
+
+		}
+		Explorer.refresh();
+		MacroExplorer.refresh();
+
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFolder.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFile.java	(revision 122)
@@ -0,0 +1,130 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: create a file depending on the selection
+ */
+public class CreateFile extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.CreateFile"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		//get scripts dir
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptCurrentDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_CURRENT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_CURRENT_DIR_DEFAULT,
+				null);
+
+		boolean useSavedValue = true; // if a file/folder is selected, dont use the saved value
+		
+		//if selection is a file, get its path
+		IWorkbenchWindow activeW = HandlerUtil.getActiveWorkbenchWindow(event);
+		if (activeW != null) {
+			IWorkbenchPage activeP = activeW.getActivePage();
+			if (activeP != null) {
+				ISelection selection = activeP.getSelection();
+				if (selection != null && selection instanceof IStructuredSelection) {
+					IStructuredSelection sel = (IStructuredSelection) selection;
+					Object obj = sel.getFirstElement();
+					if (obj instanceof File) {
+						File current = ((File)obj);
+						if (current.isDirectory()) {
+							scriptCurrentDir = current.getAbsolutePath();
+						} else {
+							scriptCurrentDir = current.getParent();
+						}
+						useSavedValue = false;
+					}
+					
+				}
+			}
+		}
+
+		//ask new file name
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+		if (LastOpened.getFile(ID) != null && useSavedValue) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		} else {
+			dialog.setFilterPath(scriptCurrentDir);
+		}
+		String path = dialog.open();
+
+		if (path == null) return null;
+
+		//create the new file
+		File newfile = new File(path);
+		LastOpened.set(ID, newfile.getParent(), newfile.getName());
+		if (!newfile.exists() && newfile.getParentFile().canWrite()) {
+			try {
+				if (newfile.createNewFile()) {
+					System.out.println(NLS.bind(Messages.CreateFile_1, newfile.getAbsolutePath()));
+					//OpenFile.openfile(newfile);
+				}
+			} catch (IOException e) {
+				System.out.println(e.getLocalizedMessage());
+			}
+		}
+		EditFile.openfile(newfile);
+		Explorer.refresh();
+		MacroExplorer.refresh();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CreateFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenBrowser.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenBrowser.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenBrowser.java	(revision 122)
@@ -0,0 +1,232 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.internal.browser.BrowserViewer;
+import org.eclipse.ui.internal.browser.WebBrowserEditorInput;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.TXMBrowser;
+import org.txm.rcpapplication.editors.TXMWebBrowserEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open the internal browser of TXM with a file @ author mdecorde.
+ */
+@SuppressWarnings("restriction") //$NON-NLS-1$
+public class OpenBrowser extends AbstractHandler {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.OpenBrowser"; //$NON-NLS-1$
+
+	/** The lastopenedfile. */
+	public static String lastopenedfile;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		String filename = event
+				.getParameter("org.txm.rcpapplication.commands.commandParameter2"); //$NON-NLS-1$
+		if (filename != null && !filename.matches("") && !filename.matches(" ")) //$NON-NLS-1$ //$NON-NLS-2$
+		{
+			openfile(filename);
+			return null;
+		}
+
+		File file = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Object next : strucSelection.toList()) {
+				if (next instanceof File) {
+					file = (File) next;
+					break;
+				}
+			}
+		}
+
+		if (file == null) {
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			} else {
+				dialog.setFilterPath(txmhome); 
+			}
+			if (dialog.open() != null) {
+				String filepath = dialog.getFilterPath()
+						+ "/" + dialog.getFileName(); //$NON-NLS-1$
+				LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+				if (dialog.getFileName().length() > 0) {
+					lastopenedfile = filepath;
+					return openfile(filepath);
+				}
+			}
+		} else {
+			if (file.isDirectory()) {
+				FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+				dialog.setFilterPath(file.getAbsolutePath());
+				if (dialog.open() == null) return null;
+				String filepath = dialog.getFilterPath()
+						+ "/" + dialog.getFileName(); //$NON-NLS-1$
+				LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+				lastopenedfile = filepath;
+				return openfile(filepath);
+			} else
+				return openfile(file.getAbsolutePath());
+		}
+		return null;
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 * @return the txm browser
+	 */
+	static public TXMBrowser openEdition(String filepath) {
+		return openEdition(filepath, new File(filepath).getName());
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 * @return the txm browser
+	 */
+	static public TXMWebBrowserEditor openfile(String filepath) {
+		return openfile(filepath, new File(filepath).getName());
+	}
+
+	/**
+	 * Open a file given a path in a Web editor.
+	 *
+	 * @param filepath the filepath
+	 * @param editorname the editorname
+	 * @return the txm browser
+	 */
+	public static TXMBrowser openEdition(String filepath, String editorname) {
+		try {
+			// WebBrowserEditorInput editorInput = new WebBrowserEditorInput();
+			//TODO: is web browser type order useful ?
+			//System.setProperty("org.eclipse.swt.browser.DefaultType", "ie,mozilla,webkit");
+			//System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "");
+			WebBrowserEditorInput editorInput;
+			File localfile = new File(filepath);
+			if (localfile.exists())
+				editorInput = new WebBrowserEditorInput(localfile.toURI()
+						.toURL(), BrowserViewer.BUTTON_BAR
+						| BrowserViewer.LOCATION_BAR);
+			else
+				editorInput = new WebBrowserEditorInput(new URL(filepath),
+						BrowserViewer.BUTTON_BAR | BrowserViewer.LOCATION_BAR);
+			IWorkbenchWindow window = PlatformUI.getWorkbench()
+					.getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			TXMBrowser editor = (TXMBrowser) page.openEditor(editorInput,
+					TXMBrowser.ID, true);
+			editor.setName(editorname);
+			return editor;
+		} catch (MalformedURLException e) {
+			Log.severe(Messages.OpenBrowser_0+e.toString()+Messages.OpenBrowser_1+filepath);
+			System.out.println(Messages.OpenBrowser_0+e.toString()+Messages.OpenBrowser_1+filepath);
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 * @param editorname the editorname
+	 * @return the txm browser
+	 */
+	@SuppressWarnings("restriction") //$NON-NLS-1$
+	public static TXMWebBrowserEditor openfile(String filepath, String editorname) {
+		try {
+			// WebBrowserEditorInput editorInput = new WebBrowserEditorInput();
+			WebBrowserEditorInput editorInput;
+			File localfile = new File(filepath);
+			if (localfile.exists())
+				editorInput = new WebBrowserEditorInput(localfile.toURI()
+						.toURL(), BrowserViewer.BUTTON_BAR
+						| BrowserViewer.LOCATION_BAR);
+			else
+				editorInput = new WebBrowserEditorInput(new URL(filepath),
+						BrowserViewer.BUTTON_BAR | BrowserViewer.LOCATION_BAR);
+			
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			//System.out.println("Window: "+window);
+			IWorkbenchPage page = window.getActivePage();
+
+			TXMWebBrowserEditor editor = (TXMWebBrowserEditor) page.openEditor(editorInput,
+					TXMWebBrowserEditor.WEB_BROWSER_EDITOR_ID, true);
+			editor.setTitle(editorname);
+
+			return editor;
+		} catch (MalformedURLException e) {
+			Log.severe(Messages.OpenBrowser_0+e.toString()+Messages.OpenBrowser_1+filepath);
+			System.out.println(Messages.OpenBrowser_0+e.toString()+Messages.OpenBrowser_1+filepath);
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenBrowser.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCAH.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCAH.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCAH.java	(revision 122)
@@ -0,0 +1,585 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.chartsengine.core.ChartsEngine;
+import org.txm.chartsengine.r.core.RChartsEngine;
+import org.txm.chartsengine.rcp.SWTChartsComponentsProvider;
+import org.txm.chartsengine.rcp.editors.ChartEditorPart;
+import org.txm.chartsengine.svgbatik.rcp.SVGSWTChartsComponentsProvider;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.actions.LexicalTableDialog;
+import org.txm.rcpapplication.editors.cah.CAHChartEditor;
+import org.txm.rcpapplication.preferences.CAHPreferencePage;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.utils.logger.Log;
+
+/**
+ * If the selection is a CA or a Lexical Table result computes the CAH.
+ *
+ * @author mdecorde, sjacquot.
+ */
+public class ComputeCAH extends AbstractHandler {
+
+
+	/**
+	 * The command ID.
+	 */
+	public static final String ID =  ComputeCAH.class.getCanonicalName();
+
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+
+		if (!Toolbox.isStatEngineInitialized()) {
+			System.out.println(Messages.ComputeCAH_4);
+			return null;
+		}
+
+		CAH cah = null;
+		CA ca = null;
+		LexicalTable lexicaltable = null;
+		Partition partition = null;
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		
+		// Build the CA or not depending on the selection
+		if (selection.getFirstElement() instanceof CAH) {
+			cah = (CAH) selection.getFirstElement();
+		} else if (selection.getFirstElement() instanceof CA) {
+			//System.out.println("Compute CAH with CA : "+((CA)selection.getFirstElement()).getName());
+			ca = (CA) selection.getFirstElement();
+		} else if (selection.getFirstElement() instanceof LexicalTable) {
+			//System.out.println("Compute CAH with LT : "+((LexicalTable)selection.getFirstElement()).getName());
+			lexicaltable = (LexicalTable) selection.getFirstElement();
+			
+			try {
+				ca = new CA(lexicaltable);
+			} catch (StatException e) {
+				System.out.println("Failed to build the CA with lexical table "+lexicaltable+": "+e);
+				Log.printStackTrace(e);
+			}
+			lexicaltable.storeResult(ca);
+			
+//			if (lexicaltable.getPartition() != null)
+//				lexicaltable.getPartition().storeResult(ca);
+//			else if (lexicaltable.getCorpus() != null)
+//				lexicaltable.getCorpus().storeResult(ca);
+		} else if (selection.getFirstElement() instanceof Partition) {
+			//System.out.println("Compute CAH with Partition : "+((Partition)selection.getFirstElement()).getName());
+			partition = (Partition)selection.getFirstElement();
+			try {
+				String title = Messages.bind(Messages.ComputeCAH_0, partition.getName());
+				int vmax = TxmPreferences.getInt(CAPreferencePage.VMAX, 200);
+				int fmin = TxmPreferences.getInt(CAPreferencePage.FMIN, 10);
+				Shell shell = Display.getCurrent().getActiveShell();
+				LexicalTableDialog d = new LexicalTableDialog(shell, partition
+						.getCorpus(), title);
+				d.setFminAndVMax(fmin, vmax);
+				
+				if (d.open() == Window.OK) {
+					Property property = d.getProperty();
+					fmin = d.getFmin();
+					vmax = d.getMaxLines();
+					
+					lexicaltable = partition.getLexicalTable(property, fmin); // use the CAPreferencePage Fmin
+					lexicaltable.cut(vmax);
+					partition.storeResult(lexicaltable);
+					
+					ca = new CA(lexicaltable);
+					lexicaltable.storeResult(ca);
+				} else {
+					// canceled
+					return null;
+				}
+			} catch (Exception e) {
+				System.out.println("Failed to build the lexical table of "+partition+": "+e);
+				Log.printStackTrace(e);
+				return null;
+			} 
+		}
+
+		final int ncluster = TxmPreferences.getInt(CAHPreferencePage.NCLUSTER, 2);
+		final String metric = TxmPreferences.getString(CAHPreferencePage.METRIC, CAH.getDefaultMetric());
+		final String method = TxmPreferences.getString(CAHPreferencePage.METHOD, CAH.getDefaultMethod());
+		final Boolean display2D = "2D".equals(TxmPreferences.getString(CAHPreferencePage.DISPLAY, "3D")); //$NON-NLS-1$ //$NON-NLS-2$
+		final boolean computeColumns = true;
+
+		// Use existent CAH (used when reopening an editor from a CAH result node)
+		if (cah != null)	{
+			if (cah.getParent() != null)	{
+				cah.getParent().removeResult(cah);
+			}
+		} else {
+//			if (ca == null) cah = new CAH(lexicaltable, computeColumns, method, metric, ncluster, display2D);
+//			else 
+				cah = new CAH(ca, computeColumns, method, metric, ncluster, display2D);
+		}
+	
+		try {
+			compute(cah, null);
+		}
+		catch(RWorkspaceException e) {
+			System.out.println("Failed to compute CAH: "+e);
+			Log.printStackTrace(e);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Computes the CAH. Also creates the chart. Opens a chart editor if <code>chartEditor</code> is null otherwise refreshes the existing chart editor.
+	 * @param newResult
+	 * @throws RWorkspaceException
+	 */
+	public static void compute(final CAH cah, final ChartEditorPart chartEditor) throws RWorkspaceException {
+
+		JobHandler jobhandler = new JobHandler(Messages.CAHEditor_0) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+
+					this.acquireSemaphore();
+					cah.stepCompute();
+					this.releaseSemaphore();
+
+					// Store result
+					if(chartEditor == null)	{
+//						if (cah.getPartition() != null)	{
+//							cah.getPartition().storeResult(cah);
+//						}
+//						else if (cah.getCorpus() != null)	{
+//							cah.getCorpus().storeResult(cah);
+//						}
+						cah.getCA().storeResult(cah);
+					}
+
+					// Refresh views
+					this.syncExec(new Runnable() {
+						@Override
+						public void run() {
+
+							System.err.println("ComputeCAH.compute(): charts creator is not yet implemented.");
+							
+							// Create a new chart editor
+							// FIXME: version to restore when the JFC CAH charts will be implemented
+//							if(chartEditor == null)	{
+//								ChartEditorPart chartEditor = Application.swtComponentProvider.createCAHChartEditorPart(IImageKeys.getImage(IImageKeys.ACTION_CAH), cah);
+//								// Create and open the chart editor
+//								SWTChartsComponentProvider.openEditor(chartEditor);
+//							}
+//							// Refresh the existing chart editor
+//							else	{
+//								// Create and load the new chart
+//								chartEditor.getComposite().loadChart(Toolbox.getChartsEngine().createCAHChart(((CAHChartEditor) chartEditor).getResultData(), ((CAHChartEditor) chartEditor).getResultData().isDisplay2D()));
+//								chartEditor.forceFocus();
+//							}
+
+							// FIXME: temporary force R/SVG version because the CAH charts are not yet implemented in JFC mode
+							RChartsEngine tmpChartsEngine = new RChartsEngine(ChartsEngine.OUTPUT_FORMAT_SVG);
+							if(chartEditor == null)	{
+								SVGSWTChartsComponentsProvider tmpSWTComponentsProvider = (SVGSWTChartsComponentsProvider) SWTChartsComponentsProvider.getComponentsProvider(tmpChartsEngine);
+								// FIXME: charts creator is not yet implemented
+								//ChartEditorPart chartEditor = tmpSWTComponentsProvider.createCAHChartEditorPart(IImageKeys.getImage(IImageKeys.ACTION_CAH), cah);
+								// Create and open the chart editor
+								tmpSWTComponentsProvider.openEditor(chartEditor);
+							}
+							// Refresh the existing chart editor
+							else	{
+								// FIXME: charts creator is not yet implemented
+								// Create and load the new chart
+								//chartEditor.getComposite().loadChart(tmpChartsEngine.createCAHChart(((CAHChartEditor) chartEditor).getResultData(), ((CAHChartEditor) chartEditor).getResultData().isDisplay2D()));
+								chartEditor.forceFocus();
+							}
+
+
+							// Refresh UI
+							CorporaView.refresh();
+							CorporaView.expand(cah.getParent());
+							QueriesView.refresh();
+							RVariablesView.refresh();
+						}
+					});
+
+
+				}
+				catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				}
+				catch (Exception e) {
+					System.out.println(e.getLocalizedMessage());
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					Log.severe("Error while computing CAH: "+e.getLocalizedMessage());
+				}
+				finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+
+	}
+
+
+
+
+
+
+
+
+	// FIXME: to remove when charts engine will be validated, be careful this method contains some old code to open a dialog bog, do we need to keep it ?
+//	public Object execute1(ExecutionEvent event) throws ExecutionException {
+//
+//		if (!Toolbox.isStatEngineInitialized()) {
+//			System.out.println("StatEngine is not ready. Canceling command.");
+//			return null;
+//		}
+//
+//		HandlerUtil.getActiveWorkbenchWindow(event);
+//		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//
+//		if (selection.getFirstElement() instanceof CA) {
+//			//System.out.println("Compute CAH with CA : "+((CA)selection.getFirstElement()).getName());
+//			ca = (CA) selection.getFirstElement();
+//		} else if (selection.getFirstElement() instanceof LexicalTable) {
+//			//System.out.println("Compute CAH with LT : "+((LexicalTable)selection.getFirstElement()).getName());
+//			lexicaltable = (LexicalTable) selection.getFirstElement();
+//		}
+//
+//		openEditor1(ca, lexicaltable);
+//
+////		//Open CAH parameters dialog
+////		CAHParamDialog d = new CAHParamDialog(window.getShell());
+////
+////		if (d.open() == Window.OK) {
+////			final int ncluster = d.getNcluster();
+////			final String metric = TxmPreferences.getString(CAHPreferencePage.METRIC, CAH.getDefaultMetric());
+////			final String method = TxmPreferences.getString(CAHPreferencePage.METHOD, CAH.getDefaultMethod());
+////			final Boolean displayMode = TxmPreferences.getBoolean(CAHPreferencePage.DISPLAY, false);
+////			final boolean docol = d.isDoculumns();
+////
+////			JobHandler jobhandler = new JobHandler(Messages.ComputeCAH_3+ca.getName()) {
+////				@Override
+////				protected IStatus run(IProgressMonitor monitor) {
+////					try {
+////						JobsTimer.start();
+////						monitor.beginTask("", 100); //$NON-NLS-1$
+////
+////						monitor.subTask(Messages.ComputeCAH_0);
+////
+////						final CAH cah;
+////						if (ca != null) {
+////							cah = new CAH(ca, docol, method, metric, ncluster, displayMode);
+////							cah.stepCompute();
+////							ca.getPartition().storeResult(cah);
+////						} else {
+////							cah = new CAH(lexicaltable, docol, method, metric, ncluster, displayMode);
+////							cah.stepCompute();
+////							lexicaltable.getPartition().storeResult(cah);
+////						}
+////						if (monitor.isCanceled())
+////							return Status.CANCEL_STATUS;
+////
+////						monitor.worked(20);
+////
+////						monitor.subTask(Messages.ComputeCAH_1);
+////
+////						syncExec(new Runnable() {
+////							@Override
+////							public void run() {
+////
+////								RDevice device = RDevice.valueOf(TxmPreferences.getString(ExportPreferencePage.RDEVICE, RDevice.SVG.toString()));
+////								String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+////								File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
+////								resultDir.mkdirs();
+////								File outfile;
+////								try {
+////									outfile = File.createTempFile("cah", device.getExt(), resultDir); //$NON-NLS-1$
+////									if (!outfile.canWrite()) {
+////										System.out.println(NLS.bind(Messages.ComputeCAH_2, outfile));
+////									}
+////								} catch (IOException e1) {
+////									// TODO Auto-generated catch block
+////									org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+////									return;
+////								}
+////
+////								try {
+////									//System.out.println("CAH file : "+outfile);
+////									cah.toSVG(outfile, device);
+////									OpenGraph.OpenFile(outfile, device, cah.getPartition().getName()+": "+cah.getName(), IImageKeys.ACTION_CAH); //$NON-NLS-1$
+////								} catch (REXPMismatchException e) {
+////									// TODO Auto-generated catch block
+////									org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+////								} catch (StatException e) {
+////									// TODO Auto-generated catch block
+////									org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+////								}
+////							}
+////						});
+////						monitor.worked(50);
+////
+////						syncExec(new Runnable() {
+////							@Override
+////							public void run() {
+////								CorporaView.refresh();
+////								CorporaView.expand(cah.getPartition());
+////							}
+////						});
+////
+////						monitor.worked(100);
+////					} catch (Exception e) {
+////						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+////					} finally {
+////						monitor.done();
+////					}
+////					JobsTimer.stopAndPrint();
+////					return Status.OK_STATUS;
+////				}
+////			};
+////			jobhandler.startJob();
+////		}
+//		return null;
+//	}
+
+
+
+
+	/**
+	 * The Class CAHParamDialog.
+	 */
+	public class CAHParamDialog extends Dialog {
+
+		//protected Combo methodsCombo;
+		//protected Combo metricsCombo;
+		/** The ncluster spinner. */
+		protected Spinner nclusterSpinner;
+
+		/** The docolumns button. */
+		protected Button docolumnsButton;
+
+		/** The title. */
+		protected String title;
+
+		/**
+		 * Instantiates a new cAH param dialog.
+		 *
+		 * @param parentShell the parent shell
+		 */
+		public CAHParamDialog(Shell parentShell) {
+			super(parentShell);
+			this.title = Messages.CAHEditorTitle;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
+		 */
+		@Override
+		protected void configureShell(Shell newShell) {
+			super.configureShell(newShell);
+
+			if (title != null)
+				newShell.setText(title);
+			else
+				newShell.setText(Messages.CAHEditorTitle);
+		}
+
+		/** The composite. */
+		protected Composite composite;
+
+		/** The method. */
+		private String method;
+
+		/** The metric. */
+		private String metric;
+
+		/** The Ncluster. */
+		private int Ncluster;
+
+		/** The doculumns. */
+		private boolean doculumns;
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+		 */
+		@Override
+		protected Control createDialogArea(Composite parent) {
+			composite = new Composite(parent, SWT.NONE);
+			GridLayout layout = new GridLayout(2, false);
+			composite.setLayout(layout);
+
+			// N CLUSTERS
+			Label label = new Label(composite, SWT.NONE);
+			label.setText(Messages.CAHPreferencePage_2);
+
+			nclusterSpinner = new Spinner(composite, SWT.BORDER);
+			nclusterSpinner.setMinimum(2);
+			nclusterSpinner.setIncrement(1);
+			nclusterSpinner.setSelection(TxmPreferences.getInt(CAHPreferencePage.NCLUSTER, 2));
+			nclusterSpinner.setMaximum(50);
+
+			// ROWS OR COLS
+			docolumnsButton = new Button(composite, SWT.RADIO);
+			docolumnsButton.setText(Messages.ComputeClassification_5);
+			docolumnsButton.setSelection(true);
+
+			Button dorowsButton = new Button(composite, SWT.RADIO);
+			dorowsButton.setText(Messages.ComputeClassification_6);
+
+			/*
+			// METHODS
+			Label methodLabel = new Label(composite, SWT.NONE);
+			methodLabel.setText("Methods");
+
+			methodLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+					false, false));
+
+			methodsCombo = new Combo(composite, SWT.READ_ONLY);
+			methodsCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false));
+			methodsCombo.select(methodsCombo.indexOf(CAH.getDefaultMethod()));
+			for(String method : CAH.getMethods())
+				methodsCombo.add(method);
+
+			// METRICS
+			Label metricsLabel = new Label(composite, SWT.NONE);
+			metricsLabel.setText("Methods");
+
+			metricsLabel.setLayoutData(new GridData(GridData.END, GridData.CENTER,
+					false, false));
+
+			metricsCombo = new Combo(composite, SWT.READ_ONLY);
+			metricsCombo.setLayoutData(new GridData(GridData.FILL, GridData.FILL,
+					true, false));
+			metricsCombo.select(metricsCombo.indexOf(CAH.getDefaultMetric()));
+			for(String method : CAH.getMetrics())
+				metricsCombo.add(method);
+				*/
+
+			return composite;
+		}
+
+		/* (non-Javadoc)
+		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+		 */
+		@Override
+		protected void okPressed() {
+			/*int idx = methodsCombo.getSelectionIndex();
+			method = methodsCombo.getItem(idx);
+
+			idx = metricsCombo.getSelectionIndex();
+			metric = metricsCombo.getItem(idx);
+*/
+			Ncluster = this.nclusterSpinner.getSelection();
+
+			doculumns = this.docolumnsButton.getSelection();
+
+			super.okPressed();
+		}
+
+		/**
+		 * Gets the method.
+		 *
+		 * @return the method
+		 */
+		public String getMethod() {
+			return method;
+		}
+
+		/**
+		 * Gets the metric.
+		 *
+		 * @return the metric
+		 */
+		public String getMetric() {
+			return metric;
+		}
+
+		/**
+		 * Gets the ncluster.
+		 *
+		 * @return the ncluster
+		 */
+		public int getNcluster() {
+			return Ncluster;
+		}
+
+		/**
+		 * Checks if is doculumns.
+		 *
+		 * @return true, if is doculumns
+		 */
+		public boolean isDoculumns() {
+			return doculumns;
+		}
+	}
+
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCAH.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCooccurrences.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCooccurrences.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCooccurrences.java	(revision 122)
@@ -0,0 +1,185 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor;
+import org.txm.rcpapplication.editors.input.CooccurrenceEditorInput;
+import org.txm.rcpapplication.preferences.CoocPreferencePage;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * if the selection is a corpus, open an empty Cooc editor if the selection is a
+ * concordance, open a Cooc editor already computed @ author mdecorde.
+ */
+public class ComputeCooccurrences extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		if (!Toolbox.isStatEngineInitialized()) {
+			System.out.println(Messages.ComputeCooccurrences_2);
+			return null;
+		}
+		
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		Object element = selection.getFirstElement();
+		
+		if (element instanceof Concordance) {
+			Cooccurrence cooc = computeCooc(selection);
+			if (cooc != null) openEditor(cooc);
+		} else if (element instanceof Corpus) {
+			openEditor((Corpus)element);
+		} else {
+			System.out.println(Messages.ComputeCooccurrences_1+ element);
+		}
+		
+		return element;
+	}
+
+	public static CooccurrencesEditor openEditor(Cooccurrence cooc) {
+		if (!Toolbox.isSearchEngineInitialized()) return null;
+		
+		try {
+			IWorkbenchWindow window =TXMWindows.getActiveWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			StatusLine.setMessage(Messages.ComputeCooccurrences_0);
+			CooccurrenceEditorInput editorInput = new CooccurrenceEditorInput(cooc);
+
+			CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+					.openEditor(editorInput, CooccurrencesEditor.ID); 
+			return conceditor;
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+	
+	public static CooccurrencesEditor openEditor(Corpus corpus) {
+		if (!Toolbox.isSearchEngineInitialized()) return null;
+		try {
+			IWorkbenchWindow window =TXMWindows.getActiveWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			StatusLine.setMessage(Messages.ComputeCooccurrences_0);
+			CooccurrenceEditorInput editorInput = new CooccurrenceEditorInput(corpus);
+
+			CooccurrencesEditor conceditor = (CooccurrencesEditor) page
+					.openEditor(editorInput, CooccurrencesEditor.ID); 
+			return conceditor;
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Compute cooc.
+	 *
+	 * @param selection the selection
+	 * @return the cooccurrence
+	 */
+	public static Cooccurrence computeCooc(IStructuredSelection selection) {
+		if (!Toolbox.isSearchEngineInitialized()) return null;
+		
+		Cooccurrence cooc = null;
+		Object s = selection.getFirstElement();
+
+		int minleft = 1;
+		int maxleft = 50;
+		int minright = 1;
+		int maxright = 50;
+
+		int minf = TxmPreferences.getInt(CoocPreferencePage.MINFREQ);
+		int mincof = TxmPreferences.getInt(CoocPreferencePage.MINCOUNT);
+		int minscore = (int) TxmPreferences.getDouble(
+				CoocPreferencePage.MINSCORE).doubleValue();
+
+		Corpus corpus = null;
+		StructuralUnit limit = null;
+		Query query = null;
+		List<Property> properties = null;
+
+		if (s instanceof Concordance) {
+			Concordance conc = (Concordance) s;
+			corpus = conc.getCorpus();
+			maxleft = conc.getLeftContextSize();
+			maxright = conc.getRightContextSize();
+			properties = new ArrayList<Property>();
+			properties.addAll(conc.getAnalysisProperty());
+			query = conc.getQuery();
+			
+			boolean buildLexicalTableWithCooccurrents = TxmPreferences.getBoolean(CoocPreferencePage.PARTIALLEXICALTABLE);
+
+			try {
+				cooc = new Cooccurrence(corpus, query, properties, limit,
+						maxleft, minleft, minright, maxright, minf, mincof,
+						minscore, false, buildLexicalTableWithCooccurrents);
+
+				cooc.process();
+			} catch (Exception e) {
+				// TODO Auto-generated catch block
+				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				return null;
+			}
+		} else if (s instanceof Corpus) {
+			corpus = (Corpus) s;
+		} else {
+			System.out.println(Messages.ComputeCooccurrences_1
+					+ s);
+			return null;
+		}
+
+		return cooc;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCooccurrences.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeFrequencyList.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeFrequencyList.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeFrequencyList.java	(revision 122)
@@ -0,0 +1,92 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Compute a Lexicon used it to create a Index (object) then open it in the
+ * DictionnaryEditor @ author mdecorde.
+ */
+public class ComputeFrequencyList extends AbstractHandler {
+
+	/** The lexicon. */
+	private Lexicon lexicon;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		//window = HandlerUtil.getActiveWorkbenchWindow(event);
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		assert (selection.getFirstElement() instanceof Corpus);
+
+		final Corpus corpus = (Corpus) selection.getFirstElement();
+		
+		openEditor(corpus);
+		
+		return null;
+	}
+	
+	public static boolean openEditor(Corpus corpus) {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		IWorkbenchPage page = TXMWindows.getActiveWindow().getActivePage();
+		IndexEditorInput editorInput = new IndexEditorInput(corpus);
+		DictionnaryEditor voceditor;
+		try {
+			voceditor = (DictionnaryEditor) page.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor"); //$NON-NLS-1$
+			voceditor.compute();
+			// voceditor.initializeFields();
+			 return true;
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} 
+		 return false;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeFrequencyList.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInterTextDistance.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInterTextDistance.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInterTextDistance.java	(revision 122)
@@ -0,0 +1,75 @@
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandlerListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.rosuda.REngine.REXPMismatchException;
+import org.txm.functions.intertextualdistance.InterTextDistance;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.clientExceptions.InvalidCqpIdException;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+
+public class ComputeInterTextDistance extends AbstractHandler {
+
+	private IStructuredSelection selection;
+
+	@Override
+	public void addHandlerListener(IHandlerListener handlerListener) {
+		super.addHandlerListener(handlerListener);
+	}
+
+	@Override
+	public void dispose() {
+		super.dispose();
+	}
+
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof LexicalTable))
+			return null;
+		LexicalTable table = (LexicalTable) s;
+		InterTextDistance dist = new InterTextDistance(table);
+
+		try {
+			dist.compute();
+			table.getPartition().getResults().add(dist);
+		} catch (CqiClientException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (InvalidCqpIdException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (REXPMismatchException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		} catch (StatException e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return super.isEnabled();
+	}
+
+	@Override
+	public boolean isHandled() {
+		return super.isHandled();
+	}
+
+	@Override
+	public void removeHandlerListener(IHandlerListener handlerListener) {
+		super.removeHandlerListener(handlerListener);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInterTextDistance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportSVG.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportSVG.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportSVG.java	(revision 122)
@@ -0,0 +1,203 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.core.chartsengine.r.__RDevice;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.progression.Progression;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.editors.SVGGraphicEditor;
+import org.txm.rcpapplication.editors.ca.CaEditor;
+import org.txm.rcpapplication.preferences.ExportPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.utils.FileCopy;
+
+/**
+ * save the SVG file selected @ author mdecorde.
+ */
+public class ExportSVG extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.function.ExportSVG"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		try {
+			// FIXME : implement charts engine after we defined if here we need to export the chart or the view
+			// After that call directly "ExportChart" or "ExportChartEditorView"
+			System.out.println(Messages.ExportSVG_0);
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+
+			String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+
+			// get editor
+			IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+					.getActivePage().getActivePart();
+
+			String prefDevice = TxmPreferences.getString(ExportPreferencePage.RDEVICE, "SVG"); //$NON-NLS-1$
+			__RDevice device = __RDevice.valueOf(prefDevice.toUpperCase());
+			System.out.println(NLS.bind(Messages.ExportSVG_2, device));
+
+			new File(txmhome, "results").mkdir(); //$NON-NLS-1$
+			File svgSourceFile = new File(txmhome, "results/temp"+device.getExt()); //$NON-NLS-1$
+			
+			if (page instanceof SVGGraphicEditor) {
+				SVGGraphicEditor te = (SVGGraphicEditor) page;
+				svgSourceFile = te.getSVGFile();
+				device = __RDevice.SVG;
+			} else if (page instanceof CaEditor) {
+				CaEditor ed = (CaEditor) page;
+				SVGGraphicEditor svged = ed.getSVGGraphicEditor();
+				if (svged != null) {
+					svgSourceFile = svged.getSVGFile();
+					device = __RDevice.SVG;
+				}
+			} else if (page instanceof CorporaView) {
+				CorporaView view = (CorporaView) page;
+				StructuredSelection sel = (StructuredSelection) view.getTreeViewer().getSelection();
+				Object obj = sel.getFirstElement();
+				//System.out.println("sel: "+obj);
+				if (obj instanceof CAH) {
+						((CAH)obj).toSVG(svgSourceFile, device);
+				} else if (obj instanceof CA) {
+						((CA)obj).toSVGFactorialMap(svgSourceFile, device);
+				} else if (obj instanceof Progression) {
+						((Progression)obj).toSvg(svgSourceFile, device);
+				}
+			}
+
+			if (svgSourceFile != null && svgSourceFile.exists()) {
+				String ext = null;
+				if (svgSourceFile.getName().lastIndexOf(".") > 0) { //$NON-NLS-1$
+					ext = svgSourceFile.getName();
+					ext = ext.substring(ext.lastIndexOf("."), ext.length()); //$NON-NLS-1$
+				}
+				FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+				String[] exts = {"*"+device.getExt()}; //$NON-NLS-1$
+				dialog.setFilterExtensions(exts);
+				
+				if (LastOpened.getFile(ID) != null) {
+					dialog.setFilterPath(LastOpened.getFolder(ID));
+					//dialog.setFileName(LastOpened.getFile(ID));
+				} else {
+					dialog.setFilterPath(txmhome);
+				}
+
+				File outfile;
+
+				if (dialog.open() != null) {
+					String filename =  dialog.getFileName(); //$NON-NLS-1$
+					if (!filename.endsWith(device.getExt())) 
+						filename = filename+device.getExt();
+					outfile = new File(dialog.getFilterPath(), filename);
+					LastOpened.set(ID, outfile);
+				} else
+					return null;
+
+				try {
+					JobsTimer.start();
+					StatusLine.setMessage(""); //$NON-NLS-1$
+					FileCopy.copy(svgSourceFile, outfile);
+					if (outfile.exists()) {
+						System.out.println(NLS.bind(Messages.ExportSVG_1, outfile, device.getName())); 
+					} else {
+						System.out.println(NLS.bind(Messages.ExportSVG_3 + outfile, device.getExt()));
+					}
+
+				} catch (IOException e) {
+					System.err.println("Export failed: " + svgSourceFile //$NON-NLS-1$
+							+ "" + outfile + ": " + e); //$NON-NLS-1$ //$NON-NLS-2$ 
+				}
+			}
+		} catch(Exception e) {
+			System.out.println(e.getLocalizedMessage());
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Export.
+	 *
+	 * @param infile the infile
+	 */
+	public static void export(File infile) {
+		// Shell shell =
+		// HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		FileDialog dialog = new FileDialog(new Shell(), SWT.SAVE);
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		} else {
+			dialog.setFilterPath(txmhome);
+		}
+
+		File outfile;
+
+		if (dialog.open() != null) {
+			outfile = new File(dialog.getFilterPath(), dialog.getFileName());
+			LastOpened.set(ID, outfile);
+		} else
+			return;
+
+		try {
+			FileCopy.copy(infile, outfile);
+		} catch (IOException e) {
+			System.out.println("Error: " + infile //$NON-NLS-1$
+					+ "" + outfile + ": " + e); //$NON-NLS-1$ //$NON-NLS-2$ 
+		}
+
+		if (outfile.exists()) {
+			System.out.println(NLS.bind(Messages.ExportSVG_1, outfile, ""));  //$NON-NLS-1$
+		} else {
+			System.out.println(NLS.bind(Messages.ExportSVG_3 + outfile, "")); //$NON-NLS-1$
+		}
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportSVG.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIntersection.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIntersection.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIntersection.java	(revision 122)
@@ -0,0 +1,107 @@
+package org.txm.rcpapplication.commands.function;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandlerListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.rosuda.REngine.REXPMismatchException;
+import org.txm.Toolbox;
+import org.txm.functions.intertextualdistance.InterTextDistance;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.searchengine.cqp.AbstractCqiClient;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.clientExceptions.InvalidCqpIdException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.CqpObject;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+import org.txm.stat.StatException;
+import org.txm.stat.data.LexicalTable;
+
+public class ComputeIntersection extends AbstractHandler {
+
+	@Override
+	public void addHandlerListener(IHandlerListener handlerListener) {
+		super.addHandlerListener(handlerListener);
+	}
+
+	@Override
+	public void dispose() {
+		super.dispose();
+	}
+
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection isel = HandlerUtil.getCurrentSelection(event);
+		if (!(isel instanceof IStructuredSelection)) return null;
+		IStructuredSelection selection = (IStructuredSelection) isel;
+		List list = selection.toList();
+		ArrayList<Subcorpus> subcorpora = new ArrayList<Subcorpus>();
+		for (Object o : list) if (o instanceof Subcorpus) subcorpora.add((Subcorpus) o);
+
+		if (subcorpora.size() != 2) {
+			System.out.println("Error: selection size != 2 : "+subcorpora.size());
+			return null;
+		}
+
+		HashSet<MainCorpus> set = new HashSet<MainCorpus>();
+		for (Subcorpus s : subcorpora) set.add(s.getMainCorpus());
+		if (set.size() > 1) {
+			System.out.println("Error: selected subcorpus have different main corpus: "+set);
+			return null;
+		}
+
+		MainCorpus ancestor = subcorpora.get(0).getMainCorpus();
+		String id1 = subcorpora.get(0).getQualifiedCqpId();
+		String id2 = subcorpora.get(1).getQualifiedCqpId();
+		String cqpid = CqpObject.subcorpusNamePrefix + Corpus.getNextSubcorpusCounter();
+		String command = "inter";
+		AbstractCqiClient CQI = Toolbox.getCqiClient();
+
+		//TODO: finish the command
+		
+//		String query = cqpid+"="+command+" "+id1+" "+id2+";";
+//		try {
+//			CQI.query(query)
+//		} catch (Exception e) {
+//			println "Error: "+CQI.getLastError()+". Please restart TXM."
+//			return;
+//		}
+//
+//		Subcorpus subcorpus = new Subcorpus(cqpid, name, ancestor, new Query("$command $id1 $id2;"));
+//
+//		println "$subcorpus stored in $ancestor"
+//
+//		monitor.syncExec(new Runnable() {
+//			public void run() {
+//				CorporaView.refresh();
+//				CorporaView.expand(subcorpus.getParent());
+//			}
+//		});
+
+		return null;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return super.isEnabled();
+	}
+
+	@Override
+	public boolean isHandled() {
+		return super.isHandled();
+	}
+
+	@Override
+	public void removeHandlerListener(IHandlerListener handlerListener) {
+		super.removeHandlerListener(handlerListener);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIntersection.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIndex.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIndex.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIndex.java	(revision 122)
@@ -0,0 +1,111 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.editors.index.IndexEditor;
+import org.txm.rcpapplication.editors.input.IndexEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+// TODO: Auto-generated Javadoc
+/**
+ * open the Index Editor @ author mdecorde.
+ */
+public class ComputeIndex extends AbstractHandler {
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.commands.function.ComputeIndex"; //$NON-NLS-1$
+
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Object s = selection.getFirstElement();
+		if (s instanceof Corpus) {
+			final Corpus corpus = (Corpus) s;
+			openEditor(corpus);
+		} else if (s instanceof Partition) {
+			final Partition partition = (Partition) s;
+			openEditor(partition);
+		}
+
+		return null;
+	}
+	
+	public static boolean  openEditor(Corpus corpus) {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		IWorkbenchPage page = TXMWindows.getActiveWindow().getActivePage();
+		IndexEditorInput editorInput = new IndexEditorInput(corpus);
+		try {
+			StatusLine.setMessage(Messages.ComputeIndex_0);
+			IndexEditor voceditor = (IndexEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+			//voceditor.initializeFields();
+			return true;
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return false;
+	}
+	
+	public static boolean openEditor(Partition partition) {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		IWorkbenchPage page = TXMWindows.getActiveWindow().getActivePage();
+		IndexEditorInput editorInput = new IndexEditorInput(partition);
+		try {
+			StatusLine.setMessage(Messages.ComputeIndex_0);
+			IndexEditor voceditor = (IndexEditor) page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.index.IndexEditor"); //$NON-NLS-1$
+			voceditor.initializeFields();
+			return true;
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeIndex.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInternalView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInternalView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInternalView.java	(revision 122)
@@ -0,0 +1,83 @@
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandlerListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.input.InternalViewEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.utils.logger.Log;
+
+public class ComputeInternalView extends AbstractHandler {
+
+	private IWorkbenchWindow window;
+	private IStructuredSelection selection;
+	private InternalViewEditorInput editorInput;
+
+	@Override
+	public void addHandlerListener(IHandlerListener handlerListener) {
+		super.addHandlerListener(handlerListener);
+	}
+
+	@Override
+	public void dispose() {
+		super.dispose();
+	}
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		Object sel = HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) {
+			Log.warning(Messages.ComputeInternalView_0);
+			return null;
+		}
+		
+		selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof Corpus)) {
+			System.out.println(Messages.ComputeInternalView_1);
+			return null;
+		}
+		final Corpus corpus = (Corpus) s;
+		editorInput = new InternalViewEditorInput(corpus, null);
+
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			StatusLine.setMessage(Messages.ComputeReferencer_0);
+			page.openEditor(editorInput,"org.txm.rcpapplication.editors.internal.InternalViewEditor"); //$NON-NLS-1$
+		
+		} catch (PartInitException e) {
+			System.err.println(Messages.CorporaView_6+ e);
+		}
+
+		return null;
+	}
+
+	@Override
+	public boolean isEnabled() {
+		return super.isEnabled();
+	}
+
+	@Override
+	public boolean isHandled() {
+		return super.isHandled();
+	}
+
+	@Override
+	public void removeHandlerListener(IHandlerListener handlerListener) {
+		super.removeHandlerListener(handlerListener);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeInternalView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCorrespondanceAnalysis.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCorrespondanceAnalysis.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCorrespondanceAnalysis.java	(revision 122)
@@ -0,0 +1,266 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.ca.CA;
+import org.txm.functions.ca.ICAComputable;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.actions.LexicalTableDialog;
+import org.txm.rcpapplication.editors.input.CorrespondanceAnalysisEditorInput;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.stat.data.LexicalTable;
+import org.txm.utils.logger.MessageBox;
+
+// TODO: Auto-generated Javadoc
+/**
+ * if the selection is a lexical table : computes the CA if the selection is a
+ * partition : ask the user which property used and which threshold used then
+ * open the CaEditor @ author mdecorde.
+ */
+public class ComputeCorrespondanceAnalysis extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/** The ca. */
+	private CA ca;
+
+	/** The property. */
+	private Property property;
+
+	/** The fmin. */
+	private int fmin;
+
+	/** The vmax. */
+	private int vmax;
+
+	/** The partition. */
+	private Partition partition;
+	private Corpus corpus;
+
+	/** The lexicaltable. */
+	private LexicalTable lexicaltable;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		if (!Toolbox.isStatEngineInitialized()) {
+			System.out.println(Messages.ComputeCorrespondanceAnalysis_2);
+			return null;
+		}
+		
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		int code = 0;
+		if (selection.getFirstElement() instanceof Partition) {
+			partition = (Partition) selection.getFirstElement();
+			corpus = partition.getCorpus();
+			//warning to few parts
+			if (partition.getNPart() < 4) {
+				MessageDialog d = new MessageDialog(
+						window.getShell(),
+						Messages.ComputeCorrespondanceAnalysis_3,
+						null,
+						NLS.bind(Messages.ComputeCorrespondanceAnalysis_4, partition.getNPart()),
+						0,
+						new String[] { Messages.ComputeCorrespondanceAnalysis_6 },
+						0);
+				d.open();
+				return null;
+			}
+			//ask property and Fmins and Vmax
+			String title = Messages.bind(Messages.ComputeCorrespondanceAnalysisDialog_0, partition.getName());
+			LexicalTableDialog d = new LexicalTableDialog(
+					window.getShell(), partition.getCorpus(), title);
+			code = d.open();
+			if (code == Window.OK) {
+				property = d.getProperty();
+				fmin = d.getFmin();
+				vmax = d.getMaxLines();
+			}
+		} else if (selection.getFirstElement() instanceof LexicalTable) {
+			lexicaltable = (LexicalTable) selection.getFirstElement();
+			property = lexicaltable.getProperty();
+			partition = lexicaltable.getPartition();
+			if (partition != null)
+				corpus = partition.getCorpus();
+			if (lexicaltable.getNColumns() < 4) {
+				MessageBox.error(Messages.ComputeCorrespondanceAnalysis_13);
+				return null;
+			}
+			if (lexicaltable.getNRows() < 4) {
+				MessageBox.error(Messages.ComputeCorrespondanceAnalysis_1);
+				return null;
+			}
+			code = Window.OK;
+		} else  if (selection.getFirstElement() instanceof ICAComputable) {
+			corpus = ((ICAComputable) selection.getFirstElement()).getCorpus();
+			partition = ((ICAComputable) selection.getFirstElement()).getPartition();
+		}
+
+		if (code == Window.OK) {
+			// final Property property = d.getProperty();
+			String statusmessage;
+			if (partition != null)
+				statusmessage = NLS.bind(Messages.ComputeCorrespondanceAnalysis_0, partition.getName(), property);
+			else
+				statusmessage = NLS.bind(Messages.ComputeCorrespondanceAnalysis_0, selection, "<none>"); //$NON-NLS-1$
+			
+			System.out.println(statusmessage);
+			JobHandler jobhandler = new JobHandler(statusmessage) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						JobsTimer.start();
+						monitor.beginTask("", 100); //$NON-NLS-1$
+						monitor.subTask(Messages.ComputeCorrespondanceAnalysis_15);
+
+						if (selection.getFirstElement() instanceof Partition)
+							ca = new CA(partition, property, fmin, vmax);
+						else if (selection.getFirstElement() instanceof LexicalTable)
+							ca = new CA(lexicaltable);
+						else if (selection.getFirstElement() instanceof ICAComputable)
+							ca = ((ICAComputable) selection.getFirstElement()).toCA();
+
+
+						if (selection.getFirstElement() instanceof Partition) {
+							if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+							monitor.subTask(Messages.ComputeCorrespondanceAnalysis_16);
+							
+							this.acquireSemaphore();
+							ca.stepLexicalTable();
+							this.releaseSemaphore();
+							
+							this.acquireSemaphore();
+							ca.stepSortTableLexical();
+							this.releaseSemaphore();
+						}
+
+						monitor.worked(20);
+
+						if (monitor.isCanceled()) return Status.CANCEL_STATUS;
+
+						monitor.subTask(Messages.ComputeCorrespondanceAnalysis_17);
+						this.acquireSemaphore();
+						ca.stepCompute();
+						this.releaseSemaphore();
+						
+						boolean variables = TxmPreferences
+								.getBoolean(CAPreferencePage.SHOWVARIABLES);
+						boolean individuals = TxmPreferences
+								.getBoolean(CAPreferencePage.SHOWINDIVIDUALS);
+						ca.setShown(individuals, variables);
+
+						ca.getLexicalTable().storeResult(ca);
+//						if (partition != null) {
+//							partition.storeResult(ca);
+//						} else {
+//							corpus.storeResult(ca);
+//						}
+						
+						monitor.worked(20);
+						monitor.subTask(Messages.ComputeCorrespondanceAnalysis_8);
+
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								if (ca == null) return;
+								IWorkbenchPage page = window.getActivePage();
+								CorrespondanceAnalysisEditorInput editorInput = new CorrespondanceAnalysisEditorInput(
+										ca, partition, property);
+
+								try {
+									StatusLine.setMessage(Messages.ComputeCorrespondanceAnalysis_14);
+									IEditorPart editor = page
+											.openEditor(editorInput,
+													"org.txm.rcpapplication.editors.ca.CaEditor"); //$NON-NLS-1$
+									StatusLine.setMessage(Messages.ComputeCorrespondanceAnalysis_14);
+								} catch (Exception e) {
+									org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+								} 
+
+							}
+						});
+						monitor.worked(50);
+
+						monitor.subTask(Messages.CreatePartition_9);
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								CorporaView.refresh();
+								CorporaView.expand(ca.getParent());
+							}
+						});
+
+						monitor.worked(100);
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} finally {
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeCorrespondanceAnalysis.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/OpenParaBrowser.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/OpenParaBrowser.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/OpenParaBrowser.java	(revision 122)
@@ -0,0 +1,100 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.editors.input.ParaBrowserEditorInput;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Display and browse text of structural unit of parallel corpora @ author
+ * mdecorde.
+ */
+public class OpenParaBrowser extends AbstractHandler {
+
+	/** The ID. */
+	public static String ID = "org.txm.rcpapplication.commands.function.OpenParaBrowser"; //$NON-NLS-1$
+
+	/** The window. */
+	private IWorkbenchWindow window;
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/** The editor input. */
+	private ParaBrowserEditorInput editorInput;
+
+	// org.txm.rcpapplication.commands.function.OpenParaBrowser
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		/*
+		 * Object s = selection.getFirstElement(); if (s == null) return null;
+		 * if (!(s instanceof MainCorpus)) return null; final MainCorpus corpus =
+		 * (MainCorpus) s;
+		 */
+		List<Object> list = selection.toList();
+		List<MainCorpus> corpusList = new ArrayList<MainCorpus>();
+		for (Object co : list)
+			corpusList.add((MainCorpus) co);
+
+		editorInput = new ParaBrowserEditorInput(corpusList);// Put a list of
+																// corpus
+
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			StatusLine
+					.setMessage(Messages.OpenParaBrowser_0);
+			page
+					.openEditor(editorInput,
+							"org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor"); //$NON-NLS-1$
+		} catch (PartInitException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		return null;
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/OpenParaBrowser.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeConcordance.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeConcordance.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeConcordance.java	(revision 122)
@@ -0,0 +1,255 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import javax.inject.Inject;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.e4.ui.model.application.ui.advanced.MPerspective;
+import org.eclipse.e4.ui.model.application.ui.advanced.impl.PerspectiveStackImpl;
+import org.eclipse.e4.ui.model.application.ui.advanced.impl.PlaceholderImpl;
+import org.eclipse.e4.ui.model.application.ui.basic.MPart;
+import org.eclipse.e4.ui.model.application.ui.basic.MPartSashContainerElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MStackElement;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindow;
+import org.eclipse.e4.ui.model.application.ui.basic.MWindowElement;
+import org.eclipse.e4.ui.model.application.ui.basic.impl.PartSashContainerImpl;
+import org.eclipse.e4.ui.model.application.ui.basic.impl.PartStackImpl;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
+import org.eclipse.e4.ui.workbench.modeling.EPlaceholderResolver;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPartService;
+import org.eclipse.ui.IPerspectiveDescriptor;
+import org.eclipse.ui.ISaveablePart;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.internal.EditorReference;
+import org.eclipse.ui.internal.PartService;
+import org.eclipse.ui.internal.Workbench;
+import org.eclipse.ui.internal.WorkbenchPage;
+import org.eclipse.ui.internal.WorkbenchWindow;
+import org.eclipse.ui.internal.WorkingSet;
+import org.eclipse.ui.internal.registry.PerspectiveDescriptor;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.editors.concordances.ConcordancesEditor;
+import org.txm.rcpapplication.editors.input.ConcordancesEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+import cern.colt.Arrays;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open the concordance editor @ author mdecorde.
+ */
+public class ComputeConcordance extends AbstractHandler {
+
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/** The editor input. */
+	private ConcordancesEditorInput editorInput;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) return null;
+		selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof Corpus))
+			return null;
+		Corpus corpus = (Corpus) s;
+		if (openEditor(corpus)) {
+
+		} else {
+			System.out.println(Messages.ComputeConcordance_1);
+		}
+
+		return null;
+	}
+
+	@Inject
+	public static boolean openEditor(Corpus corpus) {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		ConcordancesEditorInput editorInput = new ConcordancesEditorInput(corpus, null);
+
+		// MD: test of manipulating the editor's position in the UI
+		/*
+		Workbench wb = (Workbench) PlatformUI.getWorkbench();
+
+		System.out.println("Workbench: " + wb);
+		for (IWorkbenchWindow iwindow : wb.getWorkbenchWindows()) {
+			WorkbenchWindow window = (WorkbenchWindow) iwindow;
+
+			System.out.println(" Window: "+window);
+			for (IWorkbenchPage ipage :window.getPages()) {
+				WorkbenchPage page = (WorkbenchPage)ipage;
+				System.out.println("  Page: "+page);
+				
+				for (IEditorReference ieditor : page.getInternalEditorReferences()) {
+					EditorReference editor = (EditorReference)ieditor;
+					System.out.println("   Editor: "+editor+" "+editor.getId());
+					System.out.println("    part: "+ieditor.getPart(false));
+				}
+				for (IEditorPart dirtyEditor : page.getDirtyEditors()) {
+					System.out.println("   IEditorPart: "+dirtyEditor);
+				}
+
+				for (ISaveablePart dirtyPart : page.getDirtyParts()) {
+					System.out.println("   ISaveablePart: "+dirtyPart);
+				}
+
+				for (EditorReference editorref : page.getInternalEditorReferences()) {
+					System.out.println("   EditorReference: "+editorref+" "+editorref.getId());
+				}
+				//				for (IViewReference viewref : page.getViewReferences()) {
+				//					System.out.println("   IViewReference: "+viewref+" "+viewref.getId());
+				//				}
+				for (IWorkingSet iworkingset : page.getWorkingSets()) {
+					WorkingSet workingset = (WorkingSet)iworkingset;
+					System.out.println("   WorkingSet: "+workingset+" "+workingset.getId());
+					for (IAdaptable a : workingset.getElements()) {
+						System.out.println("    IAdaptable: "+a);
+					}
+				}
+
+				MWindow modelwindow = window.getModel();
+				
+				System.out.println("MWindow: "+modelwindow);
+				for (MWindowElement elem : modelwindow.getChildren()) {
+					if (elem instanceof PartSashContainerImpl) {
+						printChildren(elem, " ");
+//						PartSashContainerImpl psc = (PartSashContainerImpl)elem;
+//						System.out.println(" PartSashContainerImpl: "+psc);
+//						for (MPartSashContainerElement elem2 : psc.getChildren()) {
+//
+//							if (elem2 instanceof PerspectiveStackImpl) {
+//								PerspectiveStackImpl psi = (PerspectiveStackImpl)elem2;
+//								System.out.println("  PerspectiveStackImpl: "+psi);
+//								for (MPerspective p : psi.getChildren()) {
+//									System.out.println("   MPerspective: "+p);
+//									for (MPartSashContainerElement elem3 : p.getChildren()) {
+//										if (elem3 instanceof PartSashContainerImpl) {
+//											PartSashContainerImpl psci = (PartSashContainerImpl)elem3;
+//											printChildren(psci, "    ");
+//										} else {
+//											System.out.println("    MPartSashContainerElement: "+elem3);
+//										}
+//									}
+//								}
+//							} else if (elem2 instanceof PartStackImpl) {
+//								PartStackImpl psi = (PartStackImpl)elem2;
+//								System.out.println("  PartStackImpl: "+psi);
+//								for (MStackElement e : psi.getChildren()) {
+//									System.out.println("   MStackElement: "+e);
+//								}
+//							} else {
+//								System.out.println("  MPartSashContainerElement: "+elem2+" id="+elem2.getElementId());
+//							}
+//						}
+					} else {
+						System.out.println(" MWindowElement: "+elem);
+					}
+				}
+			}
+		}
+	*/
+		try {
+			StatusLine.setMessage(Messages.ComputeConcordance_0);
+			IEditorPart editor = TXMWindows.getActiveWindow().getActivePage()
+					.openEditor(editorInput, "org.txm.rcpapplication.editors.ConcordancesEditor"); //$NON-NLS-1$
+			
+//			WorkbenchWindow window = (WorkbenchWindow)TXMWindows.getActiveWindow();
+//			MWindow model = window.getModel();
+//			EModelService modelService = model.getContext().get(EModelService.class);
+//			EPartService partService = model.getContext().get(EPartService.class);
+//			modelService.find("org.eclipse.ui.editorss", model); // find org.eclipse.ui.editorss?					
+//			MPart part = partService.createPart("org.txm.rcpapplication.editors.ConcordancesEditor");
+//// NEXT STEPS : find partStack, add the part, show the part http://stackoverflow.com/questions/26912078/open-an-editing-partas-an-editor-in-previous-eclipse-versions-in-eclipse-rcp-4
+// ? direct access to PlaceholderImpl : elementId=org.eclipse.ui.editorss	
+			if (editor == null) return false;
+			
+		} catch (PartInitException e) {
+			System.err.println(NLS.bind(Messages.GetConcordances_4, e));
+		}
+		return true;
+	}
+
+	@SuppressWarnings("unused")
+	private static void printChildren(Object o, String space) {
+
+		System.out.println(space+o.getClass().getSimpleName()+": "+o);
+		
+		if (o instanceof PlaceholderImpl) {
+			PlaceholderImpl phi = (PlaceholderImpl)o;
+			System.out.println("phi: "+phi);
+		} else if (o instanceof PartSashContainerImpl) {
+			PartSashContainerImpl psci = (PartSashContainerImpl)o;
+			for (MPartSashContainerElement e :psci.getChildren()) {
+				printChildren(e, space+" ");
+			}
+		} else if (o instanceof PerspectiveStackImpl) {
+			PerspectiveStackImpl psi = (PerspectiveStackImpl)o;
+			for (MPerspective p : psi.getChildren()) {
+				printChildren(p,space+" ");
+			}
+		} else if (o instanceof MPerspective) {
+			MPerspective p = (MPerspective)o;
+			for (MPartSashContainerElement e : p.getChildren()) {
+				printChildren(e, space+" ");
+			}
+		} else if (o instanceof PartStackImpl) {
+			PartStackImpl psi = (PartStackImpl)o;
+			for (MStackElement e : psi.getChildren()) {
+				printChildren(e, space+" ");
+			}
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeConcordance.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeReferencer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeReferencer.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeReferencer.java	(revision 122)
@@ -0,0 +1,85 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TXMWindows;
+import org.txm.rcpapplication.editors.input.ReferencerEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open the concordance editor @ author mdecorde.
+ */
+public class ComputeReferencer extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof Corpus))
+			return null;
+		
+		final Corpus corpus = (Corpus) s;
+		openEditor(corpus);
+		return null;
+	}
+
+	public static boolean openEditor(Corpus corpus) {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		ReferencerEditorInput editorInput = new ReferencerEditorInput(corpus, null);
+
+		IWorkbenchWindow window = TXMWindows.getActiveWindow();
+		IWorkbenchPage page = window.getActivePage();
+		try {
+			StatusLine.setMessage(Messages.ComputeReferencer_0);
+			page.openEditor(editorInput,"org.txm.rcpapplication.editors.referencer.ReferencerEditor"); //$NON-NLS-1$
+			return true;
+		} catch (PartInitException e) {
+			System.err.println(Messages.CorporaView_6+ e);
+		}
+		return false;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeReferencer.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/package.html	(revision 122)
@@ -0,0 +1,5 @@
+<html>
+<body>
+	<p>Commands which call textometry functions</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportResult.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportResult.java	(revision 122)
@@ -0,0 +1,220 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.functions.Function;
+import org.txm.functions.ca.CA;
+import org.txm.functions.classification.CAH;
+import org.txm.functions.concordances.Concordance;
+import org.txm.functions.cooccurrences.Cooccurrence;
+import org.txm.functions.index.Index;
+import org.txm.functions.progression.Progression;
+import org.txm.functions.referencer.Referencer;
+import org.txm.functions.specificities.SpecificitesResult;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.EditFile;
+import org.txm.rcpapplication.commands.OpenGraph;
+import org.txm.rcpapplication.preferences.ExportPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.corpus.Lexicon;
+import org.txm.stat.data.LexicalTable;
+// TODO: Auto-generated Javadoc
+/**
+ * export a result of a result by calling the function toTxt(File f) then show
+ * the result in the text editor @ author mdecorde.
+ */
+public class ExportResult extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.function.ExportResult"; //$NON-NLS-1$
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/** The lastopenedfile. */
+	//private static String lastopenedfile;
+
+	/**
+	 * Export a TXM result in a CSV file.
+	 *
+	 * @param event the event
+	 * @return the object
+	 * @throws ExecutionException the execution exception
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		final Object s = selection.getFirstElement();
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+
+		//String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+
+		String extensions[] = {"*.csv"}; //$NON-NLS-1$
+		if (s instanceof Function) {
+			extensions = ((Function)s).getExportTXTExtensions(); //$NON-NLS-1$
+		}
+		dialog.setFilterExtensions(extensions);
+
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+		}
+
+		if (dialog.open() != null) {
+			StatusLine.setMessage(Messages.ExportResult_0);
+			String filepath = dialog.getFilterPath()
+					+ "/" + dialog.getFileName(); //$NON-NLS-1$
+			if (!(filepath.endsWith(extensions[0].substring(1))))
+				filepath += extensions[0].substring(1);
+
+			final File outfile = new File(filepath);
+			LastOpened.set(ID, outfile.getParent(), outfile.getName());
+			try {
+				outfile.createNewFile();
+			} catch (IOException e1) {
+				System.err.println(NLS.bind(Messages.ExportResult_3, outfile, e1));
+			}
+			if (!outfile.canWrite()) {
+				System.out.println(NLS.bind(Messages.ExportResult_5, outfile));
+				return null;
+			}
+			if (!outfile.isFile()) {
+				System.out.println("Error: " + outfile + " is not a file"); //$NON-NLS-1$ //$NON-NLS-2$
+				return null;
+			}
+
+			final String encoding = TxmPreferences.get(ExportPreferencePage.EXPORT_ENCODING,
+					System.getProperty("file.encoding")); //$NON-NLS-1$
+
+			String _colseparator = TxmPreferences.get(ExportPreferencePage.EXPORT_COLSEPARATOR);
+			if (_colseparator == null)
+				_colseparator = "\t"; //$NON-NLS-1$
+			final String colseparator = _colseparator;
+
+			String _txtseparator = TxmPreferences.get(ExportPreferencePage.EXPORT_TXTSEPARATOR);
+			if (_txtseparator == null)
+				_txtseparator = ""; //$NON-NLS-1$
+
+
+			if (!colseparator.equals("\t") && _txtseparator.length() == 0) { //$NON-NLS-1$
+				_txtseparator = "\""; //$NON-NLS-1$
+			}
+
+			final String txtseparator = _txtseparator;
+
+			JobHandler jobhandler = new JobHandler(Messages.ExportResult_0) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					try {
+						this.runInit(monitor);
+						monitor.beginTask(Messages.ExportResult_1, 100);
+
+						if (s instanceof Function)
+							((Function)s).setCurrentMonitor(this); // Allows Functions to protect themselves from interruption
+
+						if (s instanceof SpecificitesResult)
+							((SpecificitesResult) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof Concordance)
+							((Concordance) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof Cooccurrence)
+							((Cooccurrence) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof Referencer)
+							((Referencer) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof Lexicon)
+							((Lexicon) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof Index)
+							((Index) s).toTxt(outfile, encoding, colseparator, txtseparator);
+						else if (s instanceof LexicalTable) {
+							this.acquireSemaphore(); // this is not a org.txm.Function and does not have the acquireSemaphore and releaseSemaphore methods
+							((LexicalTable) s).toTxt(outfile, encoding, colseparator, txtseparator);
+							this.releaseSemaphore();
+						} else if (s instanceof CA) {
+							((CA) s).toTxt(outfile, encoding);
+						} else if (s instanceof CAH) {
+							((CAH) s).toTxt(outfile, encoding);
+						} else if (s instanceof Progression) {
+							((Progression) s).toTxt(outfile, encoding);
+						} else if (s instanceof Function) {
+							((Function)s).toTxt(outfile, encoding, colseparator, txtseparator);
+						}
+
+						if (outfile.exists()) {
+							// Open internal editor in the UI thread
+							if(TxmPreferences.getBoolean(ExportPreferencePage.EXPORT_SHOW))	{
+								this.syncExec(new Runnable() {
+									@Override
+									public void run() {
+										EditFile.openfile(outfile.getAbsolutePath());
+									}
+								});
+							}
+
+							System.out.println(NLS.bind("", outfile.getAbsolutePath())); //$NON-NLS-1$
+						} else {
+							System.out.println(NLS.bind(Messages.ExportResult_6, outfile.getAbsolutePath()));
+						}
+					} catch (ThreadDeath td) {
+						if (s instanceof Function)
+							((Function)s).clean();
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						System.out.println(NLS.bind(Messages.ExportResult_6, s, e));
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						return Status.CANCEL_STATUS;
+					} finally {
+						if (s instanceof Function)
+							((Function)s).setCurrentMonitor(null);
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+
+			jobhandler.startJob();
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ExportResult.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeDiagnostic.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeDiagnostic.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeDiagnostic.java	(revision 122)
@@ -0,0 +1,202 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.diagnostic.Diagnostic;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.commands.OpenBrowser;
+import org.txm.rcpapplication.editors.TXMWebBrowserEditor;
+import org.txm.rcpapplication.preferences.DiagnosticPreferencePage;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.AbstractCqiClient;
+import org.txm.searchengine.cqp.NetCqiClient;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.utils.AsciiUtils;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Call the function Information on a MainCorpus, a SubCorpus and a Partition
+ * show basic stats and give some properties values 
+ * @author mdecorde.
+ */
+public class ComputeDiagnostic extends AbstractHandler {
+	
+	/** The selection. */
+	private IStructuredSelection selection;
+	
+	/** The response. */
+	int response = SWT.YES;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		if (!Toolbox.isSearchEngineInitialized()) return false;
+		
+		Object sel = HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) {
+			Log.warning(Messages.ComputeDiagnostic_0);
+			return null;
+		}
+		
+		selection = (IStructuredSelection) sel;
+		if (!(selection.getFirstElement() instanceof Corpus)) {
+			System.out.println(Messages.ComputeDiagnostic_1+selection.getFirstElement());
+			return null;
+		}
+		
+		final Corpus corpus = (Corpus) selection.getFirstElement();
+
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		if (!new File(txmhome, "informations").exists()) //$NON-NLS-1$
+			new File(txmhome, "informations").mkdir(); //$NON-NLS-1$
+		String filename = corpus.getParent().getName()+"-"+corpus.getName(); //$NON-NLS-1$
+		filename = AsciiUtils.buildId(filename);
+		final File diagfile = new File(
+				txmhome, "results/" + filename + "-infos.html"); //$NON-NLS-1$ //$NON-NLS-2$
+
+		AbstractCqiClient cqi = CorpusManager.getCorpusManager().getCqiClient();
+		if (diagfile.exists() && cqi instanceof NetCqiClient) {
+			Shell s = new Shell();
+			MessageBox messageBox = new MessageBox(s, SWT.ICON_QUESTION
+					| SWT.YES | SWT.NO);
+			messageBox.setMessage(NLS.bind(Messages.Diagnostique_1, diagfile.getName()));
+			response = messageBox.open();
+		}
+
+		JobHandler jobhandler = new JobHandler(NLS.bind(Messages.Diagnostique_0, corpus.getName())) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					JobsTimer.start();
+					//this.setCurrentMonitor(monitor);
+					monitor.beginTask(NLS.bind(Messages.Diagnostique_0, corpus.getName()), 100);
+					final int maxvalue = TxmPreferences.getInt(DiagnosticPreferencePage.MAXVALUE);
+					diagfile.getParentFile().mkdir();
+					
+					if (monitor.isCanceled())
+						return Status.CANCEL_STATUS;
+					
+					if (response == SWT.YES) {
+						diagfile.delete();
+						
+						monitor.subTask(Messages.Diagnostique_7);
+						Diagnostic diag = new Diagnostic(corpus, maxvalue);
+						monitor.worked(5);
+						if (monitor.isCanceled()) {
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+						
+						monitor.subTask(Messages.Diagnostique_8);
+						diag.stepGeneralInfos();
+						monitor.worked(10);
+						if(monitor.isCanceled()) {
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+						
+						monitor.subTask(Messages.Diagnostique_9);
+						diag.stepLexicalProperties();
+						monitor.worked(20);
+						if (monitor.isCanceled()) {
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+						
+						monitor.subTask(Messages.Diagnostique_10);
+						diag.stepStructuralUnits();
+						monitor.worked(50);
+						if (monitor.isCanceled()) {
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+						
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+						
+						//if(diagfile.exists() && diagfile.canRead())
+						diag.toHTML(diagfile);
+						if (!diagfile.exists() || !diagfile.canRead()) {
+							System.out.println(Messages.Diagnostique_2+corpus+": "+diagfile);  //$NON-NLS-1$
+							monitor.done();
+							return Status.CANCEL_STATUS;
+						}
+					}
+
+					monitor.subTask(Messages.Diagnostique_11);
+					monitor.worked(5);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							TXMWebBrowserEditor editor = OpenBrowser.openfile(diagfile.getAbsolutePath());
+							//editor.focus();
+							//CorporaView.refresh();
+							//CorporaView.expand(corpus);
+							
+						}
+					});
+
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}	
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeDiagnostic.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeLexicalTable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeLexicalTable.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeLexicalTable.java	(revision 122)
@@ -0,0 +1,547 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.function;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.batik.util.gui.CSSMediaPanel.Dialog;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.dialogs.ListDialog;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.functions.LexicalTableAble;
+//import org.txm.functions.queryindex.QueryIndex;
+import org.txm.functions.index.Index;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.actions.LexicalTableDialog;
+import org.txm.rcpapplication.editors.input.LexicalTableEditorInput;
+import org.txm.rcpapplication.preferences.CAPreferencePage;
+import org.txm.rcpapplication.preferences.LexicalTablePreferencePage;
+import org.txm.rcpapplication.swt.dialog.PropertySelector;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.utils.Logger;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.Partition;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.stat.data.LexicalTable;
+import org.txm.stat.engine.r.data.LexicalTableImpl;
+import org.txm.stat.engine.r.data.QuantitativeDataStructureImpl;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * if the selection is a Partition : creates a lexical table allready filled if
+ * the selection is a index : creates a lexical table with the Index
+ * entries @ author mdecorde.
+ */
+public class ComputeLexicalTable extends AbstractHandler {
+
+	/** The window. */
+	private IWorkbenchWindow window;
+
+	/** The selection. */
+	private IStructuredSelection selection;
+
+	/** The table. */
+	private LexicalTable table = null;
+
+	/** The copy. */
+	private LexicalTable copy = null;
+
+	/** The code. */
+	int code;
+
+	/** The d. */
+	LexicalTableDialog d;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		if (!Toolbox.isStatEngineInitialized()) {
+			System.out.println(Messages.ComputeLexicalTable_4);
+			return null;
+		}
+
+		window = HandlerUtil.getActiveWorkbenchWindow(event);
+		selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		Object s = selection.getFirstElement();
+
+		if (s instanceof Index) {
+			List<Index> vocabularies = selection.toList();
+
+			System.out.println(Messages.ComputeLexicalTable_3);
+			ArrayList<String> choices = new ArrayList<String>();
+			choices.add(Messages.ComputeLexicalTable_16);
+			choices.add(Messages.ComputeLexicalTable_12);
+			ListDialog dialog = new ListDialog(window.getShell());
+			dialog.setInput(choices);
+			dialog.setLabelProvider(new LabelProvider());
+			dialog.setContentProvider(new ArrayContentProvider());
+			dialog.setTitle(Messages.ComputeLexicalTable_13);
+
+			int ret = dialog.open();
+			boolean useAllOccurrences = false;
+			//System.out.println("ret= "+ret);
+			if (ret == Dialog.OK_OPTION) {
+				//System.out.println("ok");
+				if(dialog.getResult().length == 0)
+					return null;
+				String sel = (String) dialog.getResult()[0];
+				if(sel.equals(Messages.ComputeLexicalTable_16))
+					useAllOccurrences = true;
+			} else {
+				//System.out.println("cancel");
+				return false;
+			}
+
+			computeWithVocabularies(vocabularies, useAllOccurrences);
+			return null;
+			//		} else if (s instanceof QueryIndex) {
+			//			List<QueryIndex> qindexes = selection.toList();
+			//			computeWithQueryIndexes(qindexes);
+			//			return null;
+		} else if (s instanceof Partition) {
+			computeWithPartition((Partition) s);
+			return null;
+		} else if (s instanceof LexicalTableAble) {
+			computeWithLexicalTableAble((LexicalTableAble) s);
+			return null;
+		} else
+			return null;
+	}
+
+	/**
+	 * Compute with partition.
+	 *
+	 * @param partition the partition
+	 */
+	private void computeWithLexicalTableAble(final LexicalTableAble lexicalTableAble) {
+
+		JobHandler jobhandler = new JobHandler(
+				Messages.ComputeLexicalTable_0) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					JobsTimer.start();
+					monitor.beginTask(NLS.bind(Messages.ComputeLexicalTable_1, lexicalTableAble.getName(), "none"), 100);
+
+					this.acquireSemaphore();
+					table = lexicalTableAble.toLexicalTable();
+					this.releaseSemaphore();
+
+					monitor.worked(45);
+
+					lexicalTableAble.getParent().storeResult(table);
+
+					monitor.worked(5);
+
+					//monitor.subTask(Messages.ComputeSpecifities_10);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							IWorkbenchPage page = window.getActivePage();
+							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(
+									table, null, null);
+							try {
+								StatusLine.setMessage(Messages.ComputeLexicalTable_10);
+								page.openEditor(editorInput,
+										"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+							} catch (PartInitException e) {
+								org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+							} 
+						}
+					});
+
+					monitor.worked(50);
+					if (monitor.isCanceled())
+						return Status.CANCEL_STATUS;
+
+					//monitor.subTask(Messages.ComputeSpecifities_2);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							CorporaView.refresh();
+							CorporaView.expand(table.getParent());
+							QueriesView.refresh();
+							RVariablesView.refresh();
+						}
+					});
+
+					monitor.worked(100);
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+					JobsTimer.stopAndPrint();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+
+		return;
+	}
+
+	/**
+	 * Compute with partition.
+	 *
+	 * @param partition the partition
+	 */
+	private void computeWithPartition(final Partition partition) {
+
+		final Property property;
+		final int Fmin;
+		final int vmax;
+		
+		String title = Messages.bind(Messages.ComputeLexicalTable_0, partition.getName());
+		LexicalTableDialog d = new LexicalTableDialog(window.getShell(), partition
+				.getCorpus(), title);
+		d.setFminAndVMax(TxmPreferences.getInt(LexicalTablePreferencePage.FMIN, 10), 
+				TxmPreferences.getInt(CAPreferencePage.VMAX, 200));
+		
+		if (d.open() == Window.OK) {
+			property = d.getProperty();
+			Fmin = d.getFmin();
+			vmax = d.getMaxLines();
+			// PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(CorporaView.ID);
+			JobHandler jobhandler = new JobHandler(
+					Messages.bind(Messages.ComputeLexicalTable_0, partition.getName())) {
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						JobsTimer.start();
+						monitor.beginTask(NLS.bind(Messages.ComputeLexicalTable_1, partition.getName(), property), 100);
+
+						this.acquireSemaphore();
+						table = partition.getLexicalTable(property, Fmin);
+						this.releaseSemaphore();
+						
+						this.acquireSemaphore();
+						copy = table.getCopy();
+						this.releaseSemaphore();
+						
+						this.acquireSemaphore();
+						copy.cut(vmax);
+						this.releaseSemaphore();
+
+						monitor.worked(45);
+						if (monitor.isCanceled() || copy == null) {
+							return Status.CANCEL_STATUS;
+						}
+
+						partition.storeResult(copy);
+
+						monitor.worked(5);
+
+						//monitor.subTask(Messages.ComputeSpecifities_10);
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								IWorkbenchPage page = window.getActivePage();
+								LexicalTableEditorInput editorInput = new LexicalTableEditorInput(
+										copy, partition, property);
+								try {
+									StatusLine.setMessage(Messages.ComputeLexicalTable_10);
+									page.openEditor(editorInput,
+											"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+								} catch (PartInitException e) {
+									org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+								} 
+							}
+						});
+
+						monitor.worked(50);
+						if (monitor.isCanceled())
+							return Status.CANCEL_STATUS;
+
+						//monitor.subTask(Messages.ComputeSpecifities_2);
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								CorporaView.refresh();
+								CorporaView.expand(table.getParent());
+								QueriesView.refresh();
+								RVariablesView.refresh();
+							}
+						});
+
+						monitor.worked(100);
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} finally {
+						monitor.done();
+						JobsTimer.stopAndPrint();
+					}
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		}
+		return;
+	}
+
+	//	/**
+	//	 * Compute with query index.
+	//	 *
+	//	 * @param fullvocabularies the fullvocabularies
+	//	 * @return true, if successful
+	//	 */
+	//	private boolean computeWithQueryIndexes(List<QueryIndex> oqindexes) {
+	//		if (oqindexes.size() == 0) {
+	//			return false;
+	//		}
+	//		
+	//
+	//		final List<QueryIndex> qindexes = oqindexes.subList(0, 1);
+	//		for (QueryIndex voc : qindexes)
+	//			if (!voc.isComputedWithPartition()) {
+	//				System.out.println(Messages.ComputeLexicalTable_5);
+	//				StatusLine.setMessage(Messages.ComputeLexicalTable_5);
+	//				return false;
+	//			}
+	//
+	//		Partition firstPartition = qindexes.get(0).getPartition();
+	//		for (QueryIndex voc : qindexes)
+	//			if (!firstPartition.equals(voc.getPartition())) {
+	//				Log.warning(NLS.bind(Messages.ComputeLexicalTable_7, firstPartition));
+	//				return false;
+	//			}
+	//
+	//		final Partition partition = ((QueryIndex) selection.getFirstElement())
+	//				.getPartition();
+	//		//final Property property = properties.get(0);
+	//		
+	//		JobHandler jobhandler = new JobHandler(Messages.ComputeSpecificities_0) {
+	//			@Override
+	//			protected IStatus run(IProgressMonitor monitor) {
+	//				this.runInit(monitor);
+	//				try {      
+	//					monitor.beginTask(NLS.bind(Messages.ComputeLexicalTable_1, partition.getName(), Messages.ComputeLexicalTable_2), 100);
+	//					this.acquireSemaphore();
+	//					copy = LexicalTableImpl.createLexicalTableImpl(qindexes,
+	//							QuantitativeDataStructureImpl
+	//									.createSymbole(LexicalTableImpl.class));
+	//										monitor.worked(45);
+	//					this.releaseSemaphore();
+	//					if (copy == null)
+	//						return Status.CANCEL_STATUS;
+	//
+	//					partition.storeResult(copy);
+	//					monitor.worked(5);
+	//
+	//					monitor.subTask(Messages.ComputeLexicalTable_10);
+	//					syncExec(new Runnable() {
+	//						@Override
+	//						public void run() {
+	//							IWorkbenchPage page = window.getActivePage();
+	//							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(
+	//									copy, partition, null);
+	//							try {
+	//								StatusLine.setMessage(Messages.ComputeLexicalTable_10);
+	//								page.openEditor(editorInput,
+	//												"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+	//							} catch (PartInitException e) {
+	//								org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+	//							} 
+	//						}
+	//					});
+	//
+	//					monitor.worked(50);
+	//					if (monitor.isCanceled())
+	//						return Status.CANCEL_STATUS;
+	//
+	//					monitor.subTask(Messages.ComputeSpecifities_2);
+	//					syncExec(new Runnable() {
+	//						@Override
+	//						public void run() {
+	//							CorporaView.refresh();
+	//							CorporaView.expand(copy.getPartition());
+	//							QueriesView.refresh();
+	//							RVariablesView.refresh();
+	//						}
+	//					});
+	//
+	//					monitor.worked(100);
+	//				} catch (ThreadDeath td) { 
+	//					return Status.CANCEL_STATUS;
+	//				} catch (Exception e) {
+	//					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+	//				} finally {
+	//					monitor.done();
+	//				}
+	//				return Status.OK_STATUS;
+	//			}
+	//		};
+	//		jobhandler.startJob();
+	//
+	//		return true;
+	//	}
+
+	/**
+	 * Compute with vocabularies.
+	 *
+	 * @param fullvocabularies the fullvocabularies
+	 * @return true, if successful
+	 */
+	private boolean computeWithVocabularies(List<Index> fullvocabularies, final boolean useAllOccurrences) {
+		if (fullvocabularies.size() == 0) {
+			return false;
+		}
+
+		final List<Index> vocabularies = fullvocabularies.subList(0, 1);
+		for (Index voc : vocabularies) {
+			if (!voc.isComputedWithPartition()) {
+				System.out.println(Messages.ComputeLexicalTable_5);
+				StatusLine.setMessage(Messages.ComputeLexicalTable_5);
+				return false;
+			}
+		}
+		
+		List<Property> properties = vocabularies.get(0).getProperties();
+		for (Index voc : vocabularies) {
+			if (!properties.equals(voc.getProperties())) {
+				Log.warning(NLS.bind(Messages.ComputeLexicalTable_6, properties));
+				return false;
+			}
+		}
+		
+		final Index firstIndex = vocabularies.get(0);
+		Partition firstPartition = firstIndex.getPartition();
+		for (Index voc : vocabularies) {
+			if (!firstPartition.equals(voc.getPartition())) {
+				Log.warning(NLS.bind(Messages.ComputeLexicalTable_7, firstPartition));
+				return false;
+			}
+		}
+		
+		final Partition partition = firstIndex.getPartition();
+		final Property property = properties.get(0);
+
+		JobHandler jobhandler = new JobHandler(Messages.bind(Messages.ComputeLexicalTable_0, firstIndex.getName())) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					monitor.beginTask("Computing Lexical table with Index: "+firstIndex+" property: "+property, 100);
+					this.acquireSemaphore();
+					copy = LexicalTableImpl.createLexicalTableImpl(vocabularies,
+							QuantitativeDataStructureImpl
+							.createSymbole(LexicalTableImpl.class), useAllOccurrences);
+					monitor.worked(45);
+					this.releaseSemaphore();
+					if (monitor.isCanceled() || copy == null)
+						return Status.CANCEL_STATUS;
+
+					firstIndex.storeResult(copy);
+					monitor.worked(5);
+
+					monitor.subTask(Messages.ComputeLexicalTable_10);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							IWorkbenchPage page = window.getActivePage();
+							LexicalTableEditorInput editorInput = new LexicalTableEditorInput(
+									copy, partition, property);
+							try {
+								StatusLine.setMessage(Messages.ComputeLexicalTable_10);
+								page.openEditor(editorInput,
+										"org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"); //$NON-NLS-1$
+							} catch (PartInitException e) {
+								org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+							} 
+						}
+					});
+
+					monitor.worked(50);
+					if (monitor.isCanceled())
+						return Status.CANCEL_STATUS;
+
+					monitor.subTask(Messages.ComputeSpecifities_2);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							CorporaView.refresh();
+							CorporaView.expand(copy.getParent());
+							QueriesView.refresh();
+							RVariablesView.refresh();
+						}
+					});
+
+					monitor.worked(100);
+				} catch (ThreadDeath td) { 
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/function/ComputeLexicalTable.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/TxmCommand.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/TxmCommand.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/TxmCommand.java	(revision 122)
@@ -0,0 +1,26 @@
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.txm.rcpapplication.Messages;
+
+public class TxmCommand extends AbstractHandler {
+
+	protected String name = "noname"; //$NON-NLS-1$
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+	
+	public void install()
+	{
+		System.out.println(Messages.TxmCommand_1+name);
+	}
+	
+	public void preInstall()
+	{
+		System.out.println(Messages.TxmCommand_1+name);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/TxmCommand.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CopyFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CopyFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CopyFile.java	(revision 122)
@@ -0,0 +1,70 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: copy the selected file. 
+ * 
+ * @mdecorde
+ */
+public class CopyFile extends AbstractHandler {
+
+	public static File toCopy;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			Object o = ((IStructuredSelection)selection).getFirstElement();
+
+			if (o instanceof File) {
+				File file = (File)o;
+				copy(file);
+			}
+		}
+		return null;
+	}
+	
+	public static void copy(File file) {
+		toCopy = file;
+		CutFile.toCut = null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CopyFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenWelcomePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenWelcomePage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenWelcomePage.java	(revision 122)
@@ -0,0 +1,85 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.txm.rcpapplication.Activator;
+import org.txm.utils.logger.Log;
+
+/**
+ * Open the internal browser of TXM with a file 
+ * 
+ * @author mdecorde.
+ */
+public class OpenWelcomePage extends AbstractHandler {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.OpenWelcomePage"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		openWelcomePage();
+		return null;
+	}
+
+	public static void openWelcomePage() {
+		
+		String locale = Locale.getDefault().getLanguage();
+		String version = Platform.getBundle(Activator.PLUGIN_ID).getVersion().toString();
+		int idx = version.lastIndexOf("."); //$NON-NLS-1$
+		if (idx > 0) version = version.substring(0, idx); // remove the "qualifier" part
+		
+		String urlString = "http://txm.sourceforge.net/welcome/"+version+"/"+locale+"/welcome.html";
+		try {
+			URL url = new URL(urlString);
+			try {
+				url.openStream().close();
+			} catch (IOException e) {
+				Log.info(e.getMessage());
+				Log.printStackTrace(e);
+				urlString = "http://txm.sourceforge.net/welcome/"+version+"/en/welcome.html";
+				url = new URL(urlString);
+			}
+			OpenBrowser.openfile(urlString); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		} catch (MalformedURLException e) {
+			Log.severe(e.getMessage());
+			Log.printStackTrace(e);
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenWelcomePage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/PasteFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/PasteFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/PasteFile.java	(revision 122)
@@ -0,0 +1,134 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.utils.IOClipboard;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a groovy script file in the same thread a the RCP @ author mdecorde.
+ */
+public class PasteFile extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			Object o = ((IStructuredSelection)selection).getFirstElement();
+
+			if (o instanceof File) {
+				paste((File)o);
+			}
+		}
+		return null;
+	}
+	
+	public static void paste(File folder) {
+
+		if (folder.isFile()) folder = folder.getParentFile();
+		if (folder.isDirectory() && folder.canWrite()) {
+			if (CopyFile.toCopy != null) {
+				File source = CopyFile.toCopy;
+				if (source.isDirectory()) return; // don't copy directory
+				
+				File dest = new File(folder, source.getName());
+				while (dest.exists()) {
+					dest = new File(folder, "copy_"+dest.getName()); //$NON-NLS-1$
+				}
+				try {
+					if (!org.txm.utils.FileCopy.copy(source, dest))
+						System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest);
+				} catch (IOException e) {
+					System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest+Messages.PasteFile_4+e);
+				}
+			} else if (CutFile.toCut != null) {
+				File source = CutFile.toCut;
+				if (source.isDirectory()) return; // don't move directory
+				File dest = new File(folder, source.getName());
+				while (dest.exists()) {
+					dest = new File(folder, "copy_"+dest.getName()); //$NON-NLS-1$
+				}
+				try {
+					if (!org.txm.utils.FileCopy.copy(source, dest))
+						System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest);
+					if (!source.delete()) 
+						System.out.println(Messages.PasteFile_3+source);
+					CutFile.toCut = null;
+				} catch (IOException e) {
+					System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest+Messages.PasteFile_4+e);
+				}
+			} else {
+				// check clipboard content
+				String[] paths = IOClipboard.readFiles();
+				if (paths == null) return;
+				System.out.println("Coping files: "+StringUtils.join(Arrays.asList(paths), ", "));
+				for (String path : paths) {
+					File source = new File(path);
+					File dest = new File(folder, source.getName());
+					while (dest.exists()) {
+						dest = new File(folder, "copy_"+dest.getName()); //$NON-NLS-1$
+					}
+					
+					try {
+						if (source.isDirectory()) {
+							org.txm.utils.FileCopy.copyFiles(source, dest);
+						} else {
+							if (!org.txm.utils.FileCopy.copy(source, dest))
+								System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest);
+						}
+						
+					} catch (IOException e) {
+						System.out.println(Messages.PasteFile_1+source+Messages.ApplicationWorkbenchAdvisor_37+dest+Messages.PasteFile_4+e);
+					}
+				}
+			}
+			CopyFile.toCopy = null;
+			CutFile.toCut = null;
+			Explorer.refresh();
+			MacroExplorer.refresh();
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/PasteFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RestartTXM.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RestartTXM.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RestartTXM.java	(revision 122)
@@ -0,0 +1,103 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.JobsTimer;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.utils.JobHandler;
+
+// TODO: Auto-generated Javadoc
+/**
+ * restart TXM: restart searchengine, statengine, workspace... 
+ * @author mdecorde
+ * 
+ */
+public class RestartTXM extends AbstractHandler {
+
+	/** The ID. */
+	static public String ID = "org.txm.rcpapplication.commands.RestartTXM"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		JobHandler jobhandler = new JobHandler("Restarting...") { 
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				JobsTimer.start();
+				try {
+					monitor.beginTask(Messages.RestartTXM_1, 100);
+					Toolbox.updateProperties(TxmPreferences.getProperties());
+					Toolbox.restart();
+
+					monitor.worked(95);
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							reloadViews();
+						}
+					});
+
+				} catch (Exception e) {
+					System.out.println(NLS.bind(Messages.RunGroovyScript_8, e));
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();
+				}
+				JobsTimer.stopAndPrint();
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+		return event;
+	}
+
+	public static void reloadViews() {
+		//System.out.println(Messages.RestartTXM_0);
+		org.txm.rcpapplication.views.CorporaView.reload();
+		org.txm.rcpapplication.views.CorporaView.refresh();
+		org.txm.rcpapplication.views.RConsole.reload();
+		org.txm.rcpapplication.views.BasesView.reload();
+		org.txm.rcpapplication.views.BasesView.refresh();
+		org.txm.rcpapplication.views.QueriesView.reload();
+		org.txm.rcpapplication.views.QueriesView.refresh();
+		//System.err.println(Messages.AddBase_10);
+		//StatusLine.setMessage(Messages.AddBase_10);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/RestartTXM.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveProject.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveProject.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveProject.java	(revision 122)
@@ -0,0 +1,69 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Project;
+import org.txm.rcpapplication.views.BasesView;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RemoveProject.
+ */
+public class RemoveProject extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		System.out.println(""); //$NON-NLS-1$
+		Project p = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				p = (Project) iterator.next();
+				break;
+			}
+		}
+
+		if (p != null)
+			p.getWorkspace().removeProject(p.getName());
+
+		BasesView.refresh();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveProject.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/SetSearchEngine.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/SetSearchEngine.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/SetSearchEngine.java	(revision 122)
@@ -0,0 +1,123 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jface.util.Util;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.importer.cwb.CwbEncode;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.preferences.CQPPreferencePage;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class SetSearchEngine.
+ * 
+ * not used
+ */
+@Deprecated
+public class SetSearchEngine extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+//		IPreferencesService service = Platform.getPreferencesService();
+//		String currentengine = service.getString(Application.PLUGIN_ID,
+//				CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY, "", null); //$NON-NLS-1$
+//		currentengine = new File(currentengine).getParent();
+//
+//		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+//				.getShell();
+//		DirectoryDialog dialog = new DirectoryDialog(shell, SWT.OPEN);
+//		dialog.setFilterPath(currentengine);
+//
+//		if (dialog.open() != null) {
+//			String path = dialog.getFilterPath();
+//			System.out.println("import searchengine " + path); //$NON-NLS-1$
+//			CwbEncode.patchDir(new File(path));
+//
+//			Preferences preferences = new InstanceScope()
+//					.getNode(Application.PLUGIN_ID);
+//
+//			preferences.put(CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY, path
+//					+ "/registry"); //$NON-NLS-1$
+//
+//			if (Util.isWindows()) //$NON-NLS-1$ //$NON-NLS-2$
+//				preferences.put(
+//						CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE, path
+//								+ "/bin/cqpserver.exe"); //$NON-NLS-1$
+//			else
+//				preferences.put(
+//						CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE, path
+//								+ "/bin/cqpserver"); //$NON-NLS-1$
+//
+//			preferences.put(CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE,
+//					path + "/cqpserver.init"); //$NON-NLS-1$
+//			try {
+//				preferences.flush();
+//			} catch (BackingStoreException e) {
+//				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+//			}
+//
+//			org.txm.Toolbox.shutdown();
+//			try {
+//				org.txm.Toolbox
+//						.initialize(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+//								.getProperties());
+//			} catch (Exception e) {
+//				// TODO Auto-generated catch block
+//				org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+//			}
+//			org.txm.rcpapplication.views.CorporaView.refresh();
+//
+//			System.out
+//					.println("preferences " + preferences.get(CQPPreferencePage.CQI_SERVER_PATH_TO_REGISTRY, null)); //$NON-NLS-1$
+//			System.out
+//					.println("preferences " + preferences.get(CQPPreferencePage.CQI_SERVER_PATH_TO_EXECUTABLE, null)); //$NON-NLS-1$
+//			System.out
+//					.println("preferences " + preferences.get(CQPPreferencePage.CQI_SERVER_PATH_TO_INIT_FILE, null)); //$NON-NLS-1$
+//		}
+
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/SetSearchEngine.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/PurgeCorpora.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/PurgeCorpora.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/PurgeCorpora.java	(revision 122)
@@ -0,0 +1,131 @@
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.RestartTXM;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
+import org.txm.Toolbox;
+import org.txm.objects.Workspace;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.DeleteDir;
+@Deprecated
+public class PurgeCorpora extends AbstractHandler {
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Shell s = new Shell();
+		try {
+			List<MainCorpus> input = CorpusManager.getCorpusManager().getCorpora();
+			ListSelectionDialog corporaDialogs = new ListSelectionDialog(s, input,
+					new ArrayContentProvider(), new LabelProvider(), Messages.PurgeCorpora_0);
+
+			corporaDialogs.open();
+			Object[] toRemove = corporaDialogs.getResult();
+			System.out.println(Messages.PurgeCorpora_1+ Arrays.toString(toRemove));
+			if (toRemove.length == input.size()) {
+				deleteAll(s);
+			} else {
+				for(Object obj : corporaDialogs.getResult()) {
+					MainCorpus corpus = (MainCorpus) obj;
+					try {
+						corpus.delete();
+					} catch (Exception e) {
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					}
+				}
+				RestartTXM.reloadViews();
+			}
+		} catch (CqiClientException e1) {
+			System.out.println(Messages.PurgeCorpora_2+e1);
+			deleteAll(s);
+		}
+
+		return null;
+	}
+
+	public void deleteAll(Shell s) {
+
+		MessageBox messageBox = new MessageBox(s, SWT.ICON_QUESTION | SWT.YES | SWT.NO);
+		messageBox.setMessage(Messages.PurgeCorpora_3);
+		int response = messageBox.open();
+		if (response != SWT.YES) {
+			StatusLine.setMessage(""); //$NON-NLS-1$
+			return;
+		}
+		
+		String path = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		if (path == null || path.trim().length() == 0) {
+			System.out.println(Messages.PurgeCorpora_4);
+			return;
+		}
+
+		final File workspace = new File(path);
+		if (workspace.exists()) {
+			JobHandler jobhandler = new JobHandler("Purging corpora...") { 
+				@Override
+				protected IStatus run(IProgressMonitor monitor) {
+					this.runInit(monitor);
+					try {
+						System.out.println(Messages.PurgeCorpora_5);
+						File corpora = new File(workspace, "corpora"); //$NON-NLS-1$
+						if (!DeleteDir.deleteDirectory(corpora)) {
+							System.out.println(Messages.PurgeCorpora_7);
+						}
+						corpora.mkdir();
+
+						File registry = new File(workspace, "registry"); //$NON-NLS-1$
+						if (!DeleteDir.deleteDirectory(registry)) {
+							System.out.println(Messages.PurgeCorpora_9);
+						}
+						registry.mkdir();
+						System.out.println(Messages.PurgeCorpora_10);
+						File xmlfile = new File(workspace, "workspaces/default.xml"); //$NON-NLS-1$
+						this.acquireSemaphore();
+						Toolbox.workspace = Workspace.createEmptyWorkspace(xmlfile);
+						this.releaseSemaphore();
+						
+						System.out.println(Messages.PurgeCorpora_12);
+
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								RestartTXM.reloadViews();
+							}
+						});
+					} catch (ThreadDeath td) {
+						return Status.CANCEL_STATUS;
+					} catch (Exception e) {
+						System.out.println(NLS.bind(Messages.RunGroovyScript_8, e));
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} finally {
+						monitor.done();
+					}
+
+					return Status.OK_STATUS;
+				}
+			};
+			jobhandler.startJob();
+		} else {
+			System.out.println(Messages.PurgeCorpora_13+workspace.getAbsolutePath());
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/PurgeCorpora.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveBase.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveBase.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveBase.java	(revision 122)
@@ -0,0 +1,69 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Base;
+import org.txm.rcpapplication.views.BasesView;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RemoveBase.
+ */
+public class RemoveBase extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		System.out.println(""); //$NON-NLS-1$
+		Base p = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				p = (Base) iterator.next();
+				break;
+			}
+		}
+
+		if (p != null)
+			p.getProject().removeBase(p.getName());
+
+		BasesView.refresh();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveBase.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/BuildCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/BuildCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/BuildCorpus.java	(revision 122)
@@ -0,0 +1,95 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.commands.IHandlerListener;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class BuildCorpus.
+ */
+public class BuildCorpus implements IHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#addHandlerListener(org.eclipse.core.commands.IHandlerListener)
+	 */
+	@Override
+	public void addHandlerListener(IHandlerListener handlerListener) {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#dispose()
+	 */
+	@Override
+	public void dispose() {
+		// TODO Auto-generated method stub
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#isEnabled()
+	 */
+	@Override
+	public boolean isEnabled() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#isHandled()
+	 */
+	@Override
+	public boolean isHandled() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.IHandler#removeHandlerListener(org.eclipse.core.commands.IHandlerListener)
+	 */
+	@Override
+	public void removeHandlerListener(IHandlerListener handlerListener) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/BuildCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/ConvertCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/ConvertCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/ConvertCorpus.java	(revision 122)
@@ -0,0 +1,91 @@
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.importer.Convert5To6;
+import org.txm.objects.Base;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.RestartTXM;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.rcpapplication.views.RVariablesView;
+import org.txm.utils.DeleteDir;
+
+public class ConvertCorpus extends AbstractHandler {
+	JobHandler jobhandler;
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		DirectoryDialog dialog = new DirectoryDialog(shell);
+
+		dialog.setFilterPath(Toolbox.getParam(Toolbox.USER_TXM_HOME));
+		String path = dialog.open();
+
+		final File corpora = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME),
+				"corpora"); //$NON-NLS-1$
+		final File indir = new File(path);
+		final File outdir = new File(corpora, indir.getName() + 6);
+		DeleteDir.deleteDirectory(outdir);
+
+		jobhandler = new JobHandler("Converting...") {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					try {
+						Convert5To6 converter = new Convert5To6(indir, outdir);
+						this.acquireSemaphore();
+						converter.start();
+						this.releaseSemaphore();
+
+						Base base = LoadBinaryCorpus.loadBinaryCorpus(outdir);
+						if (base == null) {
+							System.out.println(Messages.ConvertCorpus_0);
+							return Status.CANCEL_STATUS;
+						}
+					} catch (Throwable e) {
+						System.out.println(NLS.bind(Messages.RunGroovyScript_8,
+								e));
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+					} finally {
+						monitor.done();
+					}
+
+					this.acquireSemaphore();
+					org.txm.Toolbox.restartWorkspace();
+					org.txm.Toolbox.restartSearchEngine();
+					this.releaseSemaphore();
+
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							RestartTXM.reloadViews();
+						}
+					});
+				} catch (ThreadDeath td) {
+					monitor.done();
+					return Status.CANCEL_STATUS;
+				}
+
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob();
+		return event;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/ConvertCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddText.java	(revision 122)
@@ -0,0 +1,89 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+import java.io.File;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.views.BasesView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class AddText.
+ */
+public class AddText extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.workspace.AddText"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		System.out.println(""); //$NON-NLS-1$
+		Corpus corpus = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				corpus = (Corpus) iterator.next();
+				break;
+			}
+		}
+
+		String filepath = ""; //$NON-NLS-1$
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI);
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		}
+		if (dialog.open() != null) {
+			for (String filename : dialog.getFileNames()) {
+				filepath = dialog.getFilterPath() + "/" + filename; //$NON-NLS-1$
+				if (corpus != null && filepath != null && !filepath.matches("")) //$NON-NLS-1$
+					corpus.addText(new File(filepath));
+				LastOpened.set(ID, filepath, filename);
+			}
+			BasesView.refresh();
+		}
+
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RecodeCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RecodeCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RecodeCorpus.java	(revision 122)
@@ -0,0 +1,139 @@
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.logging.Level;
+import java.util.regex.Pattern;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.kohsuke.args4j.Option;
+import org.txm.Toolbox;
+import org.txm.annotation.conversion.CorpusRuledConvertion;
+import org.txm.importer.xtz.ImportKeys;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.commands.CloseEditorsUsing;
+import org.txm.rcpapplication.commands.ExecuteImportScript;
+import org.txm.rcpapplication.swt.widget.parameters.ParametersDialog;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.utils.logger.Log;
+
+public class RecodeCorpus extends AbstractHandler {
+
+	public static final String ID = RecodeCorpus.class.getCanonicalName();
+
+	@Option(name="conversionFile", usage="conversionFile", widget="File", required=true, def="conv.tsv")
+	protected File conversionFile;
+	@Option(name="oldType", usage="oldType", widget="String", required=true, def="pos")
+	protected String oldType;
+	@Option(name="newType", usage="newType", widget="String", required=true, def="pos2")
+	protected String newType;
+	@Option(name="gestionInconnus", usage="oldType", widget="String", required=true, def="abandon")
+	protected String gestionInconnus;
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection isel = HandlerUtil.getCurrentSelection(event);
+		if (isel == null) return null ;
+		if (!(isel instanceof IStructuredSelection)) return null ;
+		IStructuredSelection selection = (IStructuredSelection) isel;
+		Object s = selection.getFirstElement();
+		if (!(s instanceof MainCorpus)) return null;
+
+		final MainCorpus corpus = (MainCorpus) s;
+
+		try {
+			if (ParametersDialog.open(this)) {
+
+				JobHandler job = new JobHandler("Recode corpus ") {
+					@Override
+					protected IStatus run(IProgressMonitor monitor) {
+						try {
+							recode(corpus, conversionFile, oldType, newType, monitor);
+						} catch (Exception e) {
+							System.out.println("Fail to convert properties of corpus "+corpus);
+							e.printStackTrace();
+							return Status.CANCEL_STATUS;
+						}
+						return Status.OK_STATUS;
+					}
+				};
+				job.startJob();
+				return corpus;
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return corpus;
+	}
+
+	public static JobHandler recode(final MainCorpus corpus, CorpusRuledConvertion crc, String oldType, String newType, IProgressMonitor monitor) throws IOException, CqiClientException {
+
+		Property p1 = corpus.getProperty(oldType);
+		if (p1 == null) {
+			System.out.println("Corpus "+corpus+" has not property "+oldType);
+			return null;
+		}
+
+		System.out.println("Recoding "+corpus+" property "+oldType+" in "+newType);
+
+		monitor.beginTask("Recoding corpus properties...", 2);
+		monitor.setTaskName("Recoding XML-TXM files");
+		// apply conversion file
+		if (!crc.process(corpus)) {
+			System.out.println("Failed to edit XML-TXM of the corpus: "+corpus);
+			return null;
+		}
+		monitor.worked(1);
+		
+		// update corpus indexes and edition
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+
+		BaseParameters params = corpus.getBase().getBaseParameters();
+		params.getKeyValueParameters().put(ImportKeys.MULTITHREAD, "false"); //too soon
+		params.getKeyValueParameters().put(ImportKeys.DEBUG, Log.getLevel().intValue() < Level.WARNING.intValue()); // need debug for experimental stuff
+		params.getKeyValueParameters().put(ImportKeys.UPDATECORPUS, "true");
+
+		monitor.setTaskName("Updating corpus");
+		File scriptDir = new File(txmhome, "scripts/import");
+		File script = new File(scriptDir, "xtzLoader.groovy");
+		System.out.println("Updating corpus "+corpus+" using "+params.paramFile);
+		JobHandler ret = ExecuteImportScript.executeScript(script.getAbsolutePath(), params);
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {CloseEditorsUsing.corpus(corpus);}
+		});
+		monitor.worked(1);
+		return ret;
+	}
+
+	public static JobHandler recode(final MainCorpus corpus, LinkedHashMap<Pattern, String> rules, String oldType, String newType, IProgressMonitor monitor) throws IOException, CqiClientException {
+
+		// apply conversion file
+		CorpusRuledConvertion crc = new CorpusRuledConvertion(rules, newType, oldType);
+		return recode(corpus, crc, oldType, newType , monitor);
+	}
+
+	public static JobHandler recode(final MainCorpus corpus, File conversionFile, String oldType, String newType, IProgressMonitor monitor) throws IOException, CqiClientException {
+		System.out.println("Create CorpusRuledConvertion with "+conversionFile);
+		// apply conversion file
+		CorpusRuledConvertion crc = new CorpusRuledConvertion(conversionFile, oldType, newType);
+
+		return recode(corpus, crc, oldType, newType, monitor);
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RecodeCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/UpdateCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/UpdateCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/UpdateCorpus.java	(revision 122)
@@ -0,0 +1,61 @@
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+import java.util.logging.Level;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.importer.xtz.ImportKeys;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.commands.CloseEditorsUsing;
+import org.txm.rcpapplication.commands.ExecuteImportScript;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.logger.Log;
+
+public class UpdateCorpus extends AbstractHandler {
+
+	public static final String ID = UpdateCorpus.class.getCanonicalName();
+	
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		
+		ISelection sel = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (!(sel instanceof IStructuredSelection)) return null;
+		IStructuredSelection selection = (IStructuredSelection) sel;
+
+		Object s = selection.getFirstElement();
+		if (!(s instanceof MainCorpus))
+			return null;
+		MainCorpus corpus = (MainCorpus) s;
+		update(corpus);
+		
+		return corpus;
+	}
+	
+	public static JobHandler update(final MainCorpus corpus) {
+		
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		
+		BaseParameters params = corpus.getBase().getBaseParameters();
+		params.getKeyValueParameters().put(ImportKeys.MULTITHREAD, "false"); //too soon
+		params.getKeyValueParameters().put(ImportKeys.DEBUG, Log.getLevel().intValue() < Level.WARNING.intValue()); // need debug for experimental stuff
+		params.getKeyValueParameters().put(ImportKeys.UPDATECORPUS, "true");
+		
+		File scriptDir = new File(txmhome, "scripts/import");
+		File script = new File(scriptDir, "xtzLoader.groovy");
+		System.out.println("Updating corpus "+corpus+" using "+params.paramFile);
+		JobHandler ret = ExecuteImportScript.executeScript(script.getAbsolutePath(), params);
+		Display.getDefault().syncExec(new Runnable() {
+			@Override
+			public void run() {CloseEditorsUsing.corpus(corpus);}
+		});
+		return ret;
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/UpdateCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/package.html
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/package.html	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/package.html	(revision 122)
@@ -0,0 +1,9 @@
+<html>
+<body>
+	<p>
+		Commands which deals with the base view <br /> not used yet The only
+		command used is AddBase which loads a base from binary files of a
+		corpus
+	</p>
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/package.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddProject.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddProject.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddProject.java	(revision 122)
@@ -0,0 +1,86 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.views.BasesView;
+
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Project;
+import org.txm.objects.Workspace;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class AddProject.
+ */
+public class AddProject extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		System.out.println(""); //$NON-NLS-1$
+		Workspace w = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				Project p = (Project) iterator.next();
+				w = p.getWorkspace();
+				break;
+			}
+		}
+
+		String name = ""; //$NON-NLS-1$
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		InputDialog dlg = new InputDialog(shell,
+				"", Messages.AddProject_3, name, null); //$NON-NLS-1$
+		if (dlg.open() == Window.OK) {
+			// User clicked OK; update the label with the input
+			name = dlg.getValue();
+		}
+
+		if (w != null && name != null && !name.matches("")) //$NON-NLS-1$
+			w.addProject(name);
+		BasesView.refresh();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/AddProject.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/LoadBinaryCorpus.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/LoadBinaryCorpus.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/LoadBinaryCorpus.java	(revision 122)
@@ -0,0 +1,317 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.doc.Zip;
+import org.txm.functions.ProgressWatcher;
+import org.txm.objects.Base;
+import org.txm.objects.Project;
+import org.txm.objects.Workspace;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.RestartTXM;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.utils.DeleteDir;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Create a base from binary files of a base.
+ *
+ * @author mdecorde
+ */
+public class LoadBinaryCorpus extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.workspace.AddBase"; //$NON-NLS-1$
+
+	File corpusdir;
+	private File zipFile;
+	private File backup;
+	String basedirname;
+
+	@Override
+	/**
+	 * calling this command will : open a directory dialog and try to load the content of the selected directory
+	 */
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// create dialog to get the corpus directory
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+		FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+		dialog.setFilterExtensions(new String[]{"*.txm", "*.zip"});
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		}
+
+		if (dialog.open() != null) {
+			final String path = dialog.getFilterPath();
+			final String filename = dialog.getFileName();
+
+			zipFile = new File(path, filename);
+			LastOpened.set(ID, zipFile);
+
+			return loadBinaryCorpusArchive(zipFile);
+		}
+		return null;
+	}
+
+	private void restoreCorpus(File backup, File basedir) {
+		System.out.println(Messages.LoadBinaryCorpus_10+basedir.getName()+Messages.LoadBinaryCorpus_11);
+		if (backup.exists()) {
+			System.out.println(Messages.LoadBinaryCorpus_12);
+			DeleteDir.deleteDirectory(basedir);
+			if (basedir.exists()) {
+				System.out.println(Messages.LoadBinaryCorpus_13+basedir+Messages.LoadBinaryCorpus_14+backup);
+				return;
+			}
+			if (!backup.renameTo(basedir)) {
+				System.out.println(Messages.LoadBinaryCorpus_15+backup);
+				return;
+			}
+			org.txm.Toolbox.restartWorkspace();
+			org.txm.Toolbox.restartSearchEngine();
+
+		}
+	}
+
+	/**
+	 * Load a binary corpus archive: 
+	 * 
+	 * 1- test if the corpus directory is already used
+	 * 2- delete previous corpus version
+	 * 3- unzip the archive
+	 * 4- load the binary corpus directory
+	 * 5- restart TXM engines
+	 */
+	public boolean loadBinaryCorpusArchive(final File zipFile) throws ExecutionException {
+
+		String filename = zipFile.getName();
+		final File corporaDir = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "corpora"); //$NON-NLS-1$
+		corporaDir.mkdir();
+
+		if (!filename.endsWith(".txm") && !filename.endsWith(".zip")) { //$NON-NLS-1$ //$NON-NLS-2$
+			System.out.println(Messages.AddBase_25);
+			System.out.println(NLS.bind(Messages.AddBase_22, zipFile));
+			return false;
+		}
+
+		if (!zipFile.canRead()) {
+			System.out.println(NLS.bind(Messages.AddBase_17, zipFile));
+			return false;
+		}
+
+		//build binary dir path			
+		basedirname = Zip.getRoot(zipFile);
+		corpusdir = new File(corporaDir, basedirname);
+
+		if (corpusdir.exists()) {
+			boolean b = MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), Messages.AddBase_19, NLS.bind(Messages.AddBase_20, corpusdir.getName().toUpperCase()));
+			if (b) {
+				//TODO: to enable backup of binary corpus I need to be able to reload correctly a corpus in CQP corpus manager
+//				backup = new File(corpusdir.getParentFile(), corpusdir.getName()+"-back"); //$NON-NLS-1$
+//				DeleteDir.deleteDirectory(backup);
+//				if (backup.exists()) {
+//					System.out.println(Messages.LoadBinaryCorpus_1+backup);
+//					return false;
+//				}
+//				if (!corpusdir.renameTo(backup)) {
+//					System.out.println(Messages.LoadBinaryCorpus_2+backup);
+//					return false;
+//				}
+				DeleteDir.deleteDirectory(corpusdir);
+				if (corpusdir.exists()) {
+					System.out.println("Error: previous binary corpus directory was not deleted: "+corpusdir);
+					return false;
+				}
+			} else {
+				return false; // abandon
+			}
+		}
+
+		// scan dir
+		JobHandler jobhandler = new JobHandler(
+				NLS.bind(Messages.AddBase_1, corpusdir.getName())) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				try {
+					//ZIPPED FILE
+					monitor.beginTask(Messages.AddBase_27, 100);
+					monitor.subTask(Messages.AddBase_28);
+					try {
+						//System.out.println(NLS.bind(Messages.AddBase_29, zipFile, corporaDir));
+						Zip.decompress(zipFile.getAbsolutePath(), corporaDir.getAbsolutePath(), false, this);
+					} catch (Exception e) {
+						System.out.println(NLS.bind(Messages.AddBase_31, e));
+						org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+						return Status.CANCEL_STATUS;
+					}
+					monitor.worked(50);
+
+					monitor.subTask(Messages.AddBase_32);
+					Base base = loadBinaryCorpus(new File(corporaDir, basedirname));
+					if (base == null) {
+						System.out.println(Messages.AddBase_4);
+						return Status.CANCEL_STATUS;
+					}
+					//System.out.println("fin load base");
+					monitor.worked(40);
+					monitor.subTask(Messages.AddBase_33);
+
+					this.acquireSemaphore();
+					org.txm.Toolbox.updateProperties(org.txm.rcpapplication.ApplicationWorkbenchAdvisor
+							.getProperties());
+					org.txm.Toolbox.restartWorkspace();
+					org.txm.Toolbox.restartSearchEngine();
+					this.releaseSemaphore();
+
+					final Base base2 = Toolbox.workspace.getDefaultProject().getBase(base.getName()); //$NON-NLS-1$
+					if (base2 == null) {
+						System.out.println(Messages.LoadBinaryCorpus_4);
+						return null;
+					}
+
+					//TODO: restore backup step: if thecorpus load failed retrieve corpus backup
+//					//System.out.println("New corpus list: "+base.getCorpora());
+//					if (base.getCorpora().size() == 0) {
+//						System.out.println(Messages.LoadBinaryCorpus_5);
+//						//restoreCorpus(backup, corpusdir);
+//					} else {
+//						for (String name : base.getCorpora().keySet()) {
+//							Corpus corpus = base.getCorpus(name);
+//							//System.out.println("Testing corpus with name "+name);
+//							if (corpus == null) continue;
+//
+//							try {
+//								System.out.print(Messages.LoadBinaryCorpus_6+corpus);
+//								corpus.getSize();
+//								System.out.println(Messages.LoadBinaryCorpus_0);
+//								DeleteDir.deleteDirectory(backup);
+//							} catch (Exception e) {
+//								System.out.println(Messages.LoadBinaryCorpus_3+e+Messages.LoadBinaryCorpus_7);
+//								//Toolbox.getCqiClient().dropCorpus(name);
+//								//Log.info(NLS.bind(Messages.AddBase_23, basename.toUpperCase())); 
+//								Log.info(Log.toString(e));
+//								//restoreCorpus(backup, corpusdir);
+//							}
+//						}
+//					} 
+
+					syncExec(new Runnable() {
+						@Override
+						public void run() {
+							RestartTXM.reloadViews();
+							//System.out.println("Select newly loaded corpus: "+base2.getCorpora().values());
+							CorporaView.select(new ArrayList<MainCorpus>(base2.getCorpora().values()));
+							System.err.println(Messages.AddBase_10);
+							StatusLine.setMessage(Messages.AddBase_10);
+						}
+					});
+				} catch (ThreadDeath td) { 
+					return Status.CANCEL_STATUS;
+				} catch (Exception e2) {
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e2);
+				} finally {
+					monitor.done();
+				}
+				return Status.OK_STATUS;
+				//return Status.CANCEL_STATUS;
+			}
+		};
+
+		try {
+			jobhandler.startJob();
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+
+		return true;
+	}
+
+	/**
+	 * load the content of the file if its a directory containing at least the sub folders :
+	 * txm, html, data and registry.
+	 *
+	 * @param binCorpusDirectory the basedir
+	 * @return the base
+	 * @throws Exception the exception
+	 */
+	public static Base loadBinaryCorpus(File binCorpusDirectory) throws Exception {
+		if (!(binCorpusDirectory.exists() && binCorpusDirectory.isDirectory())) {
+			Log.severe(NLS.bind(Messages.AddBase_24, binCorpusDirectory.getAbsolutePath()));
+			System.out.println(NLS.bind(Messages.AddBase_24, binCorpusDirectory.getAbsolutePath()));
+			return null; 
+		}
+
+		//File txmregistry = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "registry"); //$NON-NLS-1$
+		//txmregistry.mkdir();
+		File txmcorpora = new File(Toolbox.getParam(Toolbox.USER_TXM_HOME), "corpora"); //$NON-NLS-1$
+		txmcorpora.mkdir();
+
+		Workspace w = org.txm.Toolbox.workspace;
+		if (w == null) {
+			System.out.println(Messages.AddBase_34);
+			return null;
+		}
+		Project p = w.getProject("default"); //$NON-NLS-1$
+		if (p == null) {
+			System.out.println(Messages.AddBase_34);
+			return null;
+		}
+		Base base = p.scanDirectory(binCorpusDirectory);
+		if (base == null) {
+			Log.severe(NLS.bind(Messages.AddBase_2, binCorpusDirectory)); 
+			return null;
+		}
+
+		w.save();
+		return base;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/LoadBinaryCorpus.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveText.java	(revision 122)
@@ -0,0 +1,69 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.workspace;
+
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.Text;
+import org.txm.rcpapplication.views.BasesView;
+// TODO: Auto-generated Javadoc
+/**
+ * The Class RemoveText.
+ */
+public class RemoveText extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		System.out.println(""); //$NON-NLS-1$
+		Text p = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				p = (Text) iterator.next();
+				break;
+			}
+		}
+
+		if (p != null)
+			p.getCorpus().removeText(p.getName());
+
+		BasesView.refresh();
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/workspace/RemoveText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenImportForm.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenImportForm.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenImportForm.java	(revision 122)
@@ -0,0 +1,77 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.txm.rcpapplication.editors.imports.ImportFormEditor;
+import org.txm.rcpapplication.editors.input.ImportFormEditorInput;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open a file in the TxtEditor @ author mdecorde.
+ */
+public class OpenImportForm extends AbstractHandler {
+
+	/** The lastopenedfile. */
+	public static String lastopenedfile;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		String filename = event.getParameter("org.txm.rcpapplication.commands.importscript"); //$NON-NLS-1$
+		openfile(filename);
+		return null;
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 */
+	static public void openfile(String filepath) {
+		try {
+			ImportFormEditorInput editorInput = new ImportFormEditorInput(new File(filepath));
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+			IEditorPart a = page.openEditor(editorInput, ImportFormEditor.ID, true);
+		} catch (Throwable e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenImportForm.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Copy.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Copy.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Copy.java	(revision 122)
@@ -0,0 +1,86 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.queryview;
+
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.objects.SavedQuery;
+import org.txm.rcpapplication.utils.IOClipboard;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class Copy.
+ */
+public class Copy extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+
+		copy(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void copy(IStructuredSelection selection)
+	{
+		String query = ""; //$NON-NLS-1$
+		List list = selection.toList();
+		if (list.size() > 1)
+		{
+			for(Object q : selection.toList())
+			{
+				if (q instanceof SavedQuery)
+				{
+					if (query.length() != 0)
+						query +=" | "; //$NON-NLS-1$
+					query += "("+((SavedQuery)q).getQuery().getQueryString()+")"; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+			}
+		}
+		else
+		{
+			query = ((SavedQuery)selection.getFirstElement()).getQuery().getQueryString();
+		}
+		
+		IOClipboard.write(query);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Copy.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Paste.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Paste.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Paste.java	(revision 122)
@@ -0,0 +1,87 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.queryview;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.utils.IOClipboard;
+import org.txm.rcpapplication.views.QueriesView;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.query.Query;
+
+// TODO: Auto-generated Javadoc
+/**
+ * The Class Paste.
+ */
+public class Paste extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (selection.getFirstElement() instanceof Corpus)
+		{
+			Corpus c = (Corpus) selection.getFirstElement();
+			String from = IOClipboard.read();	
+			paste(c, from);
+		}
+		return null;
+	}
+	
+	/**
+	 * Paste.
+	 *
+	 * @param base the base
+	 * @param newquery the newquery
+	 */
+	public static void paste(Corpus corpus, String newquery)
+	{
+		corpus.addQueryLog(new Query(newquery), new ArrayList<String>());
+		QueriesView.refresh();
+	}
+	
+	/**
+	 * Paste.
+	 *
+	 * @param base the base
+	 */
+	public static void paste(Corpus corpus)
+	{
+		String newquery = IOClipboard.read();
+		corpus.addQueryLog(new Query(newquery), new ArrayList<String>());
+		QueriesView.refresh();
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/queryview/Paste.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScriptFromFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScriptFromFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScriptFromFile.java	(revision 122)
@@ -0,0 +1,90 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+/**
+ *  Ask the user to select a Groovy script using a File dialog and execute it
+ */
+public class ExecuteGroovyScriptFromFile extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteGroovyScriptFromFile"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// the file to execute
+		String result; //$NON-NLS-1$
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().getActivePart();
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptCurrentDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT,
+				null);
+
+		FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+
+		if (LastOpened.getFile(ID) != null) {
+			dialog.setFilterPath(LastOpened.getFolder(ID));
+			dialog.setFileName(LastOpened.getFile(ID));
+		} else {
+			dialog.setFilterPath(scriptCurrentDir);
+		}
+
+		dialog.setFilterExtensions(new String[] { "*.groovy" }); //$NON-NLS-1$
+		dialog.setFilterPath(scriptCurrentDir);
+		result = dialog.open();
+		if (result == null) return null;
+		
+		LastOpened.set(ID, new File(result));
+		ExecuteGroovyScript.executeScript(result, page, selection);
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScriptFromFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteLastGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteLastGroovyScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteLastGroovyScript.java	(revision 122)
@@ -0,0 +1,105 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: execute a Macro (Groovy script that opens an UI for parameters)
+ */
+public class ExecuteLastGroovyScript extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteMacro"; //$NON-NLS-1$
+	public static File lastScript;
+	public static boolean macro = false;
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		
+		execute(page, selection);
+		
+		return null;
+	}
+	
+	public static void setLastScript(File s, boolean b) {
+		lastScript = s;
+		macro = b;
+	}
+	
+	/**
+	 * Execute last Groovy script
+	 * 
+	 * @param page
+	 * @param selection
+	 */
+	public static void execute(IWorkbenchPart page, ISelection selection) {
+		if (lastScript == null) return; // no last script
+		if (macro)
+			System.out.println(Messages.ExecuteLastGroovyScript_0+lastScript);
+		else 
+			System.out.println(Messages.ExecuteLastGroovyScript_1+lastScript);
+		
+		//IPreferencesService service = Platform.getPreferencesService();
+		String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+		File currentRootDir;
+		if (macro) {
+			currentRootDir = new File(scriptRootDir, "macro"); //$NON-NLS-1$
+		} else {
+			currentRootDir = new File(scriptRootDir, "user"); //$NON-NLS-1$
+		}
+		
+		if (!currentRootDir.exists()) {
+			System.out.println(Messages.ExecuteLastGroovyScript_3+currentRootDir);
+			return;
+		}
+		
+		ExecuteGroovyScript.executeScript(currentRootDir, lastScript.getAbsolutePath(), page, selection, false);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteLastGroovyScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteImportScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteImportScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteImportScript.java	(revision 122)
@@ -0,0 +1,332 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import groovy.lang.Binding;
+import groovy.lang.GroovyClassLoader;
+import groovy.util.GroovyScriptEngine;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.logging.Level;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.osgi.framework.Bundle;
+import org.txm.Toolbox;
+import org.txm.doc.Zip;
+import org.txm.importer.xtz.ImportKeys;
+import org.txm.objects.Base;
+import org.txm.objects.BaseParameters;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.StatusLine;
+import org.txm.rcpapplication.commands.workspace.LoadBinaryCorpus;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.tokenizer.TokenizerClasses;
+import org.txm.utils.BundleUtils;
+import org.txm.utils.DeleteDir;
+import org.txm.utils.ExecTimer;
+import org.txm.utils.FileCopy;
+import org.txm.utils.logger.Log;
+import org.w3c.dom.Element;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Execute an import module (Groovy script).
+ * Binds parameters to the script :
+ * paramsBinding: parameter file
+ * monitor= the job	
+ * debug=true|false
+ * readyToLoad=tested after the script. If true then the process went OK. 
+ *
+ * @author mdecorde
+ */
+public class ExecuteImportScript extends AbstractHandler {
+
+	/** The lastopenedbase. */
+	public static File lastopenedbase;
+	protected static GroovyScriptEngine gse;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String filename = null, filepath = null;
+		if (event.getParameters().containsKey("org.txm.rcpapplication.commands.commandParameter3")) {
+			filename = event.getParameter("org.txm.rcpapplication.commands.commandParameter3"); //$NON-NLS-1$
+			filepath = "scripts/import/" + filename; //$NON-NLS-1$
+		} else {
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+			FileDialog dialog = new FileDialog(shell, SWT.SAVE);
+			dialog.setFilterPath(Toolbox.getParam(Toolbox.USER_TXM_HOME)+"/scripts/import");
+			filepath = dialog.open();
+		}
+		
+		if (filepath == null) return null;
+		
+		OpenImportForm.openfile(filepath);
+		return null;
+	}
+
+
+	public static JobHandler executeScript(String scriptFilePath,
+			File paramFile) {
+		BaseParameters params = null;
+		try {
+			params = new BaseParameters(paramFile);
+		} catch (Exception e1) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e1);
+			System.out.println("Error while reading import parameters from: "+paramFile);
+			return null;
+		}
+		return executeScript(scriptFilePath, params);
+	}
+
+	/**
+	 * 
+	 * @param scriptFilePath 
+	 * @param params
+	 * @return
+	 */
+	public static JobHandler executeScript(final String scriptFilePath, BaseParameters params) {
+
+		final File script = new File(scriptFilePath);
+		getImportScriptFromToolboxPlugin(script); // if the file is missing or older than the Toolbox jar script
+
+		// We could not found the script in the Toolbox plugin files
+		if (!script.exists()) {
+			System.err.println(NLS.bind(Messages.ExecuteScriptImport_1, scriptFilePath));
+			return null;
+		}
+
+		Display.getDefault().syncExec(new Runnable() {
+			public void run() {	StatusLine.setMessage(Messages.ExecuteScriptImport_0); }
+		});
+
+		final String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		final File corporadir = new File(txmhome,"corpora"); //$NON-NLS-1$
+		corporadir.mkdir(); // the binary corpus are stored here
+		if (!corporadir.exists()) {
+			System.out.println(Messages.ExecuteScriptImport_2+corporadir);
+			Log.severe(Messages.ExecuteScriptImport_2+corporadir);
+			return null;
+		}
+
+		// groovy configuration
+		IPreferencesService service = Platform.getPreferencesService();
+		String scriptRootDir = service.getString(Application.PLUGIN_ID,
+				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT, null);
+		ClassLoader parent = ExecuteImportScript.class.getClassLoader();
+		final GroovyClassLoader loader = new GroovyClassLoader(parent);
+		final String[] roots = new String[] { 
+				script.getParent(),
+				scriptRootDir };
+		params.load(); // reload params
+
+		// the binary directory which is going to be created
+
+		final File basedir = new File(corporadir, params.name);
+		final File tempBinDirectory = new File(basedir.getAbsolutePath()+"_temp"); //$NON-NLS-1$
+		final File errorBinDirectory = new File(basedir.getAbsolutePath()+"_error"); //$NON-NLS-1$
+		if (tempBinDirectory.exists()) DeleteDir.deleteDirectory(tempBinDirectory);
+		if (errorBinDirectory.exists()) DeleteDir.deleteDirectory(errorBinDirectory);
+
+		boolean updatingCorpus = "true".equals(params.getKeyValueParameters().get(ImportKeys.UPDATECORPUS));
+		if (!updatingCorpus) { 
+			if (basedir.exists()) {
+				Shell shell = new Shell(); // ask user if he's sure
+				boolean b = MessageDialog.openConfirm(shell, Messages.AddBase_19, NLS.bind(Messages.AddBase_20, basedir.getName().toUpperCase()));
+				if (b) {
+					// shutdown TBX (and cwb) to free index files
+					Toolbox.shutdownSearchEngine();
+					//DeleteDir.deleteDirectory(basedir);
+					basedir.renameTo(tempBinDirectory);
+				} else {
+					return null;
+				}
+			}
+			if (basedir.exists()) {
+				System.out.println(Messages.bind(Messages.ExecuteScriptImport_3, basedir));
+				return null;
+			}
+		}
+		
+		if (Toolbox.isSearchEngineInitialized()) Toolbox.shutdownSearchEngine();
+		final BaseParameters p = params;
+		JobHandler jobhandler = new JobHandler(Messages.RunGroovyScript_0
+				+ script.getAbsolutePath()) { //$NON-NLS-1$
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				Base base = null;
+				try {
+					//this.setCurrentMonitor(monitor);
+					monitor.beginTask(Messages.RunGroovyScript_10 + p.rootDir, 100); //$NON-NLS-1$
+
+					//org.txm.Toolbox.shutdownSearchEngine();
+					monitor.worked(5);
+
+					if (ExecuteImportScript.gse == null)
+						ExecuteImportScript.gse = new GroovyScriptEngine(roots, loader);
+
+					Binding binding = new Binding();
+					binding.setProperty("paramsBinding", p); //$NON-NLS-1$
+					binding.setProperty("monitor", this); //$NON-NLS-1$
+
+					boolean logLevel = Log.getLevel().intValue() < Level.WARNING.intValue();			
+					binding.setProperty("debug", logLevel); //$NON-NLS-1$
+					binding.setProperty("readyToLoad", Boolean.FALSE); //$NON-NLS-1$
+
+					Element corpusElem = p.corpora.get(p.getCorpusName());
+					Element tokenizerElement = p.getTokenizerElement(corpusElem);
+					TokenizerClasses.reset();
+					if (!TokenizerClasses.loadFromNode(tokenizerElement)) {
+						System.out.println(Messages.ExecuteScriptImport_5);
+						monitor.done();
+						if (basedir.exists()) basedir.renameTo(errorBinDirectory);
+						if (tempBinDirectory.exists()) tempBinDirectory.renameTo(basedir);
+						return Status.CANCEL_STATUS;
+					}
+
+					ExecTimer.start();
+					Log.info(Messages.RunGroovyScript_0 + script.getAbsolutePath()); //$NON-NLS-1$
+					gse.run(script.getName(), binding); // run the groovy import script
+					System.out.println("\n"+Messages.ExecuteScriptImport_7+ExecTimer.stop()); //$NON-NLS-1$
+					monitor.worked(90);
+					
+					TokenizerClasses.reset();
+
+					Object ready = binding.getVariable("readyToLoad"); //$NON-NLS-1$
+					if (ready != null && ready instanceof Boolean) {
+						Boolean readyToLoad = (Boolean)ready;
+						//System.out.println("TRY TO LOAD THE BINARY CORPUS CREATED: "+basedir);
+						if (readyToLoad) {
+							base = LoadBinaryCorpus.loadBinaryCorpus(basedir);
+							if (base == null) {
+								System.out.println(Messages.ExecuteScriptImport_8);
+								if (basedir.exists()) basedir.renameTo(errorBinDirectory);
+								if (tempBinDirectory.exists()) tempBinDirectory.renameTo(basedir);
+								return Status.CANCEL_STATUS;
+							}
+							this.acquireSemaphore();
+							Log.info("Save workspace"); //$NON-NLS-1$
+							Toolbox.workspace.save();
+							
+							Log.info("Restart Toolbox search engine"); //$NON-NLS-1$
+							Toolbox.restartSearchEngine();
+							final Base base2 = base;
+							syncExec(new Runnable() {
+								@Override
+								public void run() {
+									RestartTXM.reloadViews();
+									CorporaView.select(new ArrayList<MainCorpus>(base2.getCorpora().values()));
+									System.out.println(Messages.AddBase_10);
+									StatusLine.setMessage(Messages.AddBase_10);
+								}
+							});
+							this.releaseSemaphore();
+
+							DeleteDir.deleteDirectory(tempBinDirectory);
+						} else {
+							System.out.println(Messages.ExecuteScriptImport_6);
+							if (basedir.exists()) basedir.renameTo(errorBinDirectory);
+							if (tempBinDirectory.exists()) tempBinDirectory.renameTo(basedir);
+						}
+					}
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch (Exception e) {
+					System.out.println(NLS.bind(Messages.RunGroovyScript_8, e));
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					if (!Toolbox.isSearchEngineInitialized()) { // the import failed
+						monitor.setTaskName("Restarting Toolbox search engine"); //$NON-NLS-1$
+						Toolbox.restartSearchEngine();
+						
+						syncExec(new Runnable() {
+							@Override
+							public void run() {
+								RestartTXM.reloadViews();
+							}
+						});
+					}
+					
+					monitor.done();
+				}
+				System.gc();
+				return Status.OK_STATUS;
+			}
+		};
+		jobhandler.startJob(true);
+		return jobhandler;
+	}
+	
+	/**
+	 * Allow to retrieve an import script from the Toolbox plugin.
+	 * 
+	 * If TXM is run from Eclipse, then the file is copyied, else it is extracted from TXM installation directory
+	 * 
+	 * @param script the import script Loader to retrieve
+	 * @return
+	 */
+	public static boolean getImportScriptFromToolboxPlugin(File script) {
+		Log.info("Retriving "+script+" from Toolbox plugin if script.date < toolbox_script.date");
+		
+		// retrieve the script relative path "quickLoader" -> "quick"
+		String scriptPackage = script.getName();
+		int idx = scriptPackage.indexOf("Loader");
+		scriptPackage = "org/txm/importer/" + scriptPackage.substring(0, idx);
+		
+		return BundleUtils.replaceFilesIfNewer("org.txm.toolbox", "src/groovy", scriptPackage, 
+				script.getName(), script);
+	}
+}
+

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteImportScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenGraph.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenGraph.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenGraph.java	(revision 122)
@@ -0,0 +1,200 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.core.chartsengine.r.__RDevice;
+import org.txm.rcpapplication.IImageKeys;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.SVGGraphicEditor;
+import org.txm.rcpapplication.editors.TXMWebBrowserEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.utils.OpenURI;
+// TODO: Auto-generated Javadoc
+/**
+ * Open the graphics editor. It can open SVN, PNG, etc depending on the Device given.
+ */
+public class OpenGraph extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.OpenGraph"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String svgFile = ""; //$NON-NLS-1$
+		File file = null;
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		if (file == null || file.isDirectory()) {
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			if (dialog.open() == null) return null;
+			svgFile = dialog.getFilterPath() + "/" + dialog.getFileName(); //$NON-NLS-1$
+			LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+			OpenFile(svgFile);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param filepath the filepath
+	 * @return the i editor part
+	 */
+	public static IEditorPart OpenFile(String filepath) {
+		return OpenFile(filepath, new File(filepath).getName());
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param file the file
+	 * @return the i editor part
+	 */
+	public static IEditorPart OpenFile(File file) {
+		return OpenFile(file.getAbsolutePath(), file.getName());
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param filepath the filepath
+	 * @param device the device
+	 * @return the i editor part
+	 */
+	@Deprecated
+	// FIXME: this method is R charts engine dependent. But it seems to no be used so we may remove it
+	public static IEditorPart OpenFile(String filepath, __RDevice device) {
+		return OpenFile(filepath, new File(filepath).getName(), device, null);
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param file the file
+	 * @param device the device
+	 * @return the i editor part
+	 */
+	@Deprecated
+	// FIXME: this method is R charts engine dependent. But it seems to no be used so we may remove it
+	public static IEditorPart OpenFile(File file, __RDevice device) {
+		return OpenFile(file.getAbsolutePath(), file.getName(), device, null);
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param filepath the filepath
+	 * @param editorname the editorname
+	 * @return the i editor part
+	 */
+	public static IEditorPart OpenFile(String filepath, String editorname) {
+		File graphfile = new File(filepath);
+		if (filepath.endsWith(".svg") || filepath.endsWith(".SVG")) //$NON-NLS-1$ //$NON-NLS-2$
+		{
+			return OpenSVGGraph.OpenSVGFile(filepath, editorname);
+		}
+		else if (filepath.endsWith(".png") || filepath.endsWith(".PNG") ||  //$NON-NLS-1$ //$NON-NLS-2$
+				filepath.endsWith(".jpg") || filepath.endsWith(".JPG") ||  //$NON-NLS-1$ //$NON-NLS-2$
+				filepath.endsWith(".jpeg") || filepath.endsWith(".JPEG")) //$NON-NLS-1$ //$NON-NLS-2$
+		{
+			return OpenBrowser.openfile(graphfile.getAbsolutePath());
+		}
+		else
+		{
+			if (!OpenURI.open(graphfile))
+				System.out.println(NLS.bind(Messages.OpenGraph_8, graphfile.getAbsolutePath()));
+			return null;
+		}
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param filepath the filepath
+	 * @param editorname the editorname
+	 * @param device the device
+	 * @param image the image
+	 * @return the i editor part
+	 */
+	@Deprecated
+	// FIXME: this method is R charts engine dependent. But it seems to no be used so we may remove it
+	public static IEditorPart OpenFile(String filepath, String editorname, __RDevice device, String image) {
+		File graphfile = new File(filepath);
+		if (device.equals(__RDevice.SVG)) {
+			SVGGraphicEditor editor = OpenSVGGraph.OpenSVGFile(filepath, editorname);
+			if (image != null && IImageKeys.getImage(image) != null)
+				editor.setIcon(IImageKeys.getImage(image));
+			return editor;
+		} else if (device.equals(__RDevice.PNG) || device.equals(__RDevice.JPEG)) {
+			TXMWebBrowserEditor editor = OpenBrowser.openfile(graphfile.getAbsolutePath(), editorname);
+			if (image != null && IImageKeys.getImage(image) != null)
+				editor.setTitleImage(IImageKeys.getImage(image));
+			return editor;
+		} else {
+			if (!OpenURI.open(graphfile))
+				System.out.println(NLS.bind(Messages.OpenGraph_8, graphfile.getAbsolutePath()));
+			return null;
+		}
+
+	}
+
+	/**
+	 * Open file.
+	 *
+	 * @param file the file
+	 * @param device the device
+	 * @param name the name
+	 * @param image the image
+	 * @return the i editor part
+	 */
+	@Deprecated
+	// FIXME: this method is R charts engine dependent. But it seems to no be used so we may remove it
+	public static IEditorPart OpenFile(File file, __RDevice device, String name, String image) {
+		return OpenFile(file.getAbsolutePath(), name, device, image);
+	}
+
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenGraph.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenLocalizedWebPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenLocalizedWebPage.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenLocalizedWebPage.java	(revision 122)
@@ -0,0 +1,159 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Locale;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.txm.rcpapplication.Activator;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Open the internal browser of TXM with a file
+ * 
+ * @author mdecorde.
+ */
+public class OpenLocalizedWebPage extends AbstractHandler {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.OpenLocalizedWebPage"; //$NON-NLS-1$
+
+	public static final String URL_SFWEB = "http://txm.sourceforge.net";
+	public static final String URL_SFFILES = "https://sourceforge.net/projects/txm";
+	
+	public static final String TEXTOMETRIE = "textometrie"; //$NON-NLS-1$
+	public static final String TEXTOMETRIE_DOCS = "textometrie_docs"; //$NON-NLS-1$
+	public static final String SF = "sf"; //$NON-NLS-1$
+	public static final String SF_DOCS = "sf_docs"; //$NON-NLS-1$
+	public static final String TREETAGGER = "treetagger"; //$NON-NLS-1$
+	public static final String REFMAN = "refman"; //$NON-NLS-1$
+	public static final String PDFREFMAN = "pdfrefman"; //$NON-NLS-1$
+	public static final String BUG = "bug"; //$NON-NLS-1$
+	public static final String FEATURE = "feature"; //$NON-NLS-1$
+	public static final String MAILINGLIST = "mailinglist"; //$NON-NLS-1$
+	public static final String FAQ = "faq"; //$NON-NLS-1$
+	public static final String CONTRIB = "contrib"; //$NON-NLS-1$
+	public static final String TXMUSERS = "txm-users wiki"; //$NON-NLS-1$
+	public static final String MACROS = "macros"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String key = event
+				.getParameter("org.txm.rcpapplication.commands.commandParameter3"); //$NON-NLS-1$
+		if (key != null && key.trim().length() > 0) {
+			openfile(key);
+			return null;
+		}
+
+		return null;
+	}
+	
+	static public String getValidURL(String urltoTest, String safeUrl) {
+		try {
+			URL url = new URL(urltoTest);
+			try {
+				url.openStream().close();
+			} catch (IOException e) {
+				Log.info(e.getMessage());
+				Log.printStackTrace(e);
+				return safeUrl;
+			}
+		} catch (MalformedURLException e) {
+			Log.severe(e.getMessage());
+			Log.printStackTrace(e);
+		}
+		return urltoTest;
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 * @return the txm browser
+	 */
+	static public Object openfile(String key) {
+		
+		String version = Platform.getBundle(Activator.PLUGIN_ID).getVersion().toString();
+		int idx = version.lastIndexOf("."); //$NON-NLS-1$
+		if (idx > 0) version = version.substring(0, idx); // remove the "qualifier" part
+		
+		String locale = Locale.getDefault().getLanguage();
+		
+		if (TEXTOMETRIE.equals(key)) {
+			return OpenBrowser.openfile(getValidURL("http://textometrie.ens-lyon.fr/?lang="+locale, "http://textometrie.ens-lyon.fr/?lang=en")); //$NON-NLS-1$
+		} else if (FAQ.equals(key)) {
+			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/faq"); //$NON-NLS-1$
+		} else if (CONTRIB.equals(key)) {
+			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/contribuer"); //$NON-NLS-1$
+		} else if (SF_DOCS.equals(key)) {
+			return OpenBrowser.openfile(URL_SFFILES+"/files/documentation"); //$NON-NLS-1$
+		} else if (SF.equals(key)) {
+			return OpenBrowser.openfile(URL_SFFILES); //$NON-NLS-1$
+		} else if (TEXTOMETRIE_DOCS.equals(key)) {
+			return OpenBrowser.openfile(getValidURL("http://textometrie.ens-lyon.fr/spip.php?rubrique85&lang="+locale, "http://textometrie.ens-lyon.fr/spip.php?rubrique85&lang=en")); //$NON-NLS-1$
+		} else if (TREETAGGER.equals(key)) {
+			return OpenBrowser.openfile(getValidURL(URL_SFWEB+"/doc/treetagger/"+locale+"/install.html", URL_SFWEB+"/doc/treetagger/en/install.html")); //$NON-NLS-1$ //$NON-NLS-2$
+		} else if (REFMAN.equals(key)) {
+			return OpenBrowser.openfile(getValidURL(URL_SFWEB+"/doc/manual/"+version+"/"+locale+"/manual1.xhtml", URL_SFWEB+"/doc/manual/"+version+"/en/manual1.xhtml")); //$NON-NLS-1$
+		} else if (PDFREFMAN.equals(key)) {
+			return OpenBrowser.openfile(URL_SFFILES+"/files/documentation/Manuel%20de%20TXM%200.7%20FR.pdf/download"); //$NON-NLS-1$ 
+		} else if (BUG.equals(key)) {
+			if (locale.equals("fr")) { //$NON-NLS-1$
+				return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/retours_de_bugs_logiciel"); //$NON-NLS-1$
+			} else {
+				return OpenBrowser.openfile("https://sourceforge.net/p/txm/feature-requests/?source=navbar"); //$NON-NLS-1$
+			}
+		} else if (FEATURE.equals(key)) {
+			if (locale.equals("fr")) { //$NON-NLS-1$
+				return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/demande_de_fonctionnalites"); //$NON-NLS-1$
+			} else {
+				return OpenBrowser.openfile("http://sourceforge.net/tracker/?group_id=247041&atid=1190851"); //$NON-NLS-1$
+			}
+		} else if (MAILINGLIST.equals(key)) {
+			return OpenBrowser.openfile("https://groupes.renater.fr/sympa/subscribe/txm-users"); //$NON-NLS-1$
+		} else if (MACROS.equals(key)) {
+			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users/public/macros"); //$NON-NLS-1$
+		} else if (TXMUSERS.equals(key)) {
+			return OpenBrowser.openfile("https://groupes.renater.fr/wiki/txm-users"); //$NON-NLS-1$
+		} else { // no key associated, key is an URL
+			return OpenBrowser.openfile(key); //$NON-NLS-1$
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenLocalizedWebPage.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Reload.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Reload.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Reload.java	(revision 122)
@@ -0,0 +1,68 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.krview;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.rcpapplication.views.knowledgerepositories.KRView;
+
+/**
+ * Reloads a KnowledgeRepository
+ */
+public class Reload extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//		System.out.println("Reload: "+selection);
+		reload(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void reload(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+		if (selectedItem instanceof KnowledgeRepository) {
+			((KnowledgeRepository)selectedItem).reload();
+			KRView.refresh();
+		}
+	}
+}
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Reload.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Add.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Add.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Add.java	(revision 122)
@@ -0,0 +1,126 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.krview;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.annotation.repository.LocalKnowledgeRepository;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.rcpapplication.views.knowledgerepositories.KRView;
+import org.txm.utils.AsciiUtils;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Copy KnowledgeRepository or AnnotationType toString() in clipboard
+ */
+public class Add extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//		System.out.println("Add: "+selection);
+		add(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void add(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+		if (selectedItem instanceof SQLKnowledgeRepository) {
+
+		} else if (selectedItem instanceof LocalKnowledgeRepository) {
+			LocalKnowledgeRepository kr = ((LocalKnowledgeRepository)selectedItem);
+			Shell shell = Display.getDefault().getActiveShell();
+			InputDialog dialog = new InputDialog(shell, "Type name", "Please enter the new type name", "", null);
+			if (dialog.open() == InputDialog.OK) {
+				String name = dialog.getValue();
+				String id = AsciiUtils.buildId(name);
+				
+				//Generate an URL page 
+				//String pathFile = KnowledgeRepositoryManager.generateLocalURLPage(kr.getName(), name, id);
+				String pathFile = null; //@TODO build page for type or KR will be done in another version (after 0.7.8)
+				//System.out.println("URL for new type : "+pathFile);
+				AnnotationType at = kr.addType(name, id, pathFile);
+				KRView.refresh();
+				//kr.add(at);
+			} else {
+				System.out.println("Creation aborted.");
+			}
+		} else if (selectedItem instanceof AnnotationType) {
+			AnnotationType t = ((AnnotationType)selectedItem);
+
+			String krname = t.getKnowledgeRepository();
+			
+			KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(krname);
+			if (kr instanceof LocalKnowledgeRepository) {
+				LocalKnowledgeRepository lkr = ((LocalKnowledgeRepository)kr);
+				System.out.println("Add a value...");
+				Shell shell = Display.getDefault().getActiveShell();
+				InputDialog dialog = new InputDialog(shell, "Value name", "Please enter the new value name", "", null);
+				if (dialog.open() == InputDialog.OK) {
+					String name = dialog.getValue();
+					String id = name;
+					/*String baseid = AsciiUtils.buildId(name);
+					String id = AsciiUtils.buildId(name);
+					int c = 1;
+					while (kr.getValue(t, id) != null) {
+						id = baseid+"_"+(c++);
+					}*/
+					TypedValue val = lkr.addValue(name, id, t.getId());
+					//t.addTypedValue(val);
+					KnowledgeRepositoryManager.generateLocalURLPage(lkr.getName(), t.getName(), t.getId());
+					KRView.refresh();
+				}
+			}
+		} else if (selectedItem instanceof TypedValue) {
+		
+
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Add.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Informations.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Informations.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Informations.java	(revision 122)
@@ -0,0 +1,85 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.krview;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.LocalKnowledgeRepository;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.rcpapplication.commands.OpenLocalizedWebPage;
+
+/**
+ * Shows a web page displaying informations about the current selection
+ */
+public class Informations extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//		System.out.println("Informations: "+selection);
+		show(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void show(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+		
+		String url = "";
+		if (selectedItem instanceof SQLKnowledgeRepository) {
+			url = ((SQLKnowledgeRepository)selectedItem).getURL();
+		} else if (selectedItem instanceof LocalKnowledgeRepository) {
+			LocalKnowledgeRepository kr = ((LocalKnowledgeRepository)selectedItem);
+			url = ((LocalKnowledgeRepository)selectedItem).getURL();
+		} else if (selectedItem instanceof AnnotationType) {
+			url = ((AnnotationType)selectedItem).getURL();
+		} else if (selectedItem instanceof TypedValue) {
+			url = ""; // TODO: see how to retrieve its KR
+		}
+		
+		if (url != null && url.length() > 0) {
+			OpenLocalizedWebPage.openfile(url);
+		} else {
+			System.out.println(selectedItem);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Informations.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/OpenKRView.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/OpenKRView.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/OpenKRView.java	(revision 122)
@@ -0,0 +1,68 @@
+package org.txm.rcpapplication.commands.krview;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.rcpapplication.views.knowledgerepositories.KRView;
+
+// extends org.eclipse.ui.views.showView
+public class OpenKRView extends AbstractHandler {
+	public static final String ID = OpenKRView.class.getCanonicalName(); // org.txm.rcpapplication.commands.krview.OpenKRView
+
+	@Override
+	public final Object execute(final ExecutionEvent event)
+			throws ExecutionException {
+		System.out.println("hello");
+		IWorkbenchWindow window = HandlerUtil
+				.getActiveWorkbenchWindowChecked(event);
+
+		try {
+			openView(window);
+		} catch (PartInitException e) {
+			throw new ExecutionException("Part could not be initialized", e); //$NON-NLS-1$
+		}
+
+		return null;
+	}
+
+	/**
+	 * Opens the view with the given identifier.
+	 * 
+	 * @param viewId
+	 *            The view to open; must not be <code>null</code>
+	 * @throws PartInitException
+	 *             If the part could not be initialized.
+	 */
+	public static void openView(final IWorkbenchWindow activeWorkbenchWindow, AnnotationType type)
+					throws PartInitException {
+
+		final IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+		if (activePage == null) {
+			return;
+		}
+
+		activePage.showView(KRView.ID);
+		
+		if (type != null) {
+			KRView.showType(type);
+		}
+	}
+	
+	/**
+	 * Opens the view with the given identifier.
+	 * 
+	 * @param viewId
+	 *            The view to open; must not be <code>null</code>
+	 * @throws PartInitException
+	 *             If the part could not be initialized.
+	 */
+	public static void openView(final IWorkbenchWindow activeWorkbenchWindow)
+					throws PartInitException {
+		openView(activeWorkbenchWindow, null);
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/OpenKRView.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Copy.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Copy.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Copy.java	(revision 122)
@@ -0,0 +1,79 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.krview;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.rcpapplication.utils.IOClipboard;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Copy KnowledgeRepository or AnnotationType toString() in clipboard
+ */
+public class Copy extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//		System.out.println("Copy: "+selection);
+		copy(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void copy(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+		
+		String text = null;
+		if (selectedItem instanceof SQLKnowledgeRepository) {
+			text = ((SQLKnowledgeRepository)selectedItem).toHumanString();
+		} else if (selectedItem instanceof AnnotationType) {
+			text = ((AnnotationType)selectedItem).toHumanString();
+		} else if (selectedItem instanceof TypedValue) {
+			text = ((TypedValue)selectedItem).toHumanString();
+		}
+		if (text != null) {
+			IOClipboard.write(text);
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Copy.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Delete.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Delete.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Delete.java	(revision 122)
@@ -0,0 +1,150 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands.krview;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.annotation.repository.AnnotationType;
+import org.txm.annotation.repository.KnowledgeRepository;
+import org.txm.annotation.repository.KnowledgeRepositoryManager;
+import org.txm.annotation.repository.LocalKnowledgeRepository;
+import org.txm.annotation.repository.SQLKnowledgeRepository;
+import org.txm.annotation.repository.TypedValue;
+import org.txm.functions.concordances.Line;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.knowledgerepositories.KRView;
+import org.txm.searchengine.cqp.corpus.query.Match;
+import org.txm.utils.logger.Log;
+
+// TODO: Auto-generated Javadoc
+/**
+ * Copy KnowledgeRepository or AnnotationType toString() in clipboard
+ */
+public class Delete extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+//		System.out.println("Delete: "+selection);
+		delete(selection);
+
+		return null;
+	}
+
+	/**
+	 * Copy.
+	 *
+	 * @param selection the selection
+	 */
+	public static void delete(IStructuredSelection selection)
+	{
+		Object selectedItem = selection.getFirstElement();
+
+		if (selectedItem instanceof SQLKnowledgeRepository) {
+
+		} else if (selectedItem instanceof LocalKnowledgeRepository) {
+			LocalKnowledgeRepository kr = ((LocalKnowledgeRepository)selectedItem);
+			System.out.println("Delete a LocalKnowledgeRepository...");
+			
+			//TODO: confirm message dialog to generate
+			//KnowledgeRepositoryManager.deleteKnowledgeRepository(kr);
+			//KRView.refresh();
+			
+		} else if (selectedItem instanceof AnnotationType) {
+			final AnnotationType t = ((AnnotationType)selectedItem);
+			KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(t.getKnowledgeRepository());
+			
+			if (kr instanceof LocalKnowledgeRepository) {
+				final LocalKnowledgeRepository lkr = ((LocalKnowledgeRepository)kr);
+				System.out.println("Delete an AnnotationType...");
+				
+				/*JobHandler job = new JobHandler("Deleting all annotations for type : "+t) {
+					@Override
+					protected IStatus run(IProgressMonitor monitor) {
+						this.setCurrentMonitor(monitor);
+						try {*/
+							lkr.deleteType(t);
+							//TODO: For each corpus, get AnnotationManager and deleteAnnotations
+							//annotManager.deleteAnnotations(t, job);
+						/*} catch(Exception e) {
+							Log.severe("Error while deleting annotations "+e);
+							Log.printStackTrace(e);
+							return Status.CANCEL_STATUS;
+						}
+						return Status.OK_STATUS;
+					}
+				};
+				job.schedule();*/
+				
+				
+				//TODO: must delete corpus possible annotations
+				KRView.refresh();
+			}
+		} else if (selectedItem instanceof TypedValue) {
+			TypedValue v = (TypedValue) selectedItem;
+			TreeViewer tree = KRView.getTree();
+			
+			if (tree != null) {
+				TreeItem[] selItems = tree.getTree().getSelection();
+				if (selItems.length == 0) return;
+				TreeItem first = selItems[0];
+				Object o = first.getData();
+				if (o instanceof TypedValue) {
+					TypedValue selectedTypedValue = (TypedValue)o;
+					if (selectedTypedValue.getId().equals(v.getId())) {
+						TreeItem parentTreeItem = first.getParentItem();
+						Object o2 = parentTreeItem.getData();
+						if (o2 instanceof AnnotationType) {
+							AnnotationType t = (AnnotationType)o2;
+							KnowledgeRepository kr = KnowledgeRepositoryManager.getKnowledgeRepository(t.getKnowledgeRepository());
+							kr.deleteValue(v);
+							tree.refresh();
+						}
+					}
+				}
+			}
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/krview/Delete.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteScript.java	(revision 122)
@@ -0,0 +1,201 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.util.Iterator;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.rcpapplication.Application;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.preferences.ScriptPreferenceInitializer;
+import org.txm.rcpapplication.preferences.ScriptPreferencePage;
+import org.txm.rcpapplication.preferences.TXMPreferencePage;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a script. It uses the file extension to execute it as Groovy or R
+ * 
+ * Later : use shabang
+ */
+public class ExecuteScript extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteScript"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// the file to execute
+		String result = ""; //$NON-NLS-1$
+		boolean executionFromEditor = false;
+		TxtEditor txteditor = null;
+		
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (page != null && page instanceof TxtEditor) {
+			txteditor = (TxtEditor) page;
+			selection = HandlerUtil.getActiveWorkbenchWindow(event)
+					.getActivePage().getSelection();
+			FileStoreEditorInput input = (FileStoreEditorInput) txteditor
+					.getEditorInput();
+
+			File f = new File(input.getURI().getPath());
+			result = f.getAbsolutePath();
+			executionFromEditor = true;
+		} else if (selection != null
+				& selection instanceof IStructuredSelection) {
+			File file = null;
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				file = (File) iterator.next();
+				result = file.getAbsolutePath();
+				break;
+			}
+		}
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+		// no file found, ask user
+		if (result == "") //$NON-NLS-1$
+		{
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			dialog.setFilterExtensions(new String[] { "*.groovy" }); //$NON-NLS-1$
+
+			IPreferencesService service = Platform.getPreferencesService();
+			String scriptCurrentDir = service.getString(Application.PLUGIN_ID,
+					ScriptPreferencePage.SCRIPT_CURRENT_DIR,
+					ScriptPreferenceInitializer.SCRIPT_CURRENT_DIR_DEFAULT,
+					null);
+
+			dialog.setFilterPath(scriptCurrentDir);
+			result = dialog.open();
+			if (result == null) return null;
+			LastOpened.set(ID, new File(result));
+		}
+
+		if (executionFromEditor && txteditor != null) { // save file if needed 
+			if (txteditor.isSaveOnCloseNeeded()) { // check if file need to be saved
+				boolean doit = TxmPreferences.getBoolean(ScriptPreferencePage.SAVE_BEFORE_EXECUTION, false);
+				//System.out.println("Save file? "+doit);
+				if (!doit) { // ask user
+					MessageDialog dialog = new MessageDialog(shell, Messages.ExecuteScript_0+result, null,
+							Messages.ExecuteScript_1, MessageDialog.QUESTION, new String[] {Messages.ExecuteScript_2, Messages.ExecuteScript_4,
+							Messages.ExecuteScript_5}, 0) {
+						Button checkDefault;
+						 @Override
+						  protected Control createDialogArea(Composite parent) {
+						    Composite container = (Composite) super.createDialogArea(parent);
+						    checkDefault = new Button(container, SWT.CHECK);
+						    checkDefault.setText(Messages.ExecuteScript_6);
+						    boolean b = TxmPreferences.getBoolean(ScriptPreferencePage.SAVE_BEFORE_EXECUTION, false);
+						    checkDefault.setSelection(b);
+						    
+						    checkDefault.addSelectionListener(new SelectionListener() {
+								
+								@Override
+								public void widgetSelected(SelectionEvent e) {
+									boolean b = checkDefault.getSelection();
+									TxmPreferences.set(ScriptPreferencePage.SAVE_BEFORE_EXECUTION, b);
+								}
+								
+								@Override
+								public void widgetDefaultSelected(SelectionEvent e) { }
+							});
+						    return container;
+						  }
+					};
+					int c = dialog.open();
+					if (c == 1) {
+						System.out.println(Messages.ExecuteScript_7);
+						return null;
+					} else if (c == 2) {
+						//System.out.println("Don't save and run.");
+						doit = false;
+					} else if (c == 0)  {
+						//System.out.println("Save and run.");
+						doit = true;
+					}
+				}
+
+				if (doit) {
+					//System.out.println("Saving file...");
+					txteditor.doSave(null);
+				}
+			}
+		}
+
+		executeScript(result, page, selection);
+		return null;
+	}
+
+	/**
+	 * Execute script.
+	 *
+	 * @param scriptpath the scriptfile
+	 */
+	public void executeScript(String scriptpath, final  IWorkbenchPart page, final ISelection selection) {
+		if (scriptpath == null) return;
+		File script = new File(scriptpath);
+		if (!script.exists()) return;
+
+		if (script.getName().endsWith(".groovy")) { //$NON-NLS-1$
+			ExecuteGroovyScript.executeScript(scriptpath, page, selection);
+		} else if (script.getName().endsWith(".R")) { //$NON-NLS-1$
+			ExecuteRScript.executeScript(scriptpath);
+		} else {
+			System.out.println(Messages.ExecuteScript_3+script.getName());
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ImportSelectedText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ImportSelectedText.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ImportSelectedText.java	(revision 122)
@@ -0,0 +1,177 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Locale;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Shell;
+import org.txm.Toolbox;
+import org.txm.importer.DomUtils;
+import org.txm.objects.BaseParameters;
+import org.txm.objects.Project;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.ImportPreferencePage;
+import org.txm.searchengine.cqp.corpus.CorpusManager;
+import org.txm.utils.LangDetector;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+// TODO: Auto-generated Javadoc
+/**
+ * Import the text in the Clipboard as a corpus. the loader used is the
+ * QuickLoader 
+ * @author mdecorde
+ * 
+ */
+public class ImportSelectedText extends AbstractHandler {
+
+	/** The nextclipcorpus. */
+	static public int nextclipcorpus = 1;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		String result = org.txm.rcpapplication.utils.IOClipboard.read();
+		if (result == null || result.length() == 0) {
+			System.out.println("No copied text. Aborting.");
+			return null;
+		}
+		System.out.println(Messages.ImportSelectedText_0);
+		Project projet;
+		try {
+			projet = Toolbox.workspace.getProject("default"); //$NON-NLS-1$
+		} catch (Exception e) {
+			System.out.println(Messages.ImportSelectedText_6+e);
+			return null;
+		}
+		try {
+			String corpusName = Messages.ImportSelectedText_1+(nextclipcorpus++);
+			while (projet.getBase(corpusName) != null)
+				corpusName = Messages.ImportSelectedText_1+(nextclipcorpus++);
+			importText(result, corpusName);
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return null;
+	}
+
+	/**
+	 * Import text.
+	 *
+	 * @param text the text
+	 * @param basename the basename
+	 * @return the object
+	 * @throws IOException 
+	 * @throws SAXException 
+	 * @throws ParserConfigurationException 
+	 */
+	public static Object importText(String text, String basename) throws IOException, ParserConfigurationException, SAXException {
+				
+		if (text.length() == 0) {
+			System.err.println(Messages.ImportSelectedText_2);
+			return null;
+		}
+		String txmhome = Toolbox.getParam(Toolbox.USER_TXM_HOME);
+		new File(txmhome, "clipboard").mkdir(); //$NON-NLS-1$
+		File clipboardDirectory = new File(txmhome, "clipboard/" + basename); //$NON-NLS-1$
+		
+		if (CorpusManager.getCorpusManager().hasCorpus(clipboardDirectory.getName())) {
+			Shell shell = new Shell();
+			boolean b = MessageDialog.openConfirm(shell,
+					Messages.ImportSelectedText_3,
+					NLS.bind(Messages.ImportSelectedText_4, clipboardDirectory.getName()));
+			if (!b)
+				return null;
+		}
+		
+		org.txm.utils.DeleteDir.deleteDirectory(clipboardDirectory);
+		clipboardDirectory.mkdirs();
+		File quicksrc = new File(clipboardDirectory, basename + ".txt"); //$NON-NLS-1$
+		File PARAMS = new File(clipboardDirectory, "import.xml"); //$NON-NLS-1$
+		BaseParameters.createEmptyParams(PARAMS, basename);
+		
+		if (!PARAMS.exists()) {
+			System.out.println("Error: the configuration file was not created. Aborting import.");
+			return false;
+		}
+		
+		BaseParameters params = new BaseParameters(PARAMS);
+		params.load();
+		
+		Element corpusElem = params.corpora.get(params.getCorpusName());
+		
+		// write the text file
+		String encoding = corpusElem.getAttribute("encoding"); //$NON-NLS-1$
+		File scriptfile = new File(txmhome, "scripts/import/quickLoader.groovy"); //$NON-NLS-1$ 
+		try {
+			Writer writer = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(quicksrc)), encoding); 
+			writer.write(text.replace("\t", "    ")); //$NON-NLS-1$ //$NON-NLS-2$
+			writer.close();
+		} catch (Exception e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+			return null;
+		}
+		
+//		if (quicksrc.length() > LangDetector.MINIMALSIZE) {
+//			LangDetector detector = new LangDetector(quicksrc);
+//			corpusElem.setAttribute("lang", detector.getLang()); //$NON-NLS-1$
+//			System.out.println(Messages.ImportSelectedText_10+corpusElem.getAttribute("lang"));  //$NON-NLS-1$
+//		} else { System.out.println(Messages.ImportSelectedText_12+corpusElem.getAttribute("lang"));}  //$NON-NLS-1$
+		
+		String locale = Locale.getDefault().getLanguage();
+		String lang = TxmPreferences.get(ImportPreferencePage.DEFAULT_LANG, locale);
+		if (lang.length() == 0) lang = locale;
+		if ("??".equals(lang)) { //$NON-NLS-1$
+			LangDetector detector = new LangDetector(quicksrc);
+			lang = detector.getLang();
+			System.out.println(Messages.ImportSelectedText_10+lang);
+		}
+		corpusElem.setAttribute("lang", lang); //$NON-NLS-1$
+		System.out.println(Messages.ImportSelectedText_12+corpusElem.getAttribute("lang")); //$NON-NLS-1$
+		
+		DomUtils.save(params.root.getOwnerDocument(), params.paramFile);
+		new ExecuteImportScript().executeScript(scriptfile.getAbsolutePath(), params.paramFile); 
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ImportSelectedText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ShowSelected.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ShowSelected.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ShowSelected.java	(revision 122)
@@ -0,0 +1,69 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+// TODO: Auto-generated Javadoc
+/**
+ * show informations of the selected TxmObject @ author mdecorde.
+ */
+public class ShowSelected extends AbstractHandler implements IHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@SuppressWarnings("unchecked") //$NON-NLS-1$
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			Object elem = strucSelection.getFirstElement();
+			
+			if (elem instanceof File) {
+				File f = (File)elem;
+				System.out.println(Messages.ShowSelected_0);
+				System.out.println(" path="+f.getAbsolutePath());
+				System.out.println(" size="+f.length()/1000+" kb");
+				System.out.println(" rights: read="+f.canRead()+" write="+f.canWrite()+" execute="+f.canExecute());
+			} else {
+				System.out.println(elem);
+			}
+		}
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ShowSelected.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CutFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CutFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CutFile.java	(revision 122)
@@ -0,0 +1,70 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.text.ITextSelection;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.utils.IOClipboard;
+// TODO: Auto-generated Javadoc
+/**
+ * Handler: cuts the selected file 
+ */
+public class CutFile extends AbstractHandler {
+
+	public static File toCut;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			Object o = ((IStructuredSelection)selection).getFirstElement();
+
+			if (o instanceof File) {
+				File file = (File)o;
+				cut(file);
+			}
+		}
+		return null;
+	}
+	
+	public static void cut(File file) {
+		toCut = file;
+		CopyFile.toCopy = null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CutFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CleanPerspective.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CleanPerspective.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CleanPerspective.java	(revision 122)
@@ -0,0 +1,54 @@
+package org.txm.rcpapplication.commands;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.txm.rcpapplication.Messages;
+import org.txm.utils.logger.Log;
+
+public class CleanPerspective extends AbstractHandler {
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) {
+		//System.out.println("clean perspective");
+		IWorkbenchPart part = HandlerUtil.getActivePart(event);
+		//System.out.println("part: "+part.getTitle());
+		IWorkbenchPage page = part.getSite().getPage();
+		//System.out.println("page: "+page.getLabel());
+		if (page.isEditorAreaVisible()) {
+			//System.out.println(" page is visible");
+			IEditorReference[] editors = page.getEditorReferences();
+			IViewReference[] views = page.getViewReferences();
+			if (editors.length == 0 && views.length == 0) {
+				//System.out.println("  no editor");
+				page.setEditorAreaVisible(false);
+			} else {
+				//System.out.println("  editors: "+editors.length);
+			}
+		} else {
+			//System.out.println(" page is not visible");
+		}
+		
+		IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(IHandlerService.class);
+		if (handlerService != null) {
+			try {
+				handlerService.executeCommand("org.eclipse.ui.window.resetPerspective", null); //$NON-NLS-1$
+			} catch (Exception e) {
+				System.out.println(Messages.CleanPerspective_1+e);
+				Log.printStackTrace(e);
+			}
+		} else {
+			System.out.println(Messages.CleanPerspective_2);
+		}
+		
+		return null;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CleanPerspective.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScript.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScript.java	(revision 122)
@@ -0,0 +1,396 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import groovy.lang.Binding;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.internal.runtime.InternalPlatform;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Version;
+import org.txm.Toolbox;
+import org.txm.functions.cooccurrences.Cooccurrence.CLine;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TXMClassLoader;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.rcpapplication.swt.widget.parameters.UIParameterException;
+import org.txm.rcpapplication.utils.GSERunner;
+import org.txm.rcpapplication.utils.JobHandler;
+import org.txm.rcpapplication.views.CorporaView;
+import org.txm.utils.logger.Log;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a Groovy script
+ * 
+ * @mdecorde
+ */
+public class ExecuteGroovyScript extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.ExecuteGroovyScript"; //$NON-NLS-1$
+	private static GSERunner gse;
+	private static String scriptRootDir;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		// the file to execute
+		String result = ""; //$NON-NLS-1$
+		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
+				.getActivePage().getActivePart();
+
+		ISelection sel =  HandlerUtil.getCurrentSelection(event); 
+
+		if (page != null && page instanceof TxtEditor) {
+			TxtEditor te = (TxtEditor) page;
+			FileStoreEditorInput input = (FileStoreEditorInput) te
+					.getEditorInput();
+
+			File f = new File(input.getURI().getPath());
+			result = f.getAbsolutePath();
+		} else if (sel != null
+				& sel instanceof IStructuredSelection) {
+			File file = null;
+			IStructuredSelection strucSelection = (IStructuredSelection) sel;
+			for (Iterator<Object> iterator = strucSelection.iterator(); iterator
+					.hasNext();) {
+				file = (File) iterator.next();
+				result = file.getAbsolutePath();
+				break;
+			}
+		}
+
+		if ("".equals(result)) { //$NON-NLS-1$
+			Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+					.getShell();
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			dialog.setFilterExtensions(new String[] { "*.groovy" }); //$NON-NLS-1$
+
+			IPreferencesService service = Platform.getPreferencesService();
+			String scriptCurrentDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+
+			dialog.setFilterPath(scriptCurrentDir);
+			result = dialog.open();
+			if (result == null) return null;
+			LastOpened.set(ID, new File(result));
+		}
+		executeScript(result, page, sel);
+
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param currentRootDir
+	 * @param scriptpath
+	 * @param page current active page, might be null
+	 * @param sel current selection, might be null
+	 */
+	public static void executeScript(String scriptpath, final  IWorkbenchPart page, final ISelection selection, boolean modal) {
+		IPreferencesService service = Platform.getPreferencesService();
+		//		String scriptRootDir = service.getString(Application.PLUGIN_ID,
+		//				ScriptPreferencePage.SCRIPT_ROOT_DIR,
+		//				ScriptPreferenceInitializer.SCRIPT_ROOT_DIR_DEFAULT, null);
+		//		
+		String scriptRootDir = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+		File currentRootDir = new File(scriptRootDir, "user"); //$NON-NLS-1$
+
+		executeScript(currentRootDir, scriptpath, page, selection, modal);
+	}
+
+	/**
+	 * 
+	 * @param currentRootDir
+	 * @param scriptpath
+	 * @param page current active page, might be null
+	 * @param sel current selection, might be null
+	 */
+	public static void executeScript(String scriptpath, final  IWorkbenchPart page, final ISelection selection) {
+		executeScript(scriptpath, page, selection, false);
+	}
+
+	/**
+	 * 
+	 * @param currentRootDir
+	 * @param scriptpath
+	 * @param page current active page, might be null
+	 * @param sel current selection, might be null
+	 */
+	public static void executeScript(final File currentRootDir, String scriptpath, final  IWorkbenchPart page, final ISelection sel, final boolean modal) {
+		// check script
+		final File scriptfile = new File(scriptpath);
+		if (!scriptfile.exists()) {
+			System.err.println(NLS.bind(Messages.ExecuteScriptImport_1, scriptpath));
+			return;
+		}
+		ExecuteLastGroovyScript.setLastScript(scriptfile, currentRootDir.getName().equals("macro")); // register last groovy script //$NON-NLS-1$
+
+		// get current selection of the corpora view
+		final Object corpusViewSelection = CorporaView.getSelection();
+		final Object corpusViewSelections = CorporaView.getSelections();
+
+		final Object selection;
+		final List selections;
+		if (sel != null && sel instanceof IStructuredSelection) {
+			selection = ((IStructuredSelection)sel).getFirstElement();
+			selections = ((IStructuredSelection)sel).toList();
+		} else {
+			selection = sel;
+			selections = null;
+		}
+
+		String tmp = Toolbox.getParam(Toolbox.USER_TXM_HOME) + "/scripts"; //$NON-NLS-1$
+		if (!tmp.equals(scriptRootDir)) {
+			scriptRootDir = tmp;
+			gse = null;
+			//System.out.println("SCRIPT ROOT DIR CHANGED tmp="+tmp);
+		}
+
+		String dir = currentRootDir.getAbsolutePath();
+		String path = scriptfile.getAbsolutePath();
+		if (!path.startsWith(dir)) {
+			System.out.println(Messages.bind(Messages.ExecuteGroovyScriptFromFile_2, dir));
+			return;
+		}
+		final String relativepath = path.substring(dir.length()+1);
+
+		if (gse == null) {
+			String[] roots = new String[] { 
+					scriptRootDir+"/user/", //$NON-NLS-1$
+					scriptRootDir+"/macro/", //$NON-NLS-1$
+					scriptRootDir+"/import/", //$NON-NLS-1$
+			}; 
+
+			HashMap<String, Bundle> bundleWithActivators = new HashMap<String, Bundle>();
+			HashSet<ClassLoader> loaders = new HashSet<ClassLoader>();
+			BundleContext bundleContext = InternalPlatform.getDefault().getBundleContext();
+			for (Bundle b : bundleContext.getBundles()) {
+				String acName = b.getHeaders().get("Bundle-Activator");
+				if (acName != null) {
+					if (!bundleWithActivators.containsKey(b.getSymbolicName())) {
+						bundleWithActivators.put(b.getSymbolicName(),b);
+					} else {
+						Bundle b2 = bundleWithActivators.get(b.getSymbolicName());
+						if (b2.getVersion().compareTo(b.getVersion()) < 0) {
+							bundleWithActivators.put(b.getSymbolicName(),b);
+						}
+					}
+				}
+			}
+			
+			for (Bundle b : bundleWithActivators.values()) {
+				try {
+					String acName = b.getHeaders().get("Bundle-Activator");
+					Class<?> ac = b.loadClass(acName);
+					loaders.add(ac.getClassLoader());
+				} catch (ClassNotFoundException e) {
+					e.printStackTrace();
+				}
+			}
+			Log.info("Initialized TXMClassLoader with "+loaders.size()+ " bundles.");
+			TXMClassLoader scl = new TXMClassLoader(loaders);
+
+			try {
+				gse = new GSERunner(roots, scl);
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+
+			File jardir = new File(scriptRootDir,"lib"); //$NON-NLS-1$
+			if (jardir.exists() && jardir.isDirectory()) {
+				for (File f: jardir.listFiles(new FilenameFilter() {
+					@Override
+					public boolean accept(File dir, String name) {
+						return name.endsWith(".jar"); //$NON-NLS-1$
+					}
+				}))
+				{
+					try {
+						gse.getGroovyClassLoader().addURL(f.toURI().toURL());
+					} catch (MalformedURLException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+			}	
+			gse.getGroovyClassLoader().addClasspath(scriptRootDir); // for the .class files if any
+		}
+
+
+		JobHandler jobhandler = new JobHandler(NLS.bind(Messages.ExecuteRScript_1,scriptfile.getName())) {
+			@Override
+			protected IStatus run(IProgressMonitor monitor) {
+				this.runInit(monitor);
+				//this.setCurrentMonitor(monitor);
+				monitor.beginTask(NLS.bind(Messages.ExecuteRScript_1, scriptfile.getName()), 100);
+
+				try {
+					Binding binding = new Binding();
+					binding.setVariable("editor", page); //$NON-NLS-1$
+					binding.setVariable("selection", selection); //$NON-NLS-1$
+					binding.setVariable("selections", selections); //$NON-NLS-1$
+					binding.setVariable("corpusViewSelection", corpusViewSelection); //$NON-NLS-1$
+					binding.setVariable("corpusViewSelections", corpusViewSelections); //$NON-NLS-1$
+					binding.setProperty("monitor", this); //$NON-NLS-1$
+					binding.setProperty("gse", gse);
+					
+					System.out.println(NLS.bind(Messages.ExecuteRScript_1, scriptfile.getName()));
+					long time = System.currentTimeMillis();
+					gse.run(relativepath, binding);
+					
+					System.out.println(Messages.ExecuteRScript_2+(System.currentTimeMillis()-time)+Messages.ExecuteGroovyScript_0);
+				} catch (ThreadDeath td) {
+					return Status.CANCEL_STATUS;
+				} catch (UIParameterException e) {
+					if (e.isError()) {
+						System.out.println(Messages.ExecuteGroovyScript_1);
+					} else {
+						System.out.println(Messages.ExecuteGroovyScript_2);
+					}
+				} catch (Exception e) {
+					System.out.println(Messages.ExecuteGroovyScript_9+e);
+					org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+				} finally {
+					monitor.done();			
+				}
+				return Status.OK_STATUS;
+			}
+		};
+
+		jobhandler.startJob(modal);
+		//        //gse.loadScriptByName("scripts/B.groovy");
+		//		gse.run("A.groovy", new Binding());
+
+		//		ClassLoader parent = getClass().getClassLoader();
+		//		GroovyClassLoader loader = new GroovyClassLoader(parent);
+		//
+		//		List<File> classPath = new ArrayList<File>();
+		//		classPath.add(new File(scriptRootDir));
+		/*classPath.add(new File(scriptfile));
+		classPath.add(new File(scriptfile).getParentFile().getParentFile());
+		classPath.add(new File("")); //$NON-NLS-1$*/
+		// System.out.println(classPath);
+		//System.out.println("Build groovy scripts - Start");
+		//org.txm.Build.run();
+		//System.out.println("Build groovy scripts - Done");
+
+		//		Class groovyClass = null;
+		//		for (File f : classPath)
+		//			loader.addClasspath(f.getAbsolutePath());
+		//		loader.setShouldRecompile(true);
+		//
+		//		try {
+		//			groovyClass = loader.parseClass(new File(scriptfile));
+		//		} catch (CompilationFailedException e) {
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		} catch (IOException e) {
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		}
+		//
+		//		// let's call some method on an instance
+		//		GroovyObject groovyObject = null;
+		//		try {
+		//			groovyObject = (GroovyObject) groovyClass.newInstance();
+		//		} catch (InstantiationException e) {
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		} catch (IllegalAccessException e) {
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		}
+		//
+		//		Object[] args = {};
+		//		try {
+		//			groovyObject.invokeMethod("run", args); //$NON-NLS-1$
+		//		} catch (Exception e) {
+		//			System.err.println(e);
+		//			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		//		}
+
+		/*
+		 * try { File script = new File(scriptfile); // GroovyImportScriptRunner
+		 * g = new GroovyImportScriptRunner(new File(""),new ArrayList<File>());
+		 * 
+		 * GroovyClassLoader classLoader = new
+		 * GroovyClassLoader(this.getClass().getClassLoader());
+		 * classLoader.addURL(script.getParentFile().toURI().toURL());
+		 * 
+		 * GroovyScriptEngine gse = new
+		 * GroovyScriptEngine(script.getParent(),classLoader);
+		 * gse.run(script.getAbsolutePath(), new Binding());
+		 * System.out.println("END : execute script RCP "); } catch (Exception
+		 * e) { // TODO Auto-generated catch block org.txm.rcpapplication.utils.Logger.printStackTrace(e); }
+		 * 
+		 * /* if (scriptfile == "") return; final File script = new
+		 * File(scriptfile);
+		 * 
+		 * String[] roots = new String[] {script.getParent()};
+		 * System.out.println("SCRIPTROOTDIR "+script.getParent());
+		 * System.out.println("SCRIPT "+script); GroovyScriptEngine gse; try {
+		 * gse = new GroovyScriptEngine(roots); for(File f :
+		 * script.getParentFile().listFiles())
+		 * gse.loadScriptByName(f.getName()); Binding binding = new Binding();
+		 * 
+		 * System.out.println("start execution"); gse.run(script.getName(),
+		 * binding); System.out.println("end execution"); } catch (Exception e)
+		 * {org.txm.rcpapplication.utils.Logger.printStackTrace(e);}
+		 */
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/ExecuteGroovyScript.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditSelectedFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditSelectedFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditSelectedFile.java	(revision 122)
@@ -0,0 +1,126 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.editors.TxtEditor;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+import org.txm.utils.logger.Log;
+
+/**
+ * Open a file in the TxtEditor
+ * 
+ * @author mdecorde.
+ */
+public class EditSelectedFile extends AbstractHandler {
+
+	public static final String ID = EditSelectedFile.class.getCanonicalName(); //$NON-NLS-1$
+	/** The lastopenedfile. */
+	public static String lastopenedfile;
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		File file = null;
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection != null & selection instanceof IStructuredSelection) {
+			IStructuredSelection strucSelection = (IStructuredSelection) selection;
+			for (Object o : strucSelection.toList())
+				if (o != null && o instanceof File) {
+					file = (File)o;
+					break;
+				}
+		}
+
+		if (file == null) {
+			System.out.println("Selection has no file. Aborting.");
+			return null;
+		} else {
+			if (file.isDirectory()) {
+				System.out.println("Selected file is a directory. Aborting.");
+				return null;
+			} else {
+				openfile(file.getAbsolutePath());
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Open a file in TXM TxtEditor.
+	 *
+	 * @param filepath the filepath
+	 */
+	static public void openfile(File file) {
+		if (file.isDirectory())
+			return;
+		try {
+			IFileStore fileOnLocalDisk = EFS.getLocalFileSystem().getStore(file.toURI());
+
+			FileStoreEditorInput editorInput = new FileStoreEditorInput(fileOnLocalDisk);
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			IEditorPart a = page.openEditor(editorInput, TxtEditor.ID, true);
+			TxtEditor editor = (TxtEditor) a;
+		} catch (Exception e) {
+			Log.printStackTrace(e);
+		}
+	}
+
+	/**
+	 * Openfile.
+	 *
+	 * @param filepath the filepath
+	 */
+	static public void openfile(String filepath) {
+		openfile(new File(filepath));
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/EditSelectedFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CheckRPackages.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CheckRPackages.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CheckRPackages.java	(revision 122)
@@ -0,0 +1,218 @@
+package org.txm.rcpapplication.commands;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.util.Util;
+import org.eclipse.swt.widgets.Shell;
+import org.rosuda.REngine.REXP;
+import org.rosuda.REngine.REXPInteger;
+import org.rosuda.REngine.REXPMismatchException;
+import org.rosuda.REngine.RList;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.AdvancePreferencePage;
+import org.txm.stat.engine.r.RWorkspace;
+import org.txm.stat.engine.r.RWorkspaceException;
+import org.txm.utils.logger.Log;
+
+public class CheckRPackages  extends AbstractHandler {
+
+	public static HashMap<String, String> packages;
+	public static HashMap<String, String> errorMessages;
+	public static HashMap<String, List<String>> depends;
+	{
+		packages = new HashMap<String,String>();
+		errorMessages = new HashMap<String,String>();
+		depends = new HashMap<String,List<String>>();
+		
+		packages.put("textometry", "0.1.4"); //$NON-NLS-1$ //$NON-NLS-2$
+		packages.put("FactoMineR", "1.24"); //$NON-NLS-1$ //$NON-NLS-2$
+		
+		depends.put("textometry", new ArrayList<String>()); //$NON-NLS-1$
+		depends.put("FactoMineR", Arrays.asList("MASS", //$NON-NLS-1$ //$NON-NLS-2$
+				"nnet",  //$NON-NLS-1$
+				"car",  //$NON-NLS-1$
+				"ellipse",  //$NON-NLS-1$
+				"leaps",  //$NON-NLS-1$
+				"lattice",  //$NON-NLS-1$
+				"cluster",  //$NON-NLS-1$
+				"scatterplot3d")); //$NON-NLS-1$
+		
+		errorMessages.put("textometry", Messages.CheckRPackages_0); //$NON-NLS-1$
+		errorMessages.put("FactoMineR", Messages.CheckRPackages_1); //$NON-NLS-1$
+	}
+
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		Shell shell = new Shell();
+		if (check()) {
+			MessageDialog.openInformation(shell, Messages.CheckRPackages_2, Messages.CheckRPackages_3);
+		} else {
+			MessageDialog.openError(shell, Messages.CheckRPackages_4, Messages.CheckRPackages_5);
+		}
+		return null;
+	}
+
+	public static String buildVersion(REXPInteger rExpInteger) throws REXPMismatchException {
+		StringBuffer buff = new StringBuffer(""); //$NON-NLS-1$
+		
+		//RList list = rExpInteger.asList();
+		int[] ints = rExpInteger.asIntegers();
+		for (int i = 0 ; i < rExpInteger.length() ;i++) {
+			buff.append("."+ints[i]); //$NON-NLS-1$
+		}
+		if (buff.length() > 0)
+			return buff.substring(1); // first "."
+
+		return ""; //$NON-NLS-1$
+	}
+
+	public static boolean check() {
+		System.out.print(Messages.CheckRPackages_9);
+		//Log.info("Checking R packages...");
+		
+		String method = "internal"; // default method is internal //$NON-NLS-1$
+		if (Util.isMac()) method = "curl"; //$NON-NLS-1$
+		else if (Util.isLinux()) method = "wget"; //$NON-NLS-1$
+		
+		boolean ret = true;
+		if (Toolbox.isStatEngineInitialized()) {
+			RWorkspace rw = null;
+			try {
+				rw = RWorkspace.getRWorkspaceInstance();
+			} catch (RWorkspaceException e) {
+				Log.printStackTrace(e);
+				System.out.println(Messages.CheckRPackages_13+e);
+				return false;
+			}
+			for (String p : packages.keySet()) {
+				//String v = packages.get(p);
+				//String error = errorMessages.get(p);
+				try {
+					rw.eval("library(\""+p+"\")"); //$NON-NLS-1$ //$NON-NLS-2$
+				} catch (Exception e) {
+					Log.printStackTrace(e);
+					Log.severe(p+" package not installed. Error="+e); //$NON-NLS-1$
+					ret = false;
+				}
+				if (ret) { // check the version and install if possible
+					try {
+						String currentVersion = getVersion(rw,p);
+						ret = updateIfNecessary(rw, p, currentVersion);				
+					} catch (Exception e) {
+						Log.printStackTrace(e);
+						System.out.println("Error while testing package: "+e); //$NON-NLS-1$
+						ret = false;
+					}
+				} else { // package is not present, install it
+					try {
+						System.out.println(Messages.CheckRPackages_14+p+Messages.CheckRPackages_15);
+						try {rw.eval("detach(\"package:"+p+"\", character.only = TRUE)");} catch(Exception tmpE){} // unload package to be able to reinstall it //$NON-NLS-1$ //$NON-NLS-2$
+						
+						rw.eval("install.packages(\""+p+"\", dependencies=TRUE, method=\""+method+"\", repos=\"http://cran.rstudio.com\");"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+						
+						try {
+							rw.eval("library(\""+p+"\")"); //$NON-NLS-1$ //$NON-NLS-2$
+							System.out.println(Messages.CheckRPackages_19+p+Messages.CheckRPackages_20);
+						} catch (Exception e) {
+							Log.printStackTrace(e);
+							System.out.println(Messages.CheckRPackages_21+p+Messages.CheckRPackages_22+p+Messages.CheckRPackages_23);
+							ret = false;
+						}
+					} catch (Exception e) {
+						Log.printStackTrace(e);
+						System.out.println(Messages.CheckRPackages_24+e);
+						ret = false;
+					}
+				}
+			}
+		} else {
+			System.out.println(Messages.CheckRPackages_25);
+			try {
+				installRPAckagesViaRscript();
+			} catch(Exception e) {
+				System.out.println(Messages.CheckRPackages_26);
+			}
+			ret = false;
+		}
+		if (ret == true) System.out.println(" OK"); //$NON-NLS-1$
+		return ret;
+	}
+	
+	public static boolean installRPAckagesViaRscript() throws IOException {
+		String cmd = ""; //$NON-NLS-1$
+		String installPath = TxmPreferences.get(AdvancePreferencePage.INSTALL_DIR);
+		if (Util.isMac() || Util.isLinux()) {
+			cmd = "R --no-save < \""+installPath+"/R/rlibs.R\""; //$NON-NLS-1$ //$NON-NLS-2$
+		} else if (Util.isWindows()) {
+			return false;
+		} else {
+			return false;
+		}
+		Runtime.getRuntime().exec(cmd);
+		return true;
+	}
+
+	private static String getVersion(RWorkspace rw, String p) throws REXPMismatchException, RWorkspaceException {
+		REXP rRez = rw.eval("packageVersion(\""+p+"\")"); //$NON-NLS-1$ //$NON-NLS-2$
+		if (rRez.isList()) {
+			RList rList = rRez.asList();
+			if (rList.size() > 0) {
+				Object elem = rList.get(0);
+				if (elem instanceof REXPInteger) {
+					REXPInteger rExpInt = (REXPInteger)elem;
+					return buildVersion(rExpInt);
+				} else {
+					System.out.println(Messages.CheckRPackages_31+elem);
+				}
+			} else {
+				System.out.println(Messages.CheckRPackages_32+rList);
+			}
+		} else {
+			System.out.println(Messages.CheckRPackages_33+rRez);
+		}	
+		return ""; //$NON-NLS-1$
+	}
+
+	/**
+	 * 
+	 * @param rw
+	 * @param p
+	 * @param currentVersion
+	 * @return false if update failed
+	 * 
+	 * @throws RWorkspaceException
+	 * @throws REXPMismatchException
+	 */
+	private static boolean updateIfNecessary(RWorkspace rw, String p, String currentVersion) throws RWorkspaceException, REXPMismatchException {
+		//System.out.println("Current version of "+p+" is "+v+" and need "+packages.get(p));
+		//System.out.println("comp "+(packages.get(p))+" to "+(v));
+		//System.out.println(packages.get(p).compareTo(v));
+		if (packages.get(p).compareTo(currentVersion) > 0) {
+			System.out.println(Messages.CheckRPackages_35+p+Messages.CheckRPackages_36+currentVersion+Messages.CheckRPackages_37+packages.get(p));
+			
+			try {rw.eval("detach(\"package:"+p+"\", character.only = TRUE)");} catch(Exception tmpE){} // unload package to be able to reinstall it //$NON-NLS-1$ //$NON-NLS-2$
+			
+			//update.packages don't work ?
+			//rw.eval("update.packages(\""+p+"\", dependencies=TRUE, ask=FALSE, repos=\"http://cran.rstudio.com\");"); //$NON-NLS-1$ //$NON-NLS-2$
+			rw.eval("install.packages(\""+p+"\", dependencies=TRUE, repos=\"http://cran.rstudio.com\");"); //$NON-NLS-1$ //$NON-NLS-2$
+			
+			try {rw.eval("library(\""+p+"\")");} catch(Exception tmpE){} // reload it //$NON-NLS-1$ //$NON-NLS-2$
+			String newVersion = getVersion(rw, p);
+			if (!newVersion.equals(packages.get(p))) {
+				System.out.println(Messages.CheckRPackages_42+p+Messages.CheckRPackages_43+newVersion+Messages.CheckRPackages_44);
+				return false;
+			}
+		}
+		return true;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/CheckRPackages.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenManual.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenManual.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenManual.java	(revision 122)
@@ -0,0 +1,93 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.awt.Desktop;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Locale;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.txm.Toolbox;
+import org.txm.rcpapplication.TxmPreferences;
+import org.txm.rcpapplication.preferences.LocalePreferencePage;
+import org.txm.utils.logger.Log;
+
+/**
+ * Open the internal browser of TXM with a file @ author mdecorde.
+ */
+public class OpenManual extends AbstractHandler {
+
+	public static final HashMap<String, String> files = new HashMap<String, String>();
+	public static final String default_locale = "fr";
+	static {
+		files.put("fr", "Manuel de TXM 0.7 FR.pdf");
+		files.put("en", "TXM Manual 0.7 EN.pdf");
+	}
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.rcpapplication.commands.OpenWelcomePage"; //$NON-NLS-1$
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		open();
+		return null;
+	}
+
+	public static void open() {
+		String locale = Locale.getDefault().getLanguage();
+		String installdir = TxmPreferences.getString(Toolbox.INSTALL_DIR, ""); //$NON-NLS-1$
+
+		String file = files.get(locale);
+		if (file == null) file = files.get(default_locale);
+
+		File man = new File(installdir, "doc/"+file);
+		if (!man.exists()) {
+			man = new File(installdir, "doc/"+files.get(default_locale));
+		}
+
+		if (man.exists()) {
+			Log.info("Opening file: "+man);
+			try {
+				Desktop.getDesktop().open(man);
+			} catch (IOException e) {
+				System.out.println("Error: manual not opened: "+e);
+				Log.printStackTrace(e);
+			}
+		} else {
+			System.out.println("Error: manual not found: "+man.getAbsolutePath());
+			Log.severe("Error: manual not found: "+man.getAbsolutePath());
+		}
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenManual.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DeleteFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DeleteFile.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DeleteFile.java	(revision 122)
@@ -0,0 +1,125 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.MessageBox;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.views.fileexplorer.Explorer;
+import org.txm.rcpapplication.views.fileexplorer.MacroExplorer;
+import org.txm.utils.DeleteDir;
+// TODO: Auto-generated Javadoc
+/**
+ * Execute a groovy script file in the same thread a the RCP @ author mdecorde.
+ */
+public class DeleteFile extends AbstractHandler {
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		ISelection selection = HandlerUtil.getCurrentSelection(event);
+		if (selection instanceof IStructuredSelection) {
+			Object o = ((IStructuredSelection)selection).getFirstElement();
+
+			if (o instanceof File) {
+				File file = (File)o;
+				delete(file);
+			}
+		}
+		return null;
+	}
+
+	public static void delete(File file) {
+		//ask new file name
+
+		Shell shell = new Shell();
+		MessageBox dialog = new MessageBox(shell, SWT.YES | SWT.NO);
+		dialog.setMessage(Messages.DeleteFile_0+file+" ? ");  //$NON-NLS-1$
+
+		int buttonID = dialog.open();
+		switch(buttonID) {
+		case SWT.YES:
+			if (file.isFile()) {
+				if (!file.delete()) System.out.println(Messages.DeleteFile_2+file);
+			} else if (file.isDirectory()) {
+				if (!DeleteDir.deleteDirectory(file)) System.out.println(Messages.DeleteFile_2+file);
+			}
+			Explorer.refresh();
+			MacroExplorer.refresh();
+		case SWT.NO:
+			// exits here ...
+			break;
+		case SWT.CANCEL:
+			// does nothing ...
+		}
+	}
+
+	public static void delete(List files) {
+		Shell shell = new Shell();
+		MessageBox dialog = new MessageBox(shell, SWT.YES | SWT.NO);
+		dialog.setMessage(Messages.DeleteFile_0+files+" ? ");  //$NON-NLS-1$
+		
+		int buttonID = dialog.open();
+		switch(buttonID) {
+		case SWT.YES:
+			for (Object o : files) {
+				if (o instanceof File) {
+					File file = (File) o;
+					if (file.exists())
+					if (file.isFile()) {
+						if (!file.delete()) System.out.println(Messages.DeleteFile_2+file);
+					} else if (file.isDirectory()) {
+						if (!DeleteDir.deleteDirectory(file)) System.out.println(Messages.DeleteFile_2+file);
+					}
+				}
+			}
+			Explorer.refresh();
+			MacroExplorer.refresh();
+		case SWT.NO:
+			// exits here ...
+			break;
+		case SWT.CANCEL:
+			// does nothing ...
+		}
+		
+		
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/DeleteFile.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenSVGGraph.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenSVGGraph.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenSVGGraph.java	(revision 122)
@@ -0,0 +1,117 @@
+// 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:$
+// $LastChangedRevision:$
+// $LastChangedBy:$
+//
+package org.txm.rcpapplication.commands;
+
+import java.io.File;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.rcpapplication.Messages;
+import org.txm.rcpapplication.editors.SVGGraphicEditor;
+import org.txm.rcpapplication.editors.input.SVGGraphicEditorInput;
+import org.txm.rcpapplication.swt.dialog.LastOpened;
+// TODO: Auto-generated Javadoc
+/**
+ * open a SVG file in an editor @ author mdecorde.
+ */
+public class OpenSVGGraph extends AbstractHandler {
+
+	private static final String ID = "org.txm.rcpapplication.commands.OpenSVGGraph"; //$NON-NLS-1$
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+
+		String svgFile = ""; //$NON-NLS-1$
+		File file = null;
+
+		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event)
+				.getShell();
+
+		if (file == null || file.isDirectory()) {
+			FileDialog dialog = new FileDialog(shell, SWT.OPEN);
+			if (LastOpened.getFile(ID) != null) {
+				dialog.setFilterPath(LastOpened.getFolder(ID));
+				dialog.setFileName(LastOpened.getFile(ID));
+			}
+			if (dialog.open() == null) return null;
+			svgFile = dialog.getFilterPath() + "/" + dialog.getFileName(); //$NON-NLS-1$
+			LastOpened.set(ID, dialog.getFilterPath(), dialog.getFileName());
+			OpenSVGFile(svgFile);
+		}
+
+		return null;
+	}
+
+	/**
+	 * Open svg file.
+	 *
+	 * @param filepath the filepath
+	 * @return the sVG graphic editor
+	 */
+	public static SVGGraphicEditor OpenSVGFile(String filepath) {
+		return OpenSVGFile(filepath, Messages.OpenSVGGraph_0);
+	}
+
+	/**
+	 * Open svg file.
+	 *
+	 * @param filepath the filepath
+	 * @param name the name
+	 * @return the sVG graphic editor
+	 */
+	public static SVGGraphicEditor OpenSVGFile(String filepath, String name) {
+		//System.out.println("SVGFile path : "+filepath); //$NON-NLS-1$
+		IEditorInput editorInput = new SVGGraphicEditorInput(filepath, name);
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		//IWorkbenchWindow window = TXMWindows.getActiveWindow(); //.getActiveWorkbenchWindow()
+		IWorkbenchPage page = window.getActivePage();
+		SVGGraphicEditor editor = null;
+		try {
+			// System.out.println("open svg editor" );
+			editor = (SVGGraphicEditor) page.openEditor(editorInput,
+					SVGGraphicEditor.ID, true);
+			editor.resetView();
+			// System.out.println("open svg editor - DONE" );
+		} catch (PartInitException e) {
+			org.txm.rcpapplication.utils.Logger.printStackTrace(e);
+		}
+		return editor;
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/commands/OpenSVGGraph.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMWindows.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMWindows.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMWindows.java	(revision 122)
@@ -0,0 +1,29 @@
+package org.txm.rcpapplication;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * 
+ * Util to get the active Window
+ * 
+ * @author mdecorde
+ *
+ */
+public class TXMWindows {
+	public static IWorkbenchWindow getActiveWindow() {
+		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		if (window == null) {
+			IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
+			if (windows.length > 0) {
+				window = windows[0];
+			}
+		}
+		return window;
+	}
+	
+	public static Display getDisplay() {
+		return PlatformUI.getWorkbench().getDisplay();
+	}
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMWindows.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMClassLoader.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMClassLoader.java	(revision 0)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMClassLoader.java	(revision 122)
@@ -0,0 +1,20 @@
+package org.txm.rcpapplication;
+
+import java.util.HashSet;
+
+public class TXMClassLoader extends ClassLoader {
+	private HashSet<ClassLoader> loaders;
+
+	public TXMClassLoader(HashSet<ClassLoader> loaders2) {
+		this.loaders  = loaders2;
+	}
+	
+    public Class findClass(String name) throws ClassNotFoundException {
+        for (ClassLoader cl : loaders) {
+        	try {
+        		return cl.loadClass(name);
+        	} catch(Exception e) {}
+        }
+        throw new ClassNotFoundException(name);
+    }
+}

Property changes on: tmp/org.txm.rcp/src/main/java/org/txm/rcpapplication/TXMClassLoader.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/rcpapplication.product
===================================================================
--- tmp/org.txm.rcp/rcpapplication.product	(revision 0)
+++ tmp/org.txm.rcp/rcpapplication.product	(revision 122)
@@ -0,0 +1,579 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?pde version="3.5"?>
+
+<product name="TXM" uid="org.txm.rcp" id="org.txm.rcp.product" application="org.txm.rcp.Application" version="0.7.8.qualifier" useFeatures="true" includeLaunchers="true">
+
+   <aboutInfo>
+      <image path="/org.txm.rcp/icons/logo/about TXM.png"/>
+      <text>
+         &lt;TXM Software User Agreement&gt;
+
+TXM 0.7.8 Copyright © 2010-2016 ENS de Lyon, University of Franche-Comté, CNRS
+
+&lt;English version below&gt;
+
+EN ACCEPTANT CETTE MISE À JOUR ET EN UTILISANT TXM, VOUS VOUS ENGAGEZ À CITER L&apos;ARTICLE DE RÉFÉRENCE DE LA PLATEFORME* DANS VOS PUBLICATIONS DE RÉSULTATS OBTENUS À PARTIR D&apos;ELLE. CELA EST ESSENTIEL POUR NOUS PERMETTRE DE JUSTIFIER LE BESOIN DE PÉRENNISATION DE CET INSTRUMENT DE TRAVAIL POUR LA COMMUNAUTÉ SCIENTIFIQUE.
+
+Le logiciel TXM est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier suivant les termes de la Licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 2 de cette License, soit une version ultérieure.
+
+Le logiciel TXM est distribué dans l&apos;espoir qu&apos;il sera utile, mais sans aucune garantie, y compris mais non de façon limitative les garanties implicites de qualité marchande et de convenance à un usage particulier. Consultez la version 2 et la version 3 de la Licence publique générale GNU pour plus de détails.
+
+Vous devriez avoir reçu une copie de la Licence publique générale GNU en accompagnement du logiciel TXM ; si ce n&apos;est pas le cas, veuillez consulter la page http://www.gnu.org/licenses/gpl-2.0.html.
+_______________
+* Serge Heiden, Jean-Philippe Magué, Bénédicte Pincemin.
+TXM : Une plateforme logicielle open-source pour la textométrie - conception et développement. Sergio Bolasco, Isabella Chiari, Luca Giuliano. 10th International Conference on the Statistical Analysis of Textual Data - JADT 2010, Jun 2010, Rome, Italie.
+Edizioni Universitarie di Lettere Economia Diritto, 2 (3), pp.1021-1032, 2010. &lt;halshs-00549779&gt;
+
+
+ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH
+
+
+By accepting this update and by using TXM, you agree to cite the TXM platform reference article** in your publications of results obtained from it. That is essential for us to justify the need for sustainability of this instrument for the scientific community.
+
+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/gpl-2.0.html.
+_______________
+** Serge Heiden. The TXM Platform: Building Open-Source Textual
+Analysis Software Compatible with the TEI Encoding Scheme. Ryo Otoguro, Kiyoshi Ishikawa, Hiroshi Umemoto, Kei Yoshimoto and Yasunari Harada. 24th Pacific Asia Conference on Language, Information and Computation, Nov 2010, Sendai, Japan. Institute for Digital Enhancement of Cognitive Development, Waseda University, pp.389-398, 2010. &lt;halshs-00549764&gt;
+      </text>
+   </aboutInfo>
+
+   <configIni use="default">
+   </configIni>
+
+   <launcherArgs>
+      <vmArgs>-Xms512m -Xmx1024m
+-Dfile.encoding=UTF-8
+-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient4
+-Dorg.eclipse.ecf.provider.filetransfer.retrieve.connectTimeout=6000
+-Dorg.eclipse.ecf.provider.filetransfer.retrieve.retryAttempts=5
+      </vmArgs>
+      <vmArgsLin>-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
+      </vmArgsLin>
+      <vmArgsMac>-XstartOnFirstThread 
+-Dorg.eclipse.swt.internal.carbon.smallFonts
+      </vmArgsMac>
+      <vmArgsWin>-XX:MaxPermSize=256m
+      </vmArgsWin>
+   </launcherArgs>
+
+   <windowImages i32="/org.txm.rcp/icons/logo/TXM logo.png"/>
+
+   <splash
+      location="org.txm.rcp"
+      startupProgressRect="13,332,290,15"
+      startupMessageRect="13,312,290,20"
+      startupForegroundColor="000000" />
+   <launcher name="TXM">
+      <linux icon="/org.txm.rcp/icons/logo/TXM logo.xpm"/>
+      <macosx icon="/org.txm.rcp/icons/logo/TXM logo.icns"/>
+      <solaris/>
+      <win useIco="false">
+         <bmp
+            winSmallHigh="/org.txm.rcp/icons/logo/TXM logo 16x16 32-bit.bmp"
+            winSmallLow="/org.txm.rcp/icons/logo/TXM logo 16x16 8-bit.bmp"
+            winMediumHigh="/org.txm.rcp/icons/logo/TXM logo 32x32 32-bit.bmp"
+            winMediumLow="/org.txm.rcp/icons/logo/TXM logo 32x32 8-bit.bmp"
+            winLargeHigh="/org.txm.rcp/icons/logo/TXM logo 48x48 32-bit.bmp"
+            winLargeLow="/org.txm.rcp/icons/logo/TXM logo 48x48 8-bit.bmp"/>
+      </win>
+   </launcher>
+
+   <vm>
+   </vm>
+
+   <license>
+        <text>
+   &lt;TXM Software User Agreement&gt;
+
+TXM 0.7.8 Copyright © 2010-2016 ENS de Lyon, University of Franche-Comté, CNRS
+
+&lt;English version below&gt;
+
+EN ACCEPTANT CETTE MISE À JOUR ET EN UTILISANT TXM, VOUS VOUS ENGAGEZ À CITER L&apos;ARTICLE DE RÉFÉRENCE DE LA PLATEFORME* DANS VOS PUBLICATIONS DE RÉSULTATS OBTENUS À PARTIR D&apos;ELLE. CELA EST ESSENTIEL POUR NOUS PERMETTRE DE JUSTIFIER LE BESOIN DE PÉRENNISATION DE CET INSTRUMENT DE TRAVAIL POUR LA COMMUNAUTÉ SCIENTIFIQUE.
+
+Le logiciel TXM est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier suivant les termes de la Licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 2 de cette License, soit une version ultérieure.
+
+Le logiciel TXM est distribué dans l&apos;espoir qu&apos;il sera utile, mais sans aucune garantie, y compris mais non de façon limitative les garanties implicites de qualité marchande et de convenance à un usage particulier. Consultez la version 2 et la version 3 de la Licence publique générale GNU pour plus de détails.
+
+Vous devriez avoir reçu une copie de la Licence publique générale GNU en accompagnement du logiciel TXM ; si ce n&apos;est pas le cas, veuillez consulter la page http://www.gnu.org/licenses/gpl-2.0.html.
+_______________
+* Serge Heiden, Jean-Philippe Magué, Bénédicte Pincemin.
+TXM : Une plateforme logicielle open-source pour la textométrie - conception et développement. Sergio Bolasco, Isabella Chiari, Luca Giuliano. 10th International Conference on the Statistical Analysis of Textual Data - JADT 2010, Jun 2010, Rome, Italie.
+Edizioni Universitarie di Lettere Economia Diritto, 2 (3), pp.1021-1032, 2010. &lt;halshs-00549779&gt;
+
+
+ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH
+
+
+By accepting this update and by using TXM, you agree to cite the TXM platform reference article** in your publications of results obtained from it. That is essential for us to justify the need for sustainability of this instrument for the scientific community.
+
+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/gpl-2.0.html.
+_______________
+** Serge Heiden. The TXM Platform: Building Open-Source Textual
+Analysis Software Compatible with the TEI Encoding Scheme. Ryo Otoguro, Kiyoshi Ishikawa, Hiroshi Umemoto, Kei Yoshimoto and Yasunari Harada. 24th Pacific Asia Conference on Language, Information and Computation, Nov 2010, Sendai, Japan. Institute for Digital Enhancement of Cognitive Development, Waseda University, pp.389-398, 2010. &lt;halshs-00549764&gt;
+         </text>
+   </license>
+
+   <plugins>
+      <plugin id="com.ibm.icu"/>
+      <plugin id="groovy-all"/>
+      <plugin id="javax.annotation"/>
+      <plugin id="javax.inject"/>
+      <plugin id="javax.persistence"/>
+      <plugin id="javax.xml"/>
+      <plugin id="jfreechart"/>
+      <plugin id="org.apache.batik.css"/>
+      <plugin id="org.apache.batik.util"/>
+      <plugin id="org.apache.batik.util.gui"/>
+      <plugin id="org.eclipse.compare"/>
+      <plugin id="org.eclipse.compare.core"/>
+      <plugin id="org.eclipse.compare.core.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.compare.core.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.compare.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.compare.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.commands"/>
+      <plugin id="org.eclipse.core.commands.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.commands.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.contenttype"/>
+      <plugin id="org.eclipse.core.databinding"/>
+      <plugin id="org.eclipse.core.databinding.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.databinding.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.databinding.observable"/>
+      <plugin id="org.eclipse.core.databinding.observable.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.databinding.observable.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.databinding.property"/>
+      <plugin id="org.eclipse.core.databinding.property.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.databinding.property.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.expressions"/>
+      <plugin id="org.eclipse.core.filebuffers"/>
+      <plugin id="org.eclipse.core.filebuffers.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filebuffers.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.aix.ppc64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.hpux.ia64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.hpux.ia64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.hpux.ia64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.java7" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.java7.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.java7.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64le" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64le.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.ppc64le.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.linux.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.macosx.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.macosx.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.solaris.sparc" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.solaris.sparc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.solaris.sparc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.filesystem.win32.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.jobs"/>
+      <plugin id="org.eclipse.core.net"/>
+      <plugin id="org.eclipse.core.net.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.net.linux.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.net.linux.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.net.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.net.linux.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.net.linux.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.net.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.net.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.net.win32.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.resources"/>
+      <plugin id="org.eclipse.core.resources.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.resources.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.core.resources.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.core.runtime"/>
+      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
+      <plugin id="org.eclipse.core.variables"/>
+      <plugin id="org.eclipse.core.variables.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.core.variables.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.core.commands"/>
+      <plugin id="org.eclipse.e4.core.commands.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.core.commands.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.core.contexts"/>
+      <plugin id="org.eclipse.e4.core.di"/>
+      <plugin id="org.eclipse.e4.core.di.extensions"/>
+      <plugin id="org.eclipse.e4.core.services"/>
+      <plugin id="org.eclipse.e4.ui.bindings"/>
+      <plugin id="org.eclipse.e4.ui.bindings.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.bindings.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.core"/>
+      <plugin id="org.eclipse.e4.ui.css.core.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.core.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.swt"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.css.swt.theme.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.di"/>
+      <plugin id="org.eclipse.e4.ui.di.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.di.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.model.workbench.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.services"/>
+      <plugin id="org.eclipse.e4.ui.services.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.services.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.widgets"/>
+      <plugin id="org.eclipse.e4.ui.widgets.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.widgets.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench"/>
+      <plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.addons.swt.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.addons.swt.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.renderers.swt.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench.swt.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench3"/>
+      <plugin id="org.eclipse.e4.ui.workbench3.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.e4.ui.workbench3.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ecf"/>
+      <plugin id="org.eclipse.ecf.filetransfer"/>
+      <plugin id="org.eclipse.ecf.identity"/>
+      <plugin id="org.eclipse.ecf.provider.filetransfer"/>
+      <plugin id="org.eclipse.ecf.provider.filetransfer.ssl" fragment="true"/>
+      <plugin id="org.eclipse.ecf.ssl" fragment="true"/>
+      <plugin id="org.eclipse.emf.common"/>
+      <plugin id="org.eclipse.emf.ecore"/>
+      <plugin id="org.eclipse.emf.ecore.change"/>
+      <plugin id="org.eclipse.emf.ecore.xmi"/>
+      <plugin id="org.eclipse.equinox.app"/>
+      <plugin id="org.eclipse.equinox.bidi"/>
+      <plugin id="org.eclipse.equinox.common"/>
+      <plugin id="org.eclipse.equinox.ds"/>
+      <plugin id="org.eclipse.equinox.event"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin.equinox"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin.equinox.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin.equinox.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.frameworkadmin.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
+      <plugin id="org.eclipse.equinox.p2.artifact.repository.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.artifact.repository.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.console"/>
+      <plugin id="org.eclipse.equinox.p2.console.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.console.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.core"/>
+      <plugin id="org.eclipse.equinox.p2.core.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.core.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.director"/>
+      <plugin id="org.eclipse.equinox.p2.director.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.director.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.discovery"/>
+      <plugin id="org.eclipse.equinox.p2.discovery.compatibility"/>
+      <plugin id="org.eclipse.equinox.p2.discovery.compatibility.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.discovery.compatibility.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.discovery.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.discovery.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.engine"/>
+      <plugin id="org.eclipse.equinox.p2.engine.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.engine.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
+      <plugin id="org.eclipse.equinox.p2.garbagecollector.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.garbagecollector.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
+      <plugin id="org.eclipse.equinox.p2.jarprocessor.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.jarprocessor.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.metadata"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.repository.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.metadata.repository.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.operations"/>
+      <plugin id="org.eclipse.equinox.p2.operations.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.operations.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.publisher"/>
+      <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
+      <plugin id="org.eclipse.equinox.p2.publisher.eclipse.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.publisher.eclipse.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.publisher.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.publisher.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.repository"/>
+      <plugin id="org.eclipse.equinox.p2.repository.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.repository.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
+      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.transport.ecf"/>
+      <plugin id="org.eclipse.equinox.p2.transport.ecf.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.transport.ecf.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui"/>
+      <plugin id="org.eclipse.equinox.p2.ui.discovery"/>
+      <plugin id="org.eclipse.equinox.p2.ui.discovery.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.discovery.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.ui.sdk.scheduler.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.updatechecker"/>
+      <plugin id="org.eclipse.equinox.p2.updatechecker.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.updatechecker.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.updatesite"/>
+      <plugin id="org.eclipse.equinox.p2.updatesite.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.p2.updatesite.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.preferences"/>
+      <plugin id="org.eclipse.equinox.registry"/>
+      <plugin id="org.eclipse.equinox.security"/>
+      <plugin id="org.eclipse.equinox.security.macosx" fragment="true"/>
+      <plugin id="org.eclipse.equinox.security.ui"/>
+      <plugin id="org.eclipse.equinox.security.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.equinox.security.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator.manipulator.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.equinox.simpleconfigurator.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.equinox.util"/>
+      <plugin id="org.eclipse.help"/>
+      <plugin id="org.eclipse.help.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.help.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.jface"/>
+      <plugin id="org.eclipse.jface.databinding"/>
+      <plugin id="org.eclipse.jface.databinding.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.jface.databinding.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.jface.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.jface.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.jface.text"/>
+      <plugin id="org.eclipse.jface.text.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.jface.text.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ltk.core.refactoring"/>
+      <plugin id="org.eclipse.ltk.core.refactoring.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ltk.core.refactoring.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ltk.ui.refactoring"/>
+      <plugin id="org.eclipse.ltk.ui.refactoring.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ltk.ui.refactoring.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.osgi"/>
+      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
+      <plugin id="org.eclipse.osgi.compatibility.state.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.osgi.compatibility.state.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.osgi.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.osgi.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.osgi.services"/>
+      <plugin id="org.eclipse.osgi.services.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.osgi.services.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.osgi.util"/>
+      <plugin id="org.eclipse.osgi.util.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.osgi.util.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.persistence.asm"/>
+      <plugin id="org.eclipse.persistence.core"/>
+      <plugin id="org.eclipse.persistence.jpa"/>
+      <plugin id="org.eclipse.persistence.jpa.jpql"/>
+      <plugin id="org.eclipse.persistence.nosql" fragment="true"/>
+      <plugin id="org.eclipse.persistence.oracle" fragment="true"/>
+      <plugin id="org.eclipse.persistence.oracle.nosql" fragment="true"/>
+      <plugin id="org.eclipse.platform"/>
+      <plugin id="org.eclipse.platform.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.platform.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt"/>
+      <plugin id="org.eclipse.swt.carbon.macosx.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.carbon.macosx.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.cocoa.macosx.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.aix.ppc64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64_32.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.hpux.ia64_32.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64le" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64le.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.ppc64le.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390x" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390x.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.s390x.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.linux.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.sparc" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.sparc.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.sparc.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.gtk.solaris.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.swt.win32.win32.x86_64.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.team.core"/>
+      <plugin id="org.eclipse.team.core.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.team.core.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.team.ui"/>
+      <plugin id="org.eclipse.team.ui.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.team.ui.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.text"/>
+      <plugin id="org.eclipse.text.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.text.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui"/>
+      <plugin id="org.eclipse.ui.browser"/>
+      <plugin id="org.eclipse.ui.browser.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.browser.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.cocoa" fragment="true"/>
+      <plugin id="org.eclipse.ui.cocoa.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.cocoa.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.console"/>
+      <plugin id="org.eclipse.ui.console.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.console.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.editors"/>
+      <plugin id="org.eclipse.ui.editors.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.editors.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.forms"/>
+      <plugin id="org.eclipse.ui.forms.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.forms.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.ide"/>
+      <plugin id="org.eclipse.ui.ide.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.ide.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.intro"/>
+      <plugin id="org.eclipse.ui.intro.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.intro.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.navigator"/>
+      <plugin id="org.eclipse.ui.navigator.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.navigator.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.navigator.resources"/>
+      <plugin id="org.eclipse.ui.navigator.resources.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.navigator.resources.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.net"/>
+      <plugin id="org.eclipse.ui.net.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.net.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.themes"/>
+      <plugin id="org.eclipse.ui.themes.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.themes.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.views"/>
+      <plugin id="org.eclipse.ui.views.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.views.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.views.properties.tabbed"/>
+      <plugin id="org.eclipse.ui.views.properties.tabbed.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.views.properties.tabbed.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.win32" fragment="true"/>
+      <plugin id="org.eclipse.ui.win32.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.win32.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench"/>
+      <plugin id="org.eclipse.ui.workbench.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench.texteditor"/>
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.ui.workbench.texteditor.nl_ru" fragment="true"/>
+      <plugin id="org.eclipse.update.configurator"/>
+      <plugin id="org.eclipse.update.configurator.nl_fr" fragment="true"/>
+      <plugin id="org.eclipse.update.configurator.nl_ru" fragment="true"/>
+      <plugin id="org.sat4j.core"/>
+      <plugin id="org.sat4j.pb"/>
+      <plugin id="org.txm.core"/>
+      <plugin id="org.txm.rcp"/>
+      <plugin id="org.w3c.css.sac"/>
+      <plugin id="org.w3c.dom.events"/>
+      <plugin id="org.w3c.dom.smil"/>
+      <plugin id="org.w3c.dom.svg"/>
+   </plugins>
+
+   <features>
+      <feature id="org.txm.rcp.feature"/>
+      <feature id="org.eclipse.ecf.filetransfer.httpclient4.feature"/>
+      <feature id="org.eclipse.ecf.filetransfer.feature"/>
+      <feature id="org.eclipse.equinox.p2.core.feature"/>
+      <feature id="org.eclipse.ecf.core.ssl.feature"/>
+      <feature id="org.eclipse.rcp"/>
+      <feature id="org.eclipse.babel.nls_eclipse_ru"/>
+      <feature id="org.eclipse.babel.nls_eclipse_fr"/>
+      <feature id="org.eclipse.ecf.core.feature"/>
+      <feature id="org.eclipse.emf.ecore"/>
+      <feature id="org.eclipse.e4.rcp"/>
+      <feature id="org.eclipse.ecf.filetransfer.httpclient4.ssl.feature"/>
+      <feature id="org.eclipse.emf.common"/>
+      <feature id="org.eclipse.equinox.p2.rcp.feature"/>
+      <feature id="org.eclipse.equinox.p2.user.ui"/>
+      <feature id="org.eclipse.equinox.p2.extras.feature"/>
+      <feature id="org.eclipse.ecf.filetransfer.ssl.feature"/>
+      <feature id="SynopticEditor.feature"/>
+      <feature id="CQP.feature"/>
+   </features>
+
+   <configurations>
+      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
+      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="0" />
+      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
+   </configurations>
+
+</product>

Property changes on: tmp/org.txm.rcp/rcpapplication.product
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/css/default_windows.css
===================================================================
--- tmp/org.txm.rcp/css/default_windows.css	(revision 0)
+++ tmp/org.txm.rcp/css/default_windows.css	(revision 122)
@@ -0,0 +1,5 @@
+@import url("e4_default_win7.css");
+
+#SearchField {
+   visibility:hidden;
+}
\ No newline at end of file
Index: tmp/org.txm.rcp/css/default_linux.css
===================================================================
--- tmp/org.txm.rcp/css/default_linux.css	(revision 0)
+++ tmp/org.txm.rcp/css/default_linux.css	(revision 122)
@@ -0,0 +1,5 @@
+@import url("e4_default_gtk.css");
+
+#SearchField {
+   visibility:hidden;
+}
\ No newline at end of file
Index: tmp/org.txm.rcp/css/default_mac.css
===================================================================
--- tmp/org.txm.rcp/css/default_mac.css	(revision 0)
+++ tmp/org.txm.rcp/css/default_mac.css	(revision 122)
@@ -0,0 +1,5 @@
+@import url("e4_default_mac.css");
+
+#SearchField {
+   visibility:hidden;
+}
\ No newline at end of file
Index: tmp/org.txm.rcp/build.properties
===================================================================
--- tmp/org.txm.rcp/build.properties	(revision 0)
+++ tmp/org.txm.rcp/build.properties	(revision 122)
@@ -0,0 +1,22 @@
+source.. = src/,\
+           src/main/java/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               splash.bmp,\
+               lib/,\
+               rcpapplication.product,\
+               plugin_customization.ini,\
+               lib/commons-cli-1.2.jar,\
+               lib/commons-lang-2.4.jar,\
+               lib/junit-4.5.jar,\
+               lib/log4j-1.2.12.jar,\
+               icons/,\
+               OSGI-INF/,\
+               OSGI-INF/l10n/bundle.properties,\
+               installtreetagger_en.html,\
+               css/,\
+               p2.inf,\
+               bin/
+bin.excludes = lib/batik/

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

Index: tmp/org.txm.rcp/p2.inf
===================================================================
Index: tmp/org.txm.rcp/plugin.xml
===================================================================
--- tmp/org.txm.rcp/plugin.xml	(revision 0)
+++ tmp/org.txm.rcp/plugin.xml	(revision 122)
@@ -0,0 +1,4928 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+   <extension-point id="org.txm.rcp.extentionpoint.command" name="%extension-point.name" schema="schema/org.txm.rcp.extentionpoint.command.exsd"/>
+   <extension-point id="org.txm.rcp.extensionpoint.backtotext" name="Back to text" schema="schema/org.txm.rcp.extensionpoint.backtotext.exsd"/>
+
+   <extension
+         id="Application"
+         point="org.eclipse.core.runtime.applications">
+      <application
+            icon="icons/logo/TXM logo.png">
+         <run
+               class="org.txm.rcpapplication.Application">
+         </run>
+      </application>
+   </extension>
+   <extension
+         point="org.eclipse.ui.perspectives">
+      <perspective
+            class="org.txm.rcpapplication.perspective.TXMPerspective"
+            icon="icons/objects/corpus.png"
+            id="org.txm.rcpapplication.perspective.TXMPerspective"
+            name="%perspective.name">
+      </perspective>
+      <perspective
+            class="org.txm.rcpapplication.perspective.RPerspective"
+            icon="icons/logo/Rcran.png"
+            id="org.txm.rcpapplication.perspective.RPerspective"
+            name="%perspective.name.0">
+      </perspective>
+   </extension>
+   <extension
+         id="product"
+         point="org.eclipse.core.runtime.products">
+      <product
+            application="org.txm.rcp.Application"
+            name="TXM">
+         <property
+               name="appName"
+               value="TXM">
+         </property>
+         <property
+               name="preferenceCustomization"
+               value="plugin_customization.ini">
+         </property>
+         <property
+               name="windowImages"
+               value="icons/logo/TXM logo.png">
+         </property>
+         <property
+               name="startupForegroundColor"
+               value="000000">
+         </property>
+         <property
+               name="startupMessageRect"
+               value="13,312,290,20">
+         </property>
+         <property
+               name="aboutImage"
+               value="icons/logo/about TXM.png">
+         </property>
+         <property
+               name="aboutText"
+               value="&lt;TXM Software User Agreement&gt;&#x0A;&#x0A;TXM 0.7.8 Copyright © 2010-2016 ENS de Lyon, University of Franche-Comté, CNRS&#x0A;&#x0A;&lt;English version below&gt;&#x0A;&#x0A;EN ACCEPTANT CETTE MISE À JOUR ET EN UTILISANT TXM, VOUS VOUS ENGAGEZ À CITER L&apos;ARTICLE DE RÉFÉRENCE DE LA PLATEFORME* DANS VOS PUBLICATIONS DE RÉSULTATS OBTENUS À PARTIR D&apos;ELLE. CELA EST ESSENTIEL POUR NOUS PERMETTRE DE JUSTIFIER LE BESOIN DE PÉRENNISATION DE CET INSTRUMENT DE TRAVAIL POUR LA COMMUNAUTÉ SCIENTIFIQUE.&#x0A;&#x0A;Le logiciel TXM est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier suivant les termes de la Licence publique générale GNU telle que publiée par la Free Software Foundation, soit la version 2 de cette License, soit une version ultérieure.&#x0A;&#x0A;Le logiciel TXM est distribué dans l&apos;espoir qu&apos;il sera utile, mais sans aucune garantie, y compris mais non de façon limitative les garanties implicites de qualité marchande et de convenance à un usage particulier. Consultez la version 2 et la version 3 de la Licence publique générale GNU pour plus de détails.&#x0A;&#x0A;Vous devriez avoir reçu une copie de la Licence publique générale GNU en accompagnement du logiciel TXM ; si ce n&apos;est pas le cas, veuillez consulter la page http://www.gnu.org/licenses/gpl-2.0.html.&#x0A;_______________&#x0A;* Serge Heiden, Jean-Philippe Magué, Bénédicte Pincemin.&#x0A;TXM : Une plateforme logicielle open-source pour la textométrie - conception et développement. Sergio Bolasco, Isabella Chiari, Luca Giuliano. 10th International Conference on the Statistical Analysis of Textual Data - JADT 2010, Jun 2010, Rome, Italie.&#x0A;Edizioni Universitarie di Lettere Economia Diritto, 2 (3), pp.1021-1032, 2010. &lt;halshs-00549779&gt;&#x0A;&#x0A;&#x0A;ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH ENGLISH&#x0A;&#x0A;&#x0A;By accepting this update and by using TXM, you agree to cite the TXM platform reference article** in your publications of results obtained from it. That is essential for us to justify the need for sustainability of this instrument for the scientific community.&#x0A;&#x0A;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.&#x0A;&#x0A;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.&#x0A;&#x0A;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/gpl-2.0.html.&#x0A;_______________&#x0A;** Serge Heiden. The TXM Platform: Building Open-Source Textual&#x0A;Analysis Software Compatible with the TEI Encoding Scheme. Ryo Otoguro, Kiyoshi Ishikawa, Hiroshi Umemoto, Kei Yoshimoto and Yasunari Harada. 24th Pacific Asia Conference on Language, Information and Computation, Nov 2010, Sendai, Japan. Institute for Digital Enhancement of Cognitive Development, Waseda University, pp.389-398, 2010. &lt;halshs-00549764&gt;">
+         </property>
+         <property
+               name="startupProgressRect"
+               value="13,332,290,15">
+         </property>
+         <property
+               name="cssTheme"
+               value="org.txm.rcp.theme.default.linux">
+         </property>
+      </product>
+   </extension>
+   <extension
+         point="org.eclipse.ui.perspectiveExtensions">
+      <perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
+         <view
+               closeable="false"
+               id="org.txm.rcpapplication.views.CorporaView"
+               ratio="0.5"
+               relationship="right"
+               relative="org.eclipse.ui.views.TaskList"/>
+         <view
+               closeable="true"
+               id="org.eclipse.ui.views.ProgressView"
+               ratio="0.5"
+               relationship="bottom"
+               showTitle="true"
+               visible="true">
+         </view>
+         <view
+               closeable="true"
+               id="org.txm.rcpapplication.views.GroovyConsole"
+               minimized="false"
+               ratio="0.5"
+               relationship="bottom"
+               visible="true">
+         </view>
+         <view
+               closeable="true"
+               id="org.txm.rcpapplication.views.QueriesView"
+               ratio="0.5"
+               relationship="right"
+               relative="org.eclipse.ui.views.TaskList">
+         </view>
+      </perspectiveExtension>
+   </extension>
+   <extension
+         point="org.eclipse.ui.views">
+      <category
+            id="org.txm.rcpapplication"
+            name="%category.name"/>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.CorporaView"
+            icon="icons/objects/corpus.png"
+            id="org.txm.rcpapplication.views.CorporaView"
+            name="%view.name"/>
+      <view
+            allowMultiple="false"
+            category="org.eclipse.ui"
+            class="org.eclipse.ui.ExtensionFactory:progressView"
+            id="org.eclipse.ui.views.ProgressView"
+            name="%view.name.0"
+            restorable="true">
+      </view>
+      <view
+            allowMultiple="false"
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.fileexplorer.Explorer"
+            icon="icons/objects/folder.png"
+            id="org.txm.rcpapplication.views.fileexplorer.Explorer"
+            name="%view.name.1"
+            restorable="true">
+      </view>
+      <view
+            allowMultiple="false"
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.GroovyConsole"
+            id="org.txm.rcpapplication.views.GroovyConsole"
+            name="%view.name.2"
+            restorable="true">
+      </view>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.BasesView"
+            id="org.txm.rcpapplication.views.BasesView"
+            name="%view.name.3"
+            restorable="true">
+      </view>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.QueriesView"
+            icon="icons/objects/query.png"
+            id="org.txm.rcpapplication.views.QueriesView"
+            name="%view.name.4"
+            restorable="true">
+      </view>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.RVariablesView"
+            id="org.txm.rcpapplication.views.RVariablesView"
+            name="%view.name.5"
+            restorable="true">
+      </view>
+      <view
+            allowMultiple="false"
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.RConsole"
+            icon="icons/decorators/R.png"
+            id="org.txm.rcpapplication.views.RConsole"
+            name="%view.name.6"
+            restorable="true">
+      </view>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.SummaryView"
+            id="org.txm.rcpapplication.views.InternalCorpusView"
+            name="%view.name.7"
+            restorable="true">
+      </view>
+      <view
+            allowMultiple="false"
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.fileexplorer.MacroExplorer"
+            icon="icons/objects/script.png"
+            id="org.txm.rcpapplication.views.fileexplorer.MacroExplorer"
+            name="%view.name.8"
+            restorable="true">
+      </view>
+      <view
+            category="org.txm.rcpapplication"
+            class="org.txm.rcpapplication.views.knowledgerepositories.KRView"
+            id="org.txm.rcpapplication.views.knowledgerepositories.KRView"
+            name="%view.name.9"
+            restorable="true">
+      </view>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.adapters">
+      <factory
+            adaptableType="org.txm.searchengine.cqp.corpus.CorpusManager"
+            class="org.txm.rcpapplication.AdapterFactory">
+         <adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+      </factory>
+	<factory 
+		adaptableType="org.txm.searchengine.cqp.corpus.Lexicon" 
+		class="org.txm.rcpapplication.AdapterFactory">
+		<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+	</factory>
+
+	<factory 
+		adaptableType="org.txm.searchengine.cqp.corpus.Corpus" 
+		class="org.txm.rcpapplication.AdapterFactory">
+		<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+	</factory>
+
+	<factory 
+		adaptableType="org.txm.searchengine.cqp.corpus.Partition" 
+		class="org.txm.rcpapplication.AdapterFactory">
+		<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+	</factory>
+
+
+	<factory 
+		adaptableType="org.txm.stat.data.LexicalTable" 
+		class="org.txm.rcpapplication.AdapterFactory">
+		<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+	</factory>
+
+	<factory 
+		adaptableType="org.txm.functions.concordances.Concordance" 
+		class="org.txm.rcpapplication.AdapterFactory">
+		<adapter type="org.eclipse.ui.model.IWorkbenchAdapter"/>
+	</factory>
+ <factory
+       adaptableType="org.txm.functions.ca.CA"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.index.Index"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.cooccurrences.Cooccurrence"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.stat.data.LexicalTable"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.referencer.Referencer"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.classification.CAH"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.internal.InternalView"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ <factory
+       adaptableType="org.txm.functions.intertextualdistance.InterTextDistance"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+ 
+ <factory
+       adaptableType="org.txm.functions.wordcloud.WordCloud"
+       class="org.txm.rcpapplication.AdapterFactory">
+    <adapter
+          type="org.eclipse.ui.model.IWorkbenchAdapter">
+    </adapter>
+ </factory>
+   </extension>
+   <extension
+         point="org.eclipse.ui.editors">
+      <editor
+            class="org.txm.rcpapplication.editors.SVGGraphicEditor"
+            default="false"
+            id="org.txm.rcpapplication.editors.SVGGraphicEditor"
+            name="%editor.name"/>
+      <editor
+            class="org.txm.rcpapplication.editors.TableEditor"
+            default="false"
+            icon="icons/functions/Index.png"
+            id="org.txm.rcpapplication.editors.TableEditor"
+            name="%editor.name.0">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.GenericMultiPageEditor"
+            default="false"
+            id="org.txm.rcpapplication.editors.GenericMultiPageEditor"
+            name="%editor.name.1">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.concordances.ConcordancesEditor"
+            default="false"
+            icon="icons/functions/Concordances.png"
+            id="org.txm.rcpapplication.editors.ConcordancesEditor"
+            name="%editor.name.2"/>
+      <editor
+            class="org.txm.rcpapplication.editors.TxtEditor"
+            contributorClass="org.eclipse.ui.editors.text.TextEditorActionContributor"
+            default="false"
+            icon="icons/objects/file.png"
+            id="org.txm.rcpapplication.editors.TxtEditor"
+            name="%editor.name.4">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.TXMBrowser"
+            default="false"
+            icon="icons/objects/edition.png"
+            id="org.txm.rcpapplication.editors.TXMBrowser"
+            name="%editor.name.5">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.objectexplorer.ObjectExplorer"
+            default="false"
+            id="org.txm.rcpapplication.editors.ObjectExplorer"
+            name="%editor.name.6">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.index.IndexEditor"
+            default="false"
+            icon="icons/functions/Index.png"
+            id="org.txm.rcpapplication.editors.index.IndexEditor"
+            name="%editor.name.7">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor"
+            default="false"
+            id="org.txm.rcpapplication.editors.parabrowser.ParaBrowserEditor"
+            name="%editor.name.8">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor"
+            default="false"
+            icon="icons/functions/Cooccurrences.png"
+            id="org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor"
+            name="%editor.name.9">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.ca.___FactorialMapEditor"
+            default="false"
+            icon="icons/functions/CorrespondanceAnalysis.png"
+            id="org.txm.rcpapplication.editors.ca.FactorialMapEditor"
+            name="%editor.name.10">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"
+            default="false"
+            icon="icons/objects/lexicaltable.png"
+            id="org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor"
+            name="%editor.name.11">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor"
+            default="false"
+            icon="icons/functions/IndexP.png"
+            id="org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor"
+            name="%editor.name.12">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.ca.CaEditor"
+            default="false"
+            icon="icons/functions/CorrespondanceAnalysis.png"
+            id="org.txm.rcpapplication.editors.ca.CaEditor"
+            name="%editor.name.13">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.referencer.ReferencerEditor"
+            default="false"
+            icon="icons/functions/Referencer.png"
+            id="org.txm.rcpapplication.editors.referencer.ReferencerEditor"
+            name="%editor.name.14">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.imports.ImportFormEditor"
+            default="false"
+            icon="icons/objects/books.png"
+            id="org.txm.rcpapplication.editors.imports.ImportFormEditor"
+            name="%editor.name.15">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.TestEditor"
+            default="false"
+            id="org.txm.rcpapplication.editors.TestEditor"
+            name="%editor.name.16">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.internal.InternalViewEditor"
+            default="false"
+            icon="icons/objects/folder.png"
+            id="org.txm.rcpapplication.editors.internal.InternalViewEditor"
+            name="%editor.name.17">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.internal.InternalViewEditor"
+            default="false"
+            icon="icons/functions/InternalView.png"
+            id="org.txm.rcpapplication.editors.TableEditor"
+            name="%editor.name.19">
+      </editor>
+      <editor
+            class="org.txm.rcpapplication.editors.TXMWebBrowserEditor"
+            default="false"
+            icon="icons/objects/world.png"
+            id="org.txm.rcpapplication.editors.TXMWebBrowserEditor"
+            name="%editor.name.22">
+      </editor>
+      <editor
+            class="TestEMEditor"
+            id="TestEMEditor"
+            name="%editor.name.23">
+      </editor>
+	<editor
+            class="org.txm.rcp.chartsengine.jfreechart.editors.JFCChartEditorPart"
+            default="false"
+            id="org.txm.rcp.chartsengine.jfreechart.editors.JFCChartEditorPart"
+            name="%editor.name.24">
+      </editor>
+	<editor
+            class="org.txm.rcp.chartsengine.svgbatik.editors.SVGChartEditorPart"
+            default="false"
+            id="org.txm.rcp.chartsengine.svgbatik.editors.SVGChartEditorPart"
+            name="%editor.name.25">
+	</editor>
+ <editor
+       class="org.txm.rcpapplication.editors.cah.CAHChartEditor"
+       default="false"
+       icon="icons/functions/CAH.png"
+       id="org.txm.rcpapplication.editors.cah.CAHChartEditor"
+       name="%editor.name.18">
+ </editor>
+   </extension>
+   <extension
+         point="org.eclipse.core.runtime.preferences">
+      <initializer class="org.txm.rcpapplication.preferences.RPreferenceInitializer"/>
+      <initializer
+            class="org.txm.rcpapplication.preferences.CQPPreferenceInitializer">
+      </initializer>
+      <initializer
+            class="org.txm.rcpapplication.preferences.ConcordancerPreferenceInitializer">
+      </initializer>
+      <initializer
+            class="org.txm.rcpapplication.preferences.ScriptPreferenceInitializer">
+      </initializer>
+   </extension>
+  <extension
+         point="org.eclipse.ui.preferencePages">
+      <page
+            category="org.txm.rcpapplication.preferences.TextometriePreferencePage"
+            class="org.txm.rcpapplication.preferences.UserPreferencePage"
+            id="org.txm.rcpapplication.preferences.UserPreferencePage"
+            name="%page.name">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.TextometriePreferencePage"
+            class="org.txm.rcpapplication.preferences.AdvancePreferencePage"
+            id="org.txm.rcpapplication.preferences.AdvancePreferencePage"
+            name="%page.name.0">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.ConcordancerPreferencePage"
+            id="org.txm.rcpapplication.preferences.ConcordancerPreferencePage"
+            name="%page.name.1"/>
+      <page
+            category="org.txm.rcpapplication.preferences.AdvancePreferencePage"
+            class="org.txm.rcpapplication.preferences.RPreferencePage"
+            id="org.txm.rcpapplication.preferences.RPreferencePage"
+            name="%page.name.3">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.AdvancePreferencePage"
+            class="org.txm.rcpapplication.preferences.CQPPreferencePage"
+            id="org.txm.rcpapplication.preferences.CQPPreferencePage"
+            name="%page.name.4">
+      </page>
+      <page
+            class="org.txm.rcpapplication.preferences.TXMPreferencePage"
+            id="org.txm.rcpapplication.preferences.TextometriePreferencePage"
+            name="%page.name.6">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.NLPPreferencePage"
+            class="org.txm.rcpapplication.preferences.TreeTaggerPreferencePage"
+            id="org.txm.rcpapplication.preferences.TreeTaggerPreferencePage"
+            name="%page.name.7">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.AdvancePreferencePage"
+            class="org.txm.rcpapplication.preferences.NLPPreferencePage"
+            id="org.txm.rcpapplication.preferences.NLPPreferencePage"
+            name="%page.name.8">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.ScriptPreferencePage"
+            id="org.txm.rcpapplication.preferences.ScriptPreferencePage"
+            name="%page.name.18">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.DiagnosticPreferencePage"
+            id="org.txm.rcpapplication.preferences.DiagnosticPreferencePage"
+            name="%page.name.9">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.CAPreferencePage"
+            id="org.txm.rcpapplication.preferences.CAPreferencePage"
+            name="%page.name.10">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.CoocPreferencePage"
+            id="org.txm.rcpapplication.preferences.CoocPreferencePage"
+            name="%page.name.11">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.ExportPreferencePage"
+            id="org.txm.rcpapplication.preferences.ExportPreferencePage"
+            name="%page.name.12">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.LexicalTablePreferencePage"
+            id="org.txm.rcpapplication.preferences.LexicalTablePreferencePage"
+            name="%page.name.13">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.ReferencerPreferencePage"
+            id="org.txm.rcpapplication.preferences.ReferencerPreferencePage"
+            name="%page.name.16">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.CAHPreferencePage"
+            id="org.txm.rcpapplication.preferences.CAHPreferencePage"
+            name="%page.name.17">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.FileExplorerPreferencePage"
+            id="org.txm.rcpapplication.preferences.FileExplorerPreferencePage"
+            name="%page.name.2">
+      </page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.ImportPreferencePage"
+            id="org.txm.rcpapplication.preferences.ImportPreferencePage"
+            name="%page.name.19">
+	</page>
+      <page
+            category="org.txm.rcpapplication.preferences.UserPreferencePage"
+            class="org.txm.rcpapplication.preferences.AnnotationPreferencePage"
+            id="org.txm.rcpapplication.preferences.AnnotationPreferencePage"
+            name="%page.name.23">
+      </page>
+   </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+      <menuContribution
+            locationURI="menu:org.eclipse.ui.main.menu">
+         <menu
+               id="menu.file"
+               label="%menu.label">
+            <separator
+                  name="org.txm.rcpapplication.separator2"
+                  visible="true">
+            </separator>
+            <menu
+                  id="menu.file.import"
+                  label="%menu.label.0">
+               <command
+                     commandId="org.txm.rcpapplication.commands.ImportSelectedText"
+                     label="%command.label.60"
+                     style="push"
+                     tooltip="%command.tooltip.27">
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.78"
+                     style="push"
+                     tooltip="%command.tooltip.45">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="quickLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.87"
+                     style="push"
+                     tooltip="%command.tooltip.66">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="docLoader.groovy">
+                  </parameter>
+               </command>
+               <separator
+                     name="org.txm.rcp.separator1"
+                     visible="true">
+               </separator>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.1"
+                     style="push"
+                     tooltip="%command.tooltip.44">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="xmlLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.92"
+                     style="push"
+                     tooltip="%command.tooltip.88">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="xtzLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.5"
+                     style="push"
+                     tooltip="%command.tooltip.8">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="bfmLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.9"
+                     style="push"
+                     tooltip="%command.tooltip.9">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="frantextLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.12"
+                     style="push"
+                     tooltip="%command.tooltip.11">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="xmltxmLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.3"
+                     style="push"
+                     tooltip="%command.tooltip.5">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="transcriberLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.2"
+                     style="push"
+                     tooltip="%command.tooltip.1">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="factivaLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.81"
+                     style="push"
+                     tooltip="%command.tooltip.24">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="tmxLoader.groovy">
+                  </parameter>
+               </command>
+               <separator
+                     name="org.txm.rcp.separator2"
+                     visible="true">
+               </separator>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.64"
+                     style="push"
+                     tooltip="%command.tooltip.22">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="factivamailLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.0"
+                     style="push"
+                     tooltip="%command.tooltip.28">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="discoursLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.62"
+                     style="push"
+                     tooltip="%command.tooltip.30">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="alcesteLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.61"
+                     style="push"
+                     tooltip="%command.tooltip.29">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="hyperbaseLoader.groovy">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.ExecuteScriptImport"
+                     label="%command.label.82"
+                     style="push"
+                     tooltip="%command.tooltip.25">
+                  <parameter
+                        name="org.txm.rcpapplication.commands.commandParameter3"
+                        value="wtcLoader.groovy">
+                  </parameter>
+               </command>
+            </menu>
+            <command
+                  commandId="org.txm.rcpapplication.commands.workspace.AddBase"
+                  label="%command.label.50"
+                  style="push">
+            </command>
+            <menu
+                  icon="icons/functions/export.png"
+                  id="menu.file.export"
+                  label="%menu.label.5">
+               <command
+                     commandId="org.txm.rcpapplication.commands.base.ExportCorpus"
+                     icon="icons/functions/Compress.png"
+                     label="%command.name.52"
+                     style="push"
+                     tooltip="%command.tooltip.67">
+                  <visibleWhen
+                        checkEnabled="false">
+                     <reference
+                           definitionId="OneMainCorpusSelected">
+                     </reference>
+                  </visibleWhen>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.annotation.ExportStandoff"
+                     id="menu.file.export.exporttei"
+                     label="%command.label.193"
+                     style="push">
+                  <visibleWhen
+                        checkEnabled="false">
+                     <reference
+                           definitionId="OneMainCorpusSelected">
+                     </reference>
+                  </visibleWhen>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.function.ExportResult"
+                     icon="icons/functions/export_data.png"
+                     label="%command.label.51"
+                     style="push">
+                  <visibleWhen
+                        checkEnabled="false">
+                     <or>
+                        <reference
+                              definitionId="OneLexiconSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneConcordanceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneSpecificitiesResultSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneIndexSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCooccurrenceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneReferencerSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneProgressionSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneLexicalTableSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCASelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCAHSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneTXMResultSelected">
+                        </reference>
+                     </or>
+                  </visibleWhen>
+               </command>
+               <command
+                     commandId="org.txm.rcp.chartsengine.base.commands.ExportChart"
+                     icon="icons/functions/export_chart.png"
+                     label="%command.label.42"
+                     style="push">
+                  <visibleWhen
+                        checkEnabled="false">
+                     <or>
+                        <reference
+                              definitionId="OneCASelected">
+                        </reference>
+                     </or>
+                  </visibleWhen>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.function.ExportSVG"
+                     icon="icons/functions/exportSVG.png"
+                     label="%command.label.101"
+                     style="push"
+                     tooltip="%command.tooltip.54">
+                  <visibleWhen
+                        checkEnabled="false">
+                     <or>
+                        <reference
+                              definitionId="SVGEditorActive">
+                        </reference>
+                        <reference
+                              definitionId="OneCAHSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneProgressionSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneWordCloudSelected">
+                        </reference>
+                     </or>
+                  </visibleWhen>
+               </command>
+            </menu>
+            <separator
+                  name="fileSeparator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.CreateFile"
+                  icon="icons/functions/page_white_add.png"
+                  label="%command.label.83">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.EditFile"
+                  icon="icons/functions/open.png"
+                  id="file.open"
+                  label="%command.label.45"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.save"
+                  icon="icons/functions/save.png"
+                  label="%command.label.86">
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.saveAll"
+                  icon="icons/functions/saveall.png"
+                  label="%command.label.88">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.editor.SaveAs"
+                  icon="icons/functions/saveas.png"
+                  label="%command.label.29">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.close"
+                  label="%command.label.90">
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.closeAll"
+                  label="%command.label.93">
+            </command>
+            <separator
+                  name="org.txm.rcp.separator2"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenBrowser"
+                  label="%command.label"
+                  style="push"
+                  tooltip="%command.tooltip">
+            </command>
+            <separator
+                  name="fileSeparator2"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.changelanguage"
+                  label="%command.label.75"
+                  style="push"
+                  tooltip="%command.tooltip.42">
+            </command>
+            <separator
+                  name="org.txm.rcp.separator3"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.p2.plugins.TXMUpdateHandler"
+                  label="%command.label.181"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="WasNotFirstTXMRun">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.p2.plugins.InstallPluginHandler"
+                  label="%command.label.182"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="WasNotFirstTXMRun">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.equinox.p2.ui.sdk.install"
+                  label="%command.label.34"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="WasNotFirstTXMRun">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.CheckRPackages"
+                  label="%command.label.38"
+                  style="push">
+            </command>
+            <separator
+                  name="org.txm.rcpapplication.separator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.RestartTXM"
+                  label="%command.label.59"
+                  style="push"
+                  tooltip="%command.tooltip.26">
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.exit"
+                  label="%command.label.6"
+                  style="push"
+                  tooltip="%command.tooltip.2">
+            </command>
+         </menu>
+         <menu
+               id="menu.edit"
+               label="%menu.label.3">
+            <command
+                  commandId="org.eclipse.ui.edit.findReplace"
+                  label="%command.label.15">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findNext"
+                  label="%command.label.98"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findPrevious"
+                  label="%command.label.100"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findIncremental"
+                  label="%command.label.109"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findIncrementalReverse"
+                  label="%command.label.110"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.undo"
+                  label="%command.label.16">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.redo"
+                  label="%command.label.17">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator2"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.cut"
+                  label="%command.label.18">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.copy"
+                  label="%command.label.19">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.paste"
+                  label="%command.label.20">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.delete"
+                  label="%command.label.27">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.selectAll"
+                  label="%command.label.28">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator3"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.text.goto.line"
+                  icon="icons/functions/goto.png"
+                  label="%command.label.113"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.text.open.hyperlink"
+                  icon="icons/functions/world.png"
+                  label="%command.label.133"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.editor.SetEncoding"
+                  icon="icons/functions/encoding.png"
+                  label="%command.label.30">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator3"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.editors.lineNumberToggle"
+                  icon="icons/functions/lines_number.png"
+                  label="%command.label.140"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.text.toggleShowWhitespaceCharacters"
+                  icon="icons/functions/paragraph.png"
+                  label="%command.label.144"
+                  style="push"
+                  tooltip="%command.tooltip.31">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.revert"
+                  icon="icons/functions/page_refresh.png"
+                  label="%command.label.145"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+         </menu>
+         <menu
+               id="menu.corpus"
+               label="%menu.label.1"
+               sibling_order="&lt;command&#x0A;                  commandId=&quot;org.txm.rcpapplication.commands.function.ComputeConcordance&quot;&#x0A;                  icon=&quot;icons/functions/Concordances.png&quot;&#x0A;                  label=&quot;%command.label.11&quot;&#x0A;                  style=&quot;push&quot;&#x0A;                  tooltip=&quot;%command.tooltip.7&quot;&gt;&#x0A;               &lt;visibleWhen&#x0A;                     checkEnabled=&quot;false&quot;&gt;&#x0A;                  &lt;reference&#x0A;                        definitionId=&quot;OneCorpusSelected&quot;&gt;&#x0A;                  &lt;/reference&gt;&#x0A;               &lt;/visibleWhen&gt;&#x0A;            &lt;/command&gt;">
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.Diagnostique"
+                  icon="icons/functions/diagnostique.png"
+                  id="menu.corpus.description"
+                  label="%command.label.48"
+                  style="push"
+                  tooltip="%command.tooltip.60">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeInternalView"
+                  icon="icons/functions/InternalView.png"
+                  label="%command.label.176"
+                  style="push"
+                  tooltip="%command.tooltip.40">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+                  icon="icons/functions/Delete.png"
+                  label="%command.label.65"
+                  style="push"
+                  tooltip="%command.tooltip.33">
+               <visibleWhen
+                     checkEnabled="false">
+                 
+                     <or>
+                        <reference
+                              definitionId="OneBaseSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCASelected">
+                        </reference>
+                        <reference
+                              definitionId="OneConcordanceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCorpusSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneLexicalTableSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneLexiconSelected">
+                        </reference>
+                        <reference
+                              definitionId="OnePartitionSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneSpecificitiesResultSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneTxmObjectSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneIndexSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCooccurrenceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneReferencerSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneProgressionSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCAHSelected">
+                        </reference>
+                     </or>
+                 
+               </visibleWhen>
+            </command>
+            <separator
+                  name="menu.corpus.build"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.CreateSubCorpus"
+                  icon="icons/functions/SubCorpus.png"
+                  label="%command.label.7"
+                  style="push"
+                  tooltip="%command.tooltip.3">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.CreatePartition"
+                  icon="icons/functions/Partition.png"
+                  label="%command.label.8"
+                  style="push"
+                  tooltip="%command.tooltip.4">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeLexicalTable"
+                  icon="icons/objects/lexicaltable.png"
+                  label="%command.label.89"
+                  style="push"
+                  tooltip="%command.tooltip.51">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableAbleSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.annotation.SaveAnnotations"
+                  icon="icons/functions/save.png"
+                  label="%command.label.111"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="NeedToSaveAnnotations">
+                  </reference>
+               </visibleWhen>
+            </command>
+         </menu>
+         <menu
+               id="menu.tools"
+               label="%menu.label.6">
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeFrequencyList"
+                  icon="icons/functions/IndexP.png"
+                  label="%command.label.79"
+                  style="push"
+                  tooltip="%command.tooltip.61">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeIndex"
+                  icon="icons/functions/Index.png"
+                  label="%command.label.66"
+                  style="push"
+                  tooltip="%command.tooltip.62">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeConcordance"
+                  icon="icons/functions/Concordances.png"
+                  label="%command.label.11"
+                  style="push"
+                  tooltip="%command.tooltip.7">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCooccurrences"
+                  icon="icons/functions/Cooccurrences.png"
+                  label="%command.label.91"
+                  style="push"
+                  tooltip="%command.tooltip.53">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeReferencer"
+                  icon="icons/functions/Referencer.png"
+                  label="%command.label.108"
+                  style="push"
+                  tooltip="%command.tooltip.62">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="menu.tools.stats"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCorrespondanceAnalysis"
+                  icon="icons/functions/CorrespondanceAnalysis.png"
+                  label="%command.label.80"
+                  style="push"
+                  tooltip="%command.tooltip.46">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneICAComputableSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCAH"
+                  icon="icons/functions/CAH.png"
+                  label="%command.label.116"
+                  style="push"
+                  tooltip="%command.tooltip.69">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="menu.tools.misc"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.SendToR"
+                  icon="icons/functions/SendToR.png"
+                  label="%command.label.117"
+                  style="push"
+                  tooltip="%command.tooltip.70">
+               <visibleWhen
+                     checkEnabled="false">
+
+                     <or>
+                        <reference
+                              definitionId="OneConcordanceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneLexiconSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneIndexSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCooccurrenceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneReferencerSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCorpusSelected">
+                        </reference>
+                     </or>
+
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.window.preferences"
+                  icon="icons/functions/prefs.png"
+                  label="%command.label.4"
+                  style="push"
+                  tooltip="%command.tooltip.0">
+            </command>
+         </menu>
+         <menu
+               id="menu.display"
+               label="%menu.label.7"
+               tooltip="%menu.tooltip.0">
+            <menu
+                  label="%menu.label.9">
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.134"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.CorporaView">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.135"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.fileexplorer.Explorer">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.177"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.fileexplorer.MacroExplorer">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.136"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.QueriesView">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.43"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.eclipse.ui.console.ConsoleView">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.137"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.RConsole">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.138"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.views.showView.viewId"
+                        value="org.txm.rcpapplication.views.RVariablesView">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.txm.rcpapplication.commands.krview.OpenKRView"
+                     label="%command.label.150"
+                     style="push">
+               </command>
+               <command
+                     commandId="org.eclipse.ui.views.showView"
+                     label="%command.label.139"
+                     style="push">
+               </command>
+            </menu>
+            <menu
+                  label="%menu.label.8">
+               <command
+                     commandId="org.eclipse.ui.perspectives.showPerspective"
+                     label="%command.label.131"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.perspectives.showPerspective.perspectiveId"
+                        value="org.txm.rcpapplication.perspective.TXMPerspective">
+                  </parameter>
+               </command>
+               <command
+                     commandId="org.eclipse.ui.perspectives.showPerspective"
+                     label="%command.label.132"
+                     style="push">
+                  <parameter
+                        name="org.eclipse.ui.perspectives.showPerspective.perspectiveId"
+                        value="org.txm.rcpapplication.perspective.RPerspective">
+                  </parameter>
+               </command>
+            </menu>
+            <command
+                  commandId="org.txm.rcpapplication.commands.CleanPerspective"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.eclipse.ui.window.newWindow"
+                  label="%command.label.157">
+            </command>
+         </menu>
+         <menu
+               id="menu.help"
+               label="%menu.label.2"
+               tooltip="%menu.tooltip">
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenWelcomePage"
+                  label="%command.label.173"
+                  style="push">
+            </command>
+            <separator
+                  name="org.txm.rcp.separator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.window.showKeyAssist"
+                  label="%command.label.52"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.R.ShowSvgHelp"
+                  label="%command.label.141"
+                  style="push"
+                  tooltip="%command.tooltip.83">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.68"
+                  style="push"
+                  tooltip="%command.tooltip.23">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="refman">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenManual"
+                  label="%command.label.63"
+                  style="push"
+                  tooltip="%command.tooltip.64">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.33"
+                  style="push"
+                  tooltip="%command.tooltip.13">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="macros">
+               </parameter>
+            </command>
+            <menu
+                  id="menu.help.plugins"
+                  label="%menu.label.4">
+            </menu>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.70"
+                  style="push">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="sf_docs">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.178"
+                  style="push"
+                  tooltip="%command.tooltip.41">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="faq">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.35"
+                  style="push"
+                  tooltip="%command.tooltip.43">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="txm-users wiki">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.55"
+                  style="push"
+                  tooltip="%command.tooltip">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="mailinglist">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.76"
+                  style="push"
+                  tooltip="%command.tooltip.65">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="http://webchat.freenode.net/?channels=txm">
+               </parameter>
+            </command>
+            <separator
+                  name="helpSeparator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.56"
+                  style="push"
+                  tooltip="%command.tooltip">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="sf">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.69"
+                  style="push">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="textometrie">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.72"
+                  style="push">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="textometrie_docs">
+               </parameter>
+            </command>
+            <separator
+                  name="helpSeparator3"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.67"
+                  style="push"
+                  tooltip="%command.tooltip">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="treetagger">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.53"
+                  style="push"
+                  tooltip="%command.tooltip">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="bug">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.54"
+                  style="push"
+                  tooltip="%command.tooltip">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="feature">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+                  label="%command.label.179"
+                  style="push"
+                  tooltip="%command.tooltip.47">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter3"
+                     value="contrib">
+               </parameter>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator4"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.help.aboutAction"
+                  label="%command.label.14"
+                  style="push"
+                  tooltip="%command.tooltip.10">
+            </command>
+         </menu>
+         <menu
+               id="menu.recettes"
+               label="%menu.label.12"
+               tooltip="%menu.tooltip.1">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="ExpertEnabled">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </menu>
+      </menuContribution>
+      <menuContribution
+            allPopups="true"
+            locationURI="toolbar:org.eclipse.ui.main.toolbar">
+         <toolbar
+               id="org.txm.rcpapplication.toolbarcorpus">
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ExportResult"
+                  icon="icons/functions/export_data.png"
+                  label="%command.label.51"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneLexiconSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneSpecificitiesResultSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneReferencerSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneProgressionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCooccurrenceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCAHSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneTXMResultSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcp.chartsengine.base.commands.ExportChart"
+                  icon="icons/functions/export_chart.png"
+                  label="%command.label.42"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ExportSVG"
+                  icon="icons/functions/exportSVG.png"
+                  label="%command.label.101"
+                  style="push"
+                  tooltip="%command.tooltip.54">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="SVGEditorActive">
+                     </reference>
+                     <reference
+                           definitionId="OneCAHSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneProgressionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneWordCloudSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcpapplication.separator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.Diagnostique"
+                  icon="icons/functions/diagnostique.png"
+                  id="org.txm.rcpapplication.toolbarcorpus.description"
+                  label="%command.label.48"
+                  style="push"
+                  tooltip="%command.tooltip.60">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeInternalView"
+                  icon="icons/functions/InternalView.png"
+                  label="%command.label.183"
+                  style="push"
+                  tooltip="%command.tooltip.52">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+                  icon="icons/functions/Delete.png"
+                  label="%command.label.65"
+                  style="push"
+                  tooltip="%command.tooltip.33">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneBaseSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexiconSelected">
+                     </reference>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneTxmObjectSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneTXMResultSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcpapplication.separator4"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.CreateSubCorpus"
+                  icon="icons/functions/SubCorpus.png"
+                  label="%command.label.7"
+                  style="push"
+                  tooltip="%command.tooltip.3">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.CreatePartition"
+                  icon="icons/functions/Partition.png"
+                  label="%command.label.8"
+                  style="push"
+                  tooltip="%command.tooltip.4">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeLexicalTable"
+                  icon="icons/objects/lexicaltable.png"
+                  label="%command.label.94"
+                  style="push"
+                  tooltip="%command.tooltip.55">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableAbleSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.annotation.SaveAnnotations"
+                  icon="icons/functions/save.png"
+                  label="%command.label.151"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="NeedToSaveAnnotations">
+                  </reference>
+               </visibleWhen>
+            </command>
+         </toolbar>
+         <separator
+               name="org.txm.rcp.toolbar.separator1"
+               visible="true">
+         </separator>
+         <toolbar
+               id="org.txm.rcpapplication.toolbartools">
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeFrequencyList"
+                  icon="icons/functions/IndexP.png"
+                  label="%command.label.79"
+                  style="push"
+                  tooltip="%command.tooltip.61">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeIndex"
+                  icon="icons/functions/Index.png"
+                  label="%command.label.66"
+                  style="push"
+                  tooltip="%command.tooltip.62">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeConcordance"
+                  icon="icons/functions/Concordances.png"
+                  label="%command.label.11"
+                  style="push"
+                  tooltip="%command.tooltip.7">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCooccurrences"
+                  icon="icons/functions/Cooccurrences.png"
+                  label="%command.label.96"
+                  style="push"
+                  tooltip="%command.tooltip.57">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeReferencer"
+                  icon="icons/functions/Referencer.png"
+                  label="%command.label.108"
+                  style="push"
+                  tooltip="%command.tooltip.63">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator4"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCorrespondanceAnalysis"
+                  icon="icons/functions/CorrespondanceAnalysis.png"
+                  label="%command.label.80"
+                  style="push"
+                  tooltip="%command.tooltip.46">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneICAComputableSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ComputeCAH"
+                  icon="icons/functions/CAH.png"
+                  label="%command.label.120"
+                  style="push"
+                  tooltip="%command.tooltip.73">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OnePartitionSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcpapplication.separator1">
+            </separator>
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.SendToR"
+                  icon="icons/functions/SendToR.png"
+                  label="%command.label.121"
+                  style="push"
+                  tooltip="%command.tooltip.74">
+               <visibleWhen
+                     checkEnabled="false">
+
+                     <or>
+                        <reference
+                              definitionId="OneConcordanceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneLexiconSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneIndexSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCooccurrenceSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneReferencerSelected">
+                        </reference>
+                        <reference
+                              definitionId="OneCorpusSelected">
+                        </reference>
+                     </or>
+
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.window.preferences"
+                  icon="icons/functions/prefs.png"
+                  label="%command.label.4"
+                  style="push"
+                  tooltip="%command.tooltip.0">
+            </command>
+         </toolbar>
+         <separator
+               name="org.txm.rcp.toolbar.separator2"
+               visible="true">
+         </separator>
+         <toolbar
+               id="org.txm.rcpapplication.toolbartext">
+            <command
+                  commandId="org.txm.rcpapplication.commands.CreateFile"
+                  icon="icons/functions/page_white_add.png"
+                  label="%command.label.158"
+                  tooltip="%command.tooltip.34">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.EditFile"
+                  icon="icons/functions/open.png"
+                  label="%command.label.45"
+                  style="push">
+               <parameter
+                     name="org.txm.rcpapplication.commands.commandParameter2"
+                     value=" ">
+               </parameter>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.save"
+                  icon="icons/functions/save.png"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.editor.SaveAs"
+                  icon="icons/functions/saveas.png">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator3"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.cut"
+                  label="%command.label.18">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.copy"
+                  label="%command.label.19">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.paste"
+                  label="%command.label.20">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.delete"
+                  label="%command.label.27">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.undo"
+                  label="%command.label.16">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.redo"
+                  label="%command.label.17">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.selectAll"
+                  icon="icons/functions/page_allgreen.png"
+                  label="%command.label.165">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator1"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.findReplace"
+                  icon="icons/functions/find.png"
+                  label="%command.label.159">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findPrevious"
+                  icon="icons/functions/find_previous.png"
+                  label="%command.label.160"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findNext"
+                  icon="icons/functions/find_next.png"
+                  label="%command.label.161"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findIncremental"
+                  icon="icons/functions/find_incremental.png"
+                  label="%command.label.162"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.findIncrementalReverse"
+                  icon="icons/functions/find_incremental_reverse.png"
+                  label="%command.label.163"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <separator
+                  name="org.txm.rcp.separator2"
+                  visible="true">
+            </separator>
+            <command
+                  commandId="org.eclipse.ui.edit.text.goto.line"
+                  icon="icons/functions/goto.png"
+                  label="%command.label.166"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.editors.lineNumberToggle"
+                  icon="icons/functions/lines_number.png"
+                  label="%command.label.168"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.text.toggleShowWhitespaceCharacters"
+                  icon="icons/functions/paragraph.png"
+                  label="%command.label.169"
+                  style="push"
+                  tooltip="%command.tooltip.35">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.edit.text.open.hyperlink"
+                  icon="icons/functions/world.png"
+                  label="%command.label.167"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.editor.SetEncoding"
+                  icon="icons/functions/encoding.png"
+                  label="%command.label.30">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.eclipse.ui.file.revert"
+                  icon="icons/functions/page_refresh.png"
+                  label="%command.label.164"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+         </toolbar>
+         <separator
+               name="org.txm.rcp.toolbar.separator3"
+               visible="true">
+         </separator>
+         <toolbar
+               id="org.txm.rcpapplication.toolbarscript">
+            <command
+                  commandId="org.txm.rcpapplication.commands.R.OpenEmptyEditor"
+                  label="%command.label.142"
+                  style="push"
+                  tooltip="%command.tooltip.84">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="RPerspectiveSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteScript"
+                  icon="icons/functions/run.png"
+                  label="%command.label.170"
+                  style="push"
+                  tooltip="%command.tooltip.14">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteText"
+                  icon="icons/functions/page_select_go.png"
+                  label="%command.label.171"
+                  style="push"
+                  tooltip="%command.tooltip.36">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteScriptGroovyFromFile"
+                  icon="icons/functions/page_go.png"
+                  label="%command.label.172"
+                  style="push"
+                  tooltip="%command.tooltip.37">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="TextEditorActive">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteLastGroovyScript"
+                  icon="icons/functions/rerun.png"
+                  label="%command.label.40"
+                  style="push"
+                  tooltip="%command.tooltip.50">
+            </command>
+         </toolbar>
+         <separator
+               name="org.txm.rcp.toolbar.separator4"
+               visible="true">
+         </separator>
+          <toolbar
+               id="org.txm.rcpapplication.toolbarfile">
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.ExportCorpus"
+                  icon="icons/functions/Compress.png"
+                  label="%command.name.52"
+                  style="push"
+                  tooltip="%command.tooltip.71">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneMainCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+         </toolbar>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.fileexplorer.Explorer">
+         <command
+               commandId="org.txm.rcpapplication.commands.CreateFile"
+               label="%command.label.122"
+               style="push"
+               tooltip="%command.tooltip.75">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CreateFolder"
+               label="%command.label.123"
+               style="push"
+               tooltip="%command.tooltip.76">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.EditSelectedFile"
+               label="%command.label.186"
+               style="push"
+               tooltip="%command.tooltip.17">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.OpenBrowser"
+               label="%command.label.22"
+               style="push"
+               tooltip="%command.tooltip.18">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.ExecuteScript"
+               label="%command.label.23"
+               style="push"
+               tooltip="%command.tooltip.19">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.ShowSelected"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.RenameFile"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.DeleteFile"
+               style="push"
+               tooltip="%command.tooltip.15">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CopyFile"
+               style="push"
+               tooltip="%command.tooltip.16">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CutFile"
+               style="push"
+               tooltip="%command.tooltip.20">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.PasteFile"
+               style="push"
+               tooltip="%command.tooltip.21">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:#TextEditorContext">
+         <menu
+               label="%menu.label.10">
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteGroovyText"
+                  label="%command.label.25"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteScriptGroovy"
+                  label="%command.label.26"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteScriptGroovyFromFile"
+                  label="%command.label.156"
+                  style="push">
+            </command>
+         </menu>
+         <menu
+               label="%menu.label.11">
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteRText"
+                  label="%command.label.112"
+                  style="push">
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.ExecuteRScript"
+                  label="%command.label.26"
+                  style="push">
+            </command>
+         </menu>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.CorporaView">
+         <menu
+               icon="icons/functions/export.png"
+               id="corporaview.menu.file.export"
+               label="%menu.label.5">
+            <command
+                  commandId="org.txm.rcpapplication.commands.base.ExportCorpus"
+                  icon="icons/functions/Compress.png"
+                  label="%command.name.52"
+                  style="push"
+                  tooltip="%command.tooltip.67">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneMainCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.annotation.ExportStandoff"
+                  label="%command.label.193"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <reference
+                        definitionId="OneMainCorpusSelected">
+                  </reference>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ExportResult"
+                  icon="icons/functions/export_data.png"
+                  label="%command.label.51"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneLexiconSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneSpecificitiesResultSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCooccurrenceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneReferencerSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneProgressionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexicalTableSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCAHSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneTXMResultSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcp.chartsengine.base.commands.ExportChart"
+                  icon="icons/functions/export_chart.png"
+                  label="%command.label.42"
+                  style="push">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+            <command
+                  commandId="org.txm.rcpapplication.commands.function.ExportSVG"
+                  icon="icons/functions/exportSVG.png"
+                  label="%command.label.101"
+                  style="push"
+                  tooltip="%command.tooltip.54">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="SVGEditorActive">
+                     </reference>
+                     <reference
+                           definitionId="OneCAHSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneProgressionSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneWordCloudSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </command>
+         </menu>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.Diagnostique"
+               icon="icons/functions/diagnostique.png"
+               id="corporaview.description"
+               label="%command.label.49"
+               style="push"
+               tooltip="%command.tooltip.60">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeInternalView"
+               icon="icons/functions/InternalView.png"
+               label="%command.label.185"
+               style="push"
+               tooltip="%command.tooltip.59">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+               icon="icons/functions/Delete.png"
+               label="%command.label.65"
+               style="push"
+               tooltip="%command.tooltip.33">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneBaseSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneConcordanceSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexicalTableSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexiconSelected">
+                  </reference>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneTxmObjectSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneTXMResultSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <separator
+               name="org.txm.rcpapplication.separator52"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.CreateSubCorpus"
+               icon="icons/functions/SubCorpus.png"
+               label="%command.label.7"
+               style="push"
+               tooltip="%command.tooltip.3">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.CreatePartition"
+               icon="icons/functions/Partition.png"
+               label="%command.label.8"
+               style="push"
+               tooltip="%command.tooltip.4">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeLexicalTable"
+               icon="icons/objects/lexicaltable.png"
+               label="%command.label.97"
+               style="push"
+               tooltip="%command.tooltip.58">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneIndexSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexicalTableAbleSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+        
+         <separator
+               name="org.txm.rcpapplication.separator53"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeFrequencyList"
+               icon="icons/functions/IndexP.png"
+               label="%command.label.84"
+               style="push"
+               tooltip="%command.tooltip.61">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeIndex"
+               icon="icons/functions/Index.png"
+               label="%command.label.66"
+               style="push"
+               tooltip="%command.tooltip.62">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeConcordance"
+               icon="icons/functions/Concordances.png"
+               label="%command.label.11"
+               style="push"
+               tooltip="%command.tooltip.7">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeCooccurrences"
+               icon="icons/functions/Cooccurrences.png"
+               label="%command.label.96"
+               style="push"
+               tooltip="%command.tooltip.57">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneCorpusSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneConcordanceSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeReferencer"
+               icon="icons/functions/Referencer.png"
+               label="%command.label.108"
+               style="push"
+               tooltip="%command.tooltip.62">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneCorpusSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <separator
+               name="org.txm.rcpapplication.separator54"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeCorrespondanceAnalysis"
+               icon="icons/functions/CorrespondanceAnalysis.png"
+               label="%command.label.85"
+               style="push"
+               tooltip="%command.tooltip.49">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexicalTableSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneICAComputableSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeCAH"
+               icon="icons/functions/CAH.png"
+               label="%command.label.126"
+               style="push"
+               tooltip="%command.tooltip.79">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneCASelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexicalTableSelected">
+                  </reference>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <separator
+               name="org.txm.rcpapplication.separator55"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.SendToR"
+               icon="icons/functions/SendToR.png"
+               label="%command.label.127"
+               style="push"
+               tooltip="%command.tooltip.80">
+            <visibleWhen
+                  checkEnabled="false">
+
+                  <or>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexiconSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCooccurrenceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneReferencerSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCorpusSelected">
+                     </reference>
+                  </or>
+
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.annotation.SaveAnnotations"
+               icon="icons/functions/save.png"
+               label="%command.label.154"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="NeedToSaveAnnotations">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.BasesView">
+         <command
+               commandId="HIDEorg.txm.rcp2.commands.workspace.AddProject"
+               label="%command.label.36"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneProjectSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.workspace.AddBase"
+               label="%command.label.37"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneProjectSelected">
+               </reference>
+            </visibleWhen>
+         </command>       
+         <separator
+               name="org.txm.rcpapplication.separator1">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+               icon="icons/functions/Delete.png"
+               label="%command.label.65"
+               style="push"
+               tooltip="%command.tooltip.33">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OnePartitionSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneSubCorpusSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneBaseSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneIndexSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneLexiconSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneConcordanceSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneCASelected">
+                  </reference>
+                  <reference
+                        definitionId="OneSpecificitiesResultSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneMainCorpusSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.OpenBiblio"
+               icon="icons/functions/Biblio.png"
+               label="%command.label.148"
+               style="push"
+               tooltip="%command.tooltip.91">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneBaseSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneTextSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.index.IndexEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.IndexToConcordance"
+               label="%command.label.73"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.IndexToCooccurrence"
+               label="%command.label.149"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.IndexToProgression"
+               label="%command.label.99"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.TableEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.TextToConcordance"
+               label="%command.label.74"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.SVGGraphicEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ExportSVG"
+               label="%command.label.101"
+               style="push"
+               tooltip="%command.tooltip.60">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="SVGEditorActive">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.cooccurrences.CooccurrencesEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.CooccurrencesToConcordances"
+               label="%command.label.102"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.dictionnary.DictionnaryEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.IndexToConcordance"
+               label="%command.label.73"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.LexiconToIndex"
+               label="%command.label.128"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.IndexToProgression"
+               label="%command.label.103"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.lexicaltable.LexicalTableEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.DeleteLines"
+               label="%command.label.104"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.MergeLines"
+               label="%command.label.105"
+               style="push">
+         </command>
+         <separator
+               name="org.txm.rcp.LT.separator1"
+               visible="true">
+         </separator>
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.ExportLexicalTable"
+               label="%command.label.106"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.ImportTable"
+               label="%command.label.107"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.referencer.ReferencerEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.ReferencerToConc"
+               label="%command.label.73"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.QueriesView">
+         <command
+               commandId="org.txm.rcpapplication.commands.queryview.Copy"
+               label="%command.label.129"
+               style="push"
+               tooltip="%command.tooltip.81">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneQueryLogSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.queryview.Paste"
+               label="%command.label.130"
+               style="push"
+               tooltip="%command.tooltip.82">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneBaseSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+               icon="icons/functions/Delete.png"
+               label="%command.label.65"
+               style="push"
+               tooltip="%command.tooltip.33">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneQueryLogSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.RVariablesView">
+         <command
+               commandId="org.txm.rcpapplication.commands.R.CopySelection"
+               label="%command.label.129"
+               style="push"
+               tooltip="%command.label.129">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.internal.InternalViewEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.ToConcordance"
+               label="%command.label.73"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.ToIndex"
+               label="%command.label.77"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.link.ToProgression"
+               label="%command.label.99"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.fileexplorer.MacroExplorer">
+         <command
+               commandId="org.txm.rcpapplication.commands.ExecuteMacro"
+               label="%command.label.23"
+               style="push"
+               tooltip="%command.tooltip.19">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.EditSelectedFile"
+               label="%command.label.186"
+               style="push"
+               tooltip="%command.tooltip.86">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CreateMacro"
+               label="%command.label.187"
+               style="push"
+               tooltip="%command.tooltip.92">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CreateFolder"
+               label="%command.label.123"
+               style="push"
+               tooltip="%command.tooltip.76">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.ShowSelected"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.RenameFile"
+               style="push">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.DeleteFile"
+               style="push"
+               tooltip="%command.tooltip.15">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CopyFile"
+               style="push"
+               tooltip="%command.tooltip.16">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.CutFile"
+               style="push"
+               tooltip="%command.tooltip.20">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.PasteFile"
+               style="push"
+               tooltip="%command.tooltip.21">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneFileSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.TXMBrowser">
+         <command
+               commandId="org.txm.rcpapplication.commands.link.TextToConcordance"
+               label="%command.label.73"
+               style="push">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.Copy"
+               label="%command.label.19">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.views.knowledgerepositories.KRView">
+         <command
+               commandId="org.txm.rcpapplication.commands.krview.Copy"
+               label="%command.label.188"
+               style="push"
+               tooltip="%command.tooltip.89">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.krview.Reload"
+               label="%command.label.189"
+               style="push"
+               tooltip="%command.tooltip.90">
+            <visibleWhen
+                  checkEnabled="false">
+               <reference
+                     definitionId="OneKRSelected">
+               </reference>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.krview.Informations"
+               label="%command.label.190"
+               style="push"
+               tooltip="%command.tooltip.93">
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.krview.Add"
+               label="%command.label.191"
+               style="push"
+               tooltip="%command.tooltip.94">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneLocalKRSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneAnnotationTypeSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+         <command
+               commandId="org.txm.rcpapplication.commands.krview.Delete"
+               label="%command.label.192"
+               style="push"
+               tooltip="%command.tooltip.95">
+            <visibleWhen
+                  checkEnabled="false">
+               <or>
+                  <reference
+                        definitionId="OneAnnotationTypeSelected">
+                  </reference>
+                  <reference
+                        definitionId="OneTypedValueSelected">
+                  </reference>
+               </or>
+            </visibleWhen>
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.ConcordancesEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.editor.DeleteLines"
+               label="%command.label.104"
+               style="push">
+         </command>
+      </menuContribution>
+      <menuContribution
+            locationURI="popup:org.txm.rcpapplication.editors.specificities.SpecificitiesTableEditor">
+         <command
+               commandId="org.txm.rcpapplication.commands.function.ComputeSpecifictiesBarChart"
+               style="push">
+         </command>
+      </menuContribution>
+   </extension>
+   <extension
+         id="general"
+         name="general"
+         point="org.eclipse.ui.commands">
+      <category
+            description="%category.description"
+            id="org.txm.rcpapplication.category.txm"
+            name="%category.name.0">
+      </category>
+      <command
+            categoryId="org.eclipse.ui.category.edit"
+            defaultHandler="org.txm.rcpapplication.commands.EditFile"
+            id="org.txm.rcpapplication.commands.EditFile"
+            name="%command.name">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.commandParameter2"
+               name="%commandParameter.name"
+               optional="true">
+         </commandParameter>
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteGroovyScript"
+            id="org.txm.rcpapplication.commands.ExecuteScriptGroovy"
+            name="%command.name.0">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteGroovyText"
+            id="org.txm.rcpapplication.commands.ExecuteGroovyText"
+            name="%command.name.10">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteImportScript"
+            id="org.txm.rcpapplication.commands.ExecuteScriptImport"
+            name="%command.name.22">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.commandParameter3"
+               name="%commandParameter.name.1"
+               optional="true">
+         </commandParameter>
+      </command>
+      
+      <command
+            categoryId="org.eclipse.ui.category.navigate"
+            defaultHandler="org.txm.rcpapplication.commands.OpenBrowser"
+            id="org.txm.rcpapplication.commands.OpenBrowser"
+            name="%command.name.8">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.commandParameter2"
+               name="%commandParameter.name"
+               optional="true">
+         </commandParameter>
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ShowSelected"
+            id="org.txm.rcpapplication.commands.ShowSelected"
+            name="%command.name.9">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.RestartTXM"
+            description="%command.description"
+            id="org.txm.rcpapplication.commands.RestartTXM"
+            name="%command.name.25">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.base.DeleteObject"
+            id="org.txm.rcpapplication.commands.base.DeleteInCorpora"
+            name="%command.name.26">
+      </command>
+      
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ImportSelectedText"
+            id="org.txm.rcpapplication.commands.ImportSelectedText"
+            name="%command.name.28">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.base.OpenEdition"
+            id="org.txm.rcpapplication.commands.base.OpenEdition"
+            name="%command.name.29">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.utils.LanguageSwitchHandler"
+            id="org.txm.rcpapplication.commands.changelanguage"
+            name="%command.name.31">
+      </command>
+      
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.DeleteLines"
+            id="org.txm.rcpapplication.commands.editor.DeleteLines"
+            name="%command.name.37">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.MergeLines"
+            id="org.txm.rcpapplication.commands.editor.MergeLines"
+            name="%command.name.38">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.ExportLexicalTable"
+            id="org.txm.rcpapplication.commands.editor.ExportLexicalTable"
+            name="%command.name.39">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.ImportTable"
+            id="org.txm.rcpapplication.commands.editor.ImportTable"
+            name="%command.name.40">
+      </command>
+      
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteRScript"
+            id="org.txm.rcpapplication.commands.ExecuteRScript"
+            name="%command.name.45">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteRText"
+            id="org.txm.rcpapplication.commands.ExecuteRText"
+            name="%command.name.46">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CreateFile"
+            id="org.txm.rcpapplication.commands.CreateFile"
+            name="%command.name.47">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CreateFolder"
+            id="org.txm.rcpapplication.commands.CreateFolder"
+            name="%command.name.48">
+      </command>
+      
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.OpenTXMUserPreferences"
+            id="org.txm.rcpapplication.commands.OpenTXMUserPreferences"
+            name="%command.name.51">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.base.ExportCorpus"
+            id="org.txm.rcpapplication.commands.base.ExportCorpus"
+            name="%command.name.52">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.base.SendToR"
+            id="org.txm.rcpapplication.commands.base.SendToR"
+            name="%command.name.53">
+      </command>
+      
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.R.OpenEmptyEditor"
+            id="org.txm.rcpapplication.commands.R.OpenEmptyEditor"
+            name="%command.name.59">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.R.Submit"
+            id="org.txm.rcpapplication.commands.R.Submit"
+            name="%command.name.60">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.R.ShowSvgHelp"
+            id="org.txm.rcpapplication.commands.R.ShowSvgHelp"
+            name="%command.name.61">
+      </command>
+      <command
+            categoryId="org.eclipse.ui.category.edit"
+            defaultHandler="org.txm.rcpapplication.commands.OpenImportForm"
+            id="org.txm.rcpapplication.commands.OpenImportForm"
+            name="%command.name.62">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.importscript"
+               name="%commandParameter.name.2"
+               optional="false">
+         </commandParameter>
+      </command>
+      <command
+            categoryId="org.eclipse.ui.category.navigate"
+            defaultHandler="org.txm.rcpapplication.commands.base.OpenBiblio"
+            id="org.txm.rcpapplication.commands.base.OpenBiblio"
+            name="%command.name.63">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteGroovyScriptFromFile"
+            id="org.txm.rcpapplication.commands.ExecuteScriptGroovyFromFile"
+            name="%command.name.66">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.ConvertCorpus"
+            description="%command.description.0"
+            id="org.txm.rcpapplication.commands.workspace.ConvertCorpus"
+            name="%command.name.3">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.PurgeCorpora"
+            description="%command.description.1"
+            id="org.txm.rcpapplication.commands.workspace.PurgeCorpora"
+            name="%command.name.18">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.OpenTestEditor"
+            id="org.txm.rcpapplication.commands.OpenTestEditor"
+            name="%command.name.19">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteScript"
+            id="org.txm.rcpapplication.commands.ExecuteScript"
+            name="%command.name.21">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteText"
+            id="org.txm.rcpapplication.commands.ExecuteText"
+            name="%command.name.50">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.SaveAs"
+            id="org.txm.rcpapplication.commands.editor.SaveAs"
+            name="%command.name.67">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.DeleteFile"
+            id="org.txm.rcpapplication.commands.DeleteFile"
+            name="%command.name.68">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CopyFile"
+            id="org.txm.rcpapplication.commands.CopyFile"
+            name="%command.name.69">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.PasteFile"
+            id="org.txm.rcpapplication.commands.PasteFile"
+            name="%command.name.70">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CutFile"
+            id="org.txm.rcpapplication.commands.CutFile"
+            name="%command.name.71">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.RenameFile"
+            id="org.txm.rcpapplication.commands.RenameFile"
+            name="%command.name.108">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.SetEncoding"
+            id="org.txm.rcpapplication.commands.editor.SetEncoding"
+            name="%command.name.72">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeInternalView"
+            id="org.txm.rcpapplication.commands.function.ComputeInternalView"
+            name="%command.name.73">
+      </command>
+      <command
+            categoryId="org.eclipse.ui.category.navigate"
+            defaultHandler="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+            id="org.txm.rcpapplication.commands.OpenLocalizedWebPage"
+            name="%command.name.74">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.commandParameter3"
+               name="%commandParameter.name.3"
+               optional="true">
+         </commandParameter>
+      </command>
+      <command
+            categoryId="org.eclipse.ui.category.navigate"
+            defaultHandler="org.txm.rcpapplication.commands.OpenWelcomePage"
+            id="org.txm.rcpapplication.commands.OpenWelcomePage"
+            name="%command.name.8">
+         <commandParameter
+               id="org.txm.rcpapplication.commands.commandParameter2"
+               name="%commandParameter.name"
+               optional="true">
+         </commandParameter>
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteGroovyMacro"
+            id="org.txm.rcpapplication.commands.ExecuteMacro"
+            name="%command.name.79">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CreateMacro"
+            id="org.txm.rcpapplication.commands.CreateMacro"
+            name="%command.name.80">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.p2.plugins.InstallPluginHandler"
+            description="%command.label.182"
+            id="org.txm.rcpapplication.p2.plugins.InstallPluginHandler"
+            name="%command.label.182">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.p2.plugins.TXMUpdateHandler"
+            description="%command.description.3"
+            id="org.txm.rcpapplication.p2.plugins.TXMUpdateHandler"
+            name="%command.name.87">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.p2.plugins.FixUpdateHandler"
+            description="%command.description.4"
+            id="org.txm.rcpapplication.p2.plugins.FixUpdateHandler"
+            name="%command.name.88">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.ExecuteLastGroovyScript"
+            id="org.txm.rcpapplication.commands.ExecuteLastGroovyScript"
+            name="%command.name.89">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CheckRPackages"
+            id="org.txm.rcpapplication.commands.CheckRPackages"
+            name="%command.name.90">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.R.ReconnectToRWorkspace"
+            id="org.txm.rcpapplication.commands.R.ReconnectToRWorkspace"
+            name="%command.name.93">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.CleanPerspective"
+            id="org.txm.rcpapplication.commands.CleanPerspective"
+            name="%command.name.94">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.OpenManual"
+            id="org.txm.rcpapplication.commands.OpenManual"
+            name="%command.name.95">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.annotation.SaveAnnotations"
+            id="org.txm.rcpapplication.commands.annotation.SaveAnnotations"
+            name="%command.name.97">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.workspace.UpdateCorpus"
+            id="org.txm.rcpapplication.commands.workspace.UpdateCorpus"
+            name="%command.name.98">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.OpenKRView"
+            id="org.txm.rcpapplication.commands.krview.OpenKRView"
+            name="%command.name.99">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.workspace.RecodeCorpus"
+            id="org.txm.rcpapplication.commands.workspace.RecodeCorpus"
+            name="%command.name.100">
+      </command>
+      <command
+            categoryId="org.eclipse.ui.category.edit"
+            defaultHandler="org.txm.rcpapplication.commands.EditSelectedFile"
+            id="org.txm.rcpapplication.commands.EditSelectedFile"
+            name="%command.name.106">
+      </command>
+   </extension>
+   <extension
+         id="commands"
+         name="commands"
+         point="org.eclipse.ui.commands">
+         <command
+            defaultHandler="org.txm.rcpapplication.commands.base.CreateSubCorpus"
+            id="org.txm.rcpapplication.commands.base.CreateSubCorpus"
+            name="%command.name.1">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.base.CreatePartition"
+            id="org.txm.rcpapplication.commands.base.CreatePartition"
+            name="%command.name.2">
+         <commandParameter
+               id="CorpusParameter"
+               name="%commandParameter.name.0"
+               optional="true">
+         </commandParameter>
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeConcordance"
+            id="org.txm.rcpapplication.commands.function.ComputeConcordance"
+            name="%command.name.5">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeCorrespondanceAnalysis"
+            id="org.txm.rcpapplication.commands.function.ComputeCorrespondanceAnalysis"
+            name="%command.name.6">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeFrequencyList"
+            id="org.txm.rcpapplication.commands.function.ComputeFrequencyList"
+            name="%command.name.7">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeDiagnostic"
+            id="org.txm.rcpapplication.commands.base.Diagnostique"
+            name="%command.name.23">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeIndex"
+            id="org.txm.rcpapplication.commands.function.ComputeIndex"
+            name="%command.name.27">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.OpenParaBrowser"
+            id="org.txm.rcpapplication.commands.function.OpenParaBrowser"
+            name="%command.name.33">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.tests.NilsTest"
+            description="%command.description.2"
+            id="org.txm.rcpapplication.commands.tests.NilsTest"
+            name="%command.name.85">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeCooccurrences"
+            id="org.txm.rcpapplication.commands.function.ComputeCooccurrences"
+            name="%command.name.35">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeCAH"
+            id="org.txm.rcpapplication.commands.function.ComputeCAH"
+            name="%command.name.54">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeReferencer"
+            id="org.txm.rcpapplication.commands.function.ComputeReferencer"
+            name="%command.name.44">
+      </command>
+      <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeLexicalTable"
+            id="org.txm.rcpapplication.commands.function.ComputeLexicalTable"
+            name="%command.name.36">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.function.ExportResult"
+            id="org.txm.rcpapplication.commands.function.ExportResult"
+            name="%command.name.24">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.function.ExportSVG"
+            id="org.txm.rcpapplication.commands.function.ExportSVG"
+            name="%command.name.34">
+      </command>
+         <command
+            categoryId="org.txm.rcpapplication.category.txm"
+            defaultHandler="org.txm.rcpapplication.commands.function.ComputeInterTextDistance"
+            id="org.txm.rcpapplication.commands.function.ComputeInterTextDistance"
+            name="%command.name.81">
+      </command>
+   </extension>
+   <extension
+         id="links"
+         name="links"
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.IndexToConcordance"
+            id="org.txm.rcpapplication.commands.link.IndexToConcordance"
+            name="%command.name.30">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.CooccurrencesToConcordances"
+            id="org.txm.rcpapplication.commands.link.CooccurrencesToConcordances"
+            name="%command.name.41">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.IndexToProgression"
+            id="org.txm.rcpapplication.commands.link.IndexToProgression"
+            name="%command.name.42">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.IndexToLexicalTable"
+            id="org.txm.rcpapplication.commands.link.IndexToLexicalTable"
+            name="%command.name.43">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.ReferencerToConc"
+            id="org.txm.rcpapplication.commands.link.ReferencerToConc"
+            name="%command.name.57">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.LexiconToIndex"
+            id="org.txm.rcpapplication.commands.link.LexiconToIndex"
+            name="%command.name.58">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.IndexToCooccurrence"
+            id="org.txm.rcpapplication.commands.link.IndexToCooccurrence"
+            name="%command.name.65">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.ToConcordance"
+            id="org.txm.rcpapplication.commands.link.ToConcordance"
+            name="%command.name.75">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.ToIndex"
+            id="org.txm.rcpapplication.commands.link.ToIndex"
+            name="%command.name.76">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.ToProgression"
+            id="org.txm.rcpapplication.commands.link.ToProgression"
+            name="%command.name.77">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.link.TextToConcordance"
+            id="org.txm.rcpapplication.commands.link.TextToConcordance"
+            name="%command.name.96">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.editor.Copy"
+            id="org.txm.rcpapplication.commands.editor.Copy"
+            name="%command.name.55">
+      </command>
+   </extension>
+   <extension
+         id="views"
+         name="views"
+         point="org.eclipse.ui.commands">
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.AddProject"
+            id="org.txm.rcpapplication.commands.workspace.AddProject"
+            name="%command.name.11">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.RemoveProject"
+            id="org.txm.rcpapplication.commands.workspace.RemoveProject"
+            name="%command.name.12">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.LoadBinaryCorpus"
+            id="org.txm.rcpapplication.commands.workspace.AddBase"
+            name="%command.name.13">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.RemoveBase"
+            id="org.txm.rcpapplication.commands.workspace.RemoveBase"
+            name="%command.name.14">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.AddText"
+            id="org.txm.rcpapplication.commands.workspace.AddText"
+            name="%command.name.15">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.RemoveText"
+            id="org.txm.rcpapplication.commands.workspace.RemoveText"
+            name="%command.name.16">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.BuildCorpus"
+            id="org.txm.rcpapplication.commands.workspace"
+            name="%command.name.17">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.workspace.SetSearchEngine"
+            id="org.txm.rcpapplication.commands.workspace.SetSearchEngine"
+            name="%command.name.20">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.queryview.Copy"
+            id="org.txm.rcpapplication.commands.queryview.Copy"
+            name="%command.name.55">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.queryview.Paste"
+            id="org.txm.rcpapplication.commands.queryview.Paste"
+            name="%command.name.56">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.R.CopySelection"
+            id="org.txm.rcpapplication.commands.R.CopySelection"
+            name="%command.name.64">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.DownloadFile"
+            id="org.txm.rcpapplication.commands.DownloadFile"
+            name="%command.name.91">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.Copy"
+            id="org.txm.rcpapplication.commands.krview.Copy"
+            name="%command.name.101">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.Reload"
+            id="org.txm.rcpapplication.commands.krview.Reload"
+            name="%command.name.102">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.Informations"
+            id="org.txm.rcpapplication.commands.krview.Informations"
+            name="%command.name.103">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.Delete"
+            id="org.txm.rcpapplication.commands.krview.Delete"
+            name="%command.name.104">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.krview.Add"
+            id="org.txm.rcpapplication.commands.krview.Add"
+            name="%command.name.105">
+      </command>
+      <command
+            defaultHandler="org.txm.rcpapplication.commands.annotation.ExportStandoff"
+            id="org.txm.rcpapplication.commands.annotation.ExportStandoff"
+            name="%command.name.107">
+      </command>
+   </extension>
+   <extension
+         point="org.eclipse.core.expressions.definitions">
+      <definition
+            id="OneMainCorpusSelected">
+        <with variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.searchengine.cqp.corpus.MainCorpus">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="OneSubCorpusSelected">
+                 <with variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.searchengine.cqp.corpus.Subcorpus">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+            <definition
+            id="OneCorpusSelected">
+                 <with variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.searchengine.cqp.corpus.Corpus">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="OnePartitionSelected">
+        <with variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.searchengine.cqp.corpus.Partition">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="OneFileSelected">
+         <with
+               variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="java.io.File">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+      <definition
+            id="OneDirSelected">
+         <and>
+            <instanceof
+                  value="java.io.File">
+            </instanceof>
+            <test
+                  args="isDirectory()"
+                  property="org.txm.rcpapplication.test2"
+                  value="true">
+            </test>
+         </and>
+      </definition>
+      <definition
+            id="OneConcordanceSelected">
+         <with
+               variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.functions.concordances.Concordance">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+            <definition
+            id="OneLexiconSelected">
+         <with
+               variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.searchengine.cqp.corpus.Lexicon">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+            <definition
+            id="OneSpecificitiesResultSelected">
+         <with
+               variable="selection">
+            <iterate
+                  ifEmpty="false"
+                  operator="and">
+               <instanceof
+                     value="org.txm.functions.specificities.SpecificitesResult">
+               </instanceof>
+            </iterate>
+         </with>
+      </definition>
+            <definition
+                  id="OneProjectSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.Project">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneBaseSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.Base">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneTextSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.Text">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneScriptSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.Script">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneCASelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.ca.CA">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneResultSelected">
+               <visibleWhen
+                     checkEnabled="false">
+                  <or>
+                     <reference
+                           definitionId="OneSpecificitiesResultSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneCASelected">
+                     </reference>
+                     <reference
+                           definitionId="OneLexiconSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneConcordanceSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneIndexSelected">
+                     </reference>
+                     <reference
+                           definitionId="OneReferencerSelected">
+                     </reference>
+                  </or>
+               </visibleWhen>
+            </definition>
+            <definition
+                  id="OneIndexSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.index.Index">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="SVGEditorActive">
+               <with
+                     variable="activeEditorId">
+                  <equals
+                        value="org.txm.rcpapplication.editors.SVGGraphicEditor">
+                  </equals>
+               </with>
+            </definition>
+            <definition
+                  id="OneTxmObjectSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.TxmObject">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneLexicalTableSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.stat.data.LexicalTable">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneCooccurrenceSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.cooccurrences.Cooccurrence">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneReferencerSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.referencer.Referencer">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneProgressionSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.progression.Progression">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneQueryLogSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.objects.QueryLog">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="SpecificitiesEditorActive">
+               <with
+                     variable="activePartId">
+                  <equals
+                        value="org.txm.rcpapplication.editors.specificities.SpecificitiesTableEditor">
+                  </equals>
+               </with>
+            </definition>
+            <definition
+                  id="RPerspectiveSelected">
+               <with
+                     variable="activeWorkbenchWindow.activePerspective">
+                  <equals
+                        value="org.txm.rcpapplication.perspective.RPerspective">
+                  </equals>
+               </with>
+            </definition>
+            <definition
+                  id="OneCAHSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.classification.CAH">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="StatEngineReady">
+               <test
+                     forcePluginActivation="true"
+                     property="org.txm.rcp.testers.ToolboxTester"
+                     value="StateEngineReady">
+               </test>
+            </definition>
+            <definition
+                  id="OneIndexSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.index.Index">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            
+            <definition
+                  id="OneTXMResultSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.TXMResult">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="LabPerspectiveSelected">
+               <with
+                     variable="activeWorkbenchWindow.activePerspective">
+                  <equals
+                        value="org.txm.rcpapplication.perspective.LabPerspective">
+                  </equals>
+               </with>
+            </definition>
+            <definition
+                  id="WasNotFirstTXMRun">
+               <systemTest
+                     property="org.txm.rcp.wasfirstrun"
+                     value="false">
+               </systemTest>
+            </definition>
+            <definition
+                  id="OneICAComputableSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.ca.ICAComputable">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneLexicalTableAbleSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.functions.LexicalTableAble">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneKRSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.annotation.KnowledgeRepository">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneLocalKRSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.annotation.repository.LocalKnowledgeRepository">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneAnnotationTypeSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.annotation.repository.AnnotationType">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="OneTypedValueSelected">
+               <with
+                     variable="selection">
+                  <iterate
+                        ifEmpty="false"
+                        operator="and">
+                     <instanceof
+                           value="org.txm.annotation.repository.TypedValue">
+                     </instanceof>
+                  </iterate>
+               </with>
+            </definition>
+            <definition
+                  id="NeedToSaveAnnotations">
+               <test
+                     forcePluginActivation="true"
+                     property="org.txm.rcp.testers.annotate.canSave">
+               </test>
+            </definition>
+            <definition
+                  id="ExpertEnabled">
+               <test
+                     forcePluginActivation="true"
+                     property="org.txm.rcp.testers.ExpertEnabled">
+               </test>
+            </definition>
+            <definition
+                  id="IsXTZCorpus">
+               <test
+                     forcePluginActivation="true"
+                     property="org.txm.rcp.testers.corpus.xtzCorpus">
+               </test>
+            </definition>
+            <definition
+                  id="TextEditorActive">
+               <with
+                     variable="activePartId">
+                  <equals
+                        value="org.txm.rcpapplication.editors.TxtEditor">
+                  </equals>
+               </with>
+            </definition>
+   </extension>
+   <extension
+         point="org.eclipse.help.contexts">
+      <contexts
+            file="contexts.xml">
+      </contexts>
+   </extension>
+  
+   <extension
+         point="org.eclipse.ui.popupMenus">
+      <viewerContribution
+            id="projmenu"
+            targetID="org.txm.rcpapplication.views.BasesView">
+      </viewerContribution>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.splashHandlers">
+      <splashHandler
+            class="org.txm.rcpapplication.AbstractSplashHandler2"
+            id="org.txm.rcpapplication.splashHandler2">
+      </splashHandler>
+      <splashHandlerProductBinding
+            productId="org.txm.rcpapplication.product"
+            splashId="org.txm.rcpapplication.splash">
+      </splashHandlerProductBinding>
+   </extension>
+   <extension
+         point="org.eclipse.ui.decorators">
+      <decorator
+            class="org.txm.rcpapplication.decorators.RDecorator"
+            icon="icons/decorators/R.png"
+            id="org.txm.rcpapplication.decorators.RDecorator"
+            label="%decorator.label"
+            lightweight="false"
+            location="TOP_LEFT"
+            objectClass="java.lang.Object"
+            state="true">
+      </decorator>
+   </extension>
+   <extension
+         point="org.eclipse.core.expressions.propertyTesters">
+      <propertyTester
+            class="org.txm.rcp.testers.ToolboxTester"
+            id="org.txm.rcp.testers.ToolboxTester"
+            namespace="org.txm.rcp.testers"
+            properties="StatEngineReady"
+            type="java.lang.Object">
+      </propertyTester>
+      <propertyTester
+            class="org.txm.rcp.testers.IsCorpusAnnotated"
+            id="org.txm.rcp.testers.IsCorpusAnnotated"
+            namespace="org.txm.rcp.testers.annotate"
+            properties="canSave"
+            type="java.lang.Object">
+      </propertyTester>
+      <propertyTester
+            class="org.txm.rcp.testers.ExpertEnabled"
+            id="org.txm.rcp.testers.ExpertEnabled"
+            namespace="org.txm.rcp.testers"
+            properties="ExpertEnabled"
+            type="java.lang.Object">
+      </propertyTester>
+      <propertyTester
+            class="org.txm.rcp.testers.IsXTZCorpus"
+            id="org.txm.rcp.testers.IsXTZCorpus"
+            namespace="org.txm.rcp.testers.corpus"
+            properties="xtzCorpus"
+            type="java.lang.Object">
+      </propertyTester>
+   </extension>
+   <extension
+         point="org.eclipse.ui.bindings">
+      <key
+            commandId="org.txm.rcpapplication.commands.ExecuteText"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="org.txm.rcp.scheme"
+            sequence="F11">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.ExecuteScript"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="org.txm.rcp.scheme"
+            sequence="M1+F11">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.ExecuteLastGroovyScript"
+            contextId="org.eclipse.ui.contexts.window"
+            schemeId="org.txm.rcp.scheme"
+            sequence="F12">
+      </key>
+      <scheme
+            description="%scheme.description"
+            id="org.txm.rcp.scheme"
+            name="%scheme.name"
+            parentId="org.eclipse.ui.defaultAcceleratorConfiguration">
+      </scheme>
+      <key
+            commandId="org.txm.rcpapplication.commands.krview.Add"
+            contextId="org.txm.rcp.annotation.krview"
+            schemeId="org.txm.rcp.scheme"
+            sequence="Ctrl+A">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.krview.Reload"
+            contextId="org.txm.rcp.annotation.krview"
+            schemeId="org.txm.rcp.scheme"
+            sequence="Ctrl+R">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.krview.Informations"
+            contextId="org.txm.rcp.annotation.krview"
+            schemeId="org.txm.rcp.scheme"
+            sequence="Ctrl+I">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.krview.Copy"
+            contextId="org.txm.rcp.annotation.krview"
+            schemeId="org.txm.rcp.scheme"
+            sequence="Ctrl+C">
+      </key>
+      <key
+            commandId="org.txm.rcpapplication.commands.krview.Delete"
+            contextId="org.txm.rcp.annotation.krview"
+            schemeId="org.txm.rcp.scheme"
+            sequence="Ctrl+D">
+      </key>
+   </extension>
+   <extension
+         point="org.eclipse.e4.ui.css.swt.theme">
+      <theme
+            basestylesheeturi="css/default_linux.css"
+            id="org.txm.rcp.theme.default.linux"
+            label="TXM"
+            os="linux">
+      </theme>
+      <theme
+            basestylesheeturi="css/default_windows.css"
+            id="org.txm.rcp.theme.default.windows"
+            label="TXM"
+            os="win32">
+      </theme>
+      <theme
+            basestylesheeturi="css/default_mac.css"
+            id="org.txm.rcp.theme.default.mac"
+            label="TXM"
+            os="macosx">
+      </theme>
+   </extension>
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <category
+            id="org.txm.rcp.wizard.new"
+            name="%category.name.1">
+      </category>
+      <wizard
+            category="org.txm.rcp.wizard.new"
+            class="org.txm.rcp.wizard.NewCorpusWizard"
+            finalPerspective="org.txm.rcpapplication.perspective.TXMPerspective"
+            icon="icons/objects/books.png"
+            id="org.txm.rcp.wizard.corpus"
+            name="%wizard.name"
+            project="true">
+         <description>
+            %wizard.description
+         </description>
+      </wizard>
+   </extension>
+   <extension
+         point="org.eclipse.ui.exportWizards">
+      <wizard
+            category="org.txm.rcp.wizard.export"
+            class="org.txm.rcp.wizard.ExportCorpusWizard"
+            finalPerspective="org.txm.rcpapplication.perspective.TXMPerspective"
+            icon="icons/functions/Compress.png"
+            id="org.txm.rcp.wizard.corpus"
+            name="%wizard.name.0"
+            project="true">
+         <description>
+            %wizard.description.0
+         </description>
+      </wizard>
+      <category
+            id="org.txm.rcp.wizard.export"
+            name="%category.name.2">
+      </category>
+   </extension>
+   <extension
+         point="org.eclipse.ui.importWizards">
+      <wizard
+            category="org.txm.rcp.wizard.import"
+            class="org.txm.rcp.wizard.ImportCorpusWizard"
+            finalPerspective="org.txm.rcpapplication.perspective.TXMPerspective"
+            icon="icons/objects/corpus.png"
+            id="org.txm.rcp.wizard.corpus"
+            name="%wizard.name.1"
+            project="true">
+         <description>
+            %wizard.description.1
+         </description>
+      </wizard>
+      <category
+            id="org.txm.rcp.wizard.import"
+            name="%category.name.3">
+      </category>
+   </extension>
+   <extension
+         point="org.eclipse.ui.contexts">
+      <context
+            description="%context.description"
+            id="org.txm.rcp.annotation.krview"
+            name="%context.name">
+      </context>
+   </extension>
+</plugin>

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

Index: tmp/org.txm.rcp/schema/org.txm.rcp.extensionpoint.backtotext.exsd
===================================================================
--- tmp/org.txm.rcp/schema/org.txm.rcp.extensionpoint.backtotext.exsd	(revision 0)
+++ tmp/org.txm.rcp/schema/org.txm.rcp.extensionpoint.backtotext.exsd	(revision 122)
@@ -0,0 +1,109 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.txm.rcpapplication" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.txm.rcpapplication" id="org.txm.rcp.extensionpoint.backtotext" name="Back to text"/>
+      </appinfo>
+      <documentation>
+         Called from the concordance editor to open an edition using the selected concordance line.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice minOccurs="1" maxOccurs="unbounded">
+            <element ref="command"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="command">
+      <complexType>
+         <attribute name="class" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.txm.rcpapplication.commands.BackToTextCommand:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>

Property changes on: tmp/org.txm.rcp/schema/org.txm.rcp.extensionpoint.backtotext.exsd
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/schema/org.txm.rcp.extentionpoint.command.exsd
===================================================================
--- tmp/org.txm.rcp/schema/org.txm.rcp.extentionpoint.command.exsd	(revision 0)
+++ tmp/org.txm.rcp/schema/org.txm.rcp.extentionpoint.command.exsd	(revision 122)
@@ -0,0 +1,70 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.txm.rcp" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.txm.rcp" id="org.txm.rcp.extentionpoint.command" name="Command"/>
+      </appinfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice minOccurs="1" maxOccurs="unbounded">
+            <element ref="installcommand"/>
+         </choice>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="installcommand">
+      <complexType>
+         <attribute name="class" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.txm.rcpapplication.commands.TxmCommand:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+
+
+
+
+
+</schema>

Property changes on: tmp/org.txm.rcp/schema/org.txm.rcp.extentionpoint.command.exsd
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/.classpath
===================================================================
--- tmp/org.txm.rcp/.classpath	(revision 0)
+++ tmp/org.txm.rcp/.classpath	(revision 122)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry exported="true" kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry exported="true" kind="lib" path="lib/commons-cli-1.2.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/commons-lang-2.4.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/junit-4.5.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/log4j-1.2.12.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.txm.core"/>
+	<classpathentry kind="lib" path="swing2swt.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

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

Index: tmp/org.txm.rcp/LICENSE.txt
===================================================================
--- tmp/org.txm.rcp/LICENSE.txt	(revision 0)
+++ tmp/org.txm.rcp/LICENSE.txt	(revision 122)
@@ -0,0 +1,675 @@
+GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program 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 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+

Property changes on: tmp/org.txm.rcp/LICENSE.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.rcp/META-INF/MANIFEST.MF	(revision 0)
+++ tmp/org.txm.rcp/META-INF/MANIFEST.MF	(revision 122)
@@ -0,0 +1,190 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.txm.rcp;singleton:=true
+Bundle-Version: 0.7.8.qualifier
+Bundle-Activator: org.txm.rcpapplication.Activator
+Bundle-Vendor: %Bundle-Vendor
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.filesystem;bundle-version="1.2.0",
+ org.eclipse.ui.ide,
+ org.eclipse.ui.console;bundle-version="3.4.0",
+ org.eclipse.jface.text,
+ org.eclipse.ui.browser;bundle-version="3.2.300",
+ org.eclipse.ui.forms,
+ org.eclipse.ui.editors,
+ org.txm.core,
+ org.eclipse.e4.ui.workbench.addons.swt;bundle-version="1.0.0",
+ org.eclipse.equinox.ds;bundle-version="1.4.100",
+ org.eclipse.equinox.event;bundle-version="1.3.0",
+ org.eclipse.ui.intro;bundle-version="3.4.200",
+ org.eclipse.equinox.p2.ui;bundle-version="2.3.0";visibility:=reexport,
+ org.eclipse.equinox.p2.ui.sdk;bundle-version="1.0.300",
+ org.eclipse.equinox.p2.ui.sdk.scheduler;bundle-version="1.2.0",
+ org.eclipse.update.configurator;bundle-version="3.3.200",
+ org.eclipse.e4.ui.css.swt.theme;bundle-version="0.9.100",
+ org.eclipse.e4.ui.css.swt;bundle-version="0.11.0",
+ org.eclipse.e4.ui.css.core;bundle-version="0.10.100",
+ org.eclipse.equinox.p2.updatesite;bundle-version="1.0.400",
+ org.eclipse.platform;bundle-version="4.3.0",
+ org.eclipse.equinox.util;bundle-version="1.0.500",
+ org.eclipse.equinox.p2.operations,
+ org.eclipse.equinox.p2.metadata;bundle-version="2.2.0",
+ org.eclipse.equinox.p2.director,
+ org.eclipse.equinox.p2.ui.discovery;bundle-version="1.0.0",
+ org.eclipse.equinox.p2.discovery;bundle-version="1.0.200",
+ org.eclipse.equinox.p2.discovery.compatibility;bundle-version="1.0.101",
+ org.eclipse.swt,
+ org.eclipse.equinox.p2.repository;bundle-version="2.3.0",
+ org.eclipse.equinox.p2.core;bundle-version="2.3.0",
+ org.eclipse.equinox.p2.engine;bundle-version="2.3.0",
+ org.eclipse.equinox.p2.console;bundle-version="1.0.300",
+ org.eclipse.ui.net;bundle-version="1.2.200",
+ org.eclipse.core.net,
+ org.eclipse.e4.ui.model.workbench,
+ org.eclipse.e4.ui.workbench;bundle-version="1.0.0",
+ org.eclipse.e4.core.contexts;bundle-version="1.3.0",
+ org.eclipse.core.expressions,
+ jfreechart;bundle-version="1.0.17",
+ org.eclipse.ui.navigator;bundle-version="3.5.300",
+ org.eclipse.ui.navigator.resources;bundle-version="3.4.500",
+ org.eclipse.e4.ui.di,
+ org.eclipse.ui.themes;bundle-version="1.0.1",
+ groovy-all;bundle-version="1.0.0",
+ org.eclipse.core.resources;bundle-version="3.9.1",
+ org.eclipse.ui.workbench.texteditor;bundle-version="3.9.0",
+ org.eclipse.e4.ui.bindings;bundle-version="0.10.200",
+ org.eclipse.osgi.services;bundle-version="3.4.0",
+ org.eclipse.osgi.util;bundle-version="3.3.0",
+ org.eclipse.equinox.p2.reconciler.dropins;bundle-version="1.1.200",
+ org.txm.chartsengine.rcp,
+ org.txm.chartsengine.jfreechart.rcp;bundle-version="1.0.0",
+ org.txm.chartsengine.r.rcp;bundle-version="1.0.0",
+ org.txm.chartsengine.raster.rcp;bundle-version="1.0.0",
+ org.txm.chartsengine.svgbatik.rcp;bundle-version="1.0.0",
+ org.txm.chartsengine.jfreechart.core;bundle-version="1.0.0",
+ org.txm.chartsengine.r.core;bundle-version="1.0.0",
+ Batik;bundle-version="0.0.0",
+ org.txm.progression.rcp,
+ org.txm.specificities.rcp,
+ org.txm.specificities.core;bundle-version="1.0.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: junit.extensions,
+ junit.framework,
+ junit.runner,
+ junit.textui,
+ org.apache.commons.cli,
+ org.apache.commons.lang,
+ org.apache.commons.lang.builder,
+ org.apache.commons.lang.enums,
+ org.apache.commons.lang.exception,
+ org.apache.commons.lang.math,
+ org.apache.commons.lang.mutable,
+ org.apache.commons.lang.text,
+ org.apache.commons.lang.time,
+ org.apache.log4j,
+ org.apache.log4j.chainsaw,
+ org.apache.log4j.config,
+ org.apache.log4j.helpers,
+ org.apache.log4j.jdbc,
+ org.apache.log4j.jmx,
+ org.apache.log4j.lf5,
+ org.apache.log4j.lf5.util,
+ org.apache.log4j.lf5.viewer,
+ org.apache.log4j.lf5.viewer.categoryexplorer,
+ org.apache.log4j.lf5.viewer.configure,
+ org.apache.log4j.net,
+ org.apache.log4j.nt,
+ org.apache.log4j.or,
+ org.apache.log4j.or.jms,
+ org.apache.log4j.or.sax,
+ org.apache.log4j.spi,
+ org.apache.log4j.varia,
+ org.apache.log4j.xml,
+ org.hamcrest,
+ org.hamcrest.core,
+ org.hamcrest.internal,
+ org.junit,
+ org.junit.experimental.results,
+ org.junit.experimental.runners,
+ org.junit.experimental.theories,
+ org.junit.experimental.theories.internal,
+ org.junit.experimental.theories.suppliers,
+ org.junit.internal,
+ org.junit.internal.builders,
+ org.junit.internal.matchers,
+ org.junit.internal.requests,
+ org.junit.internal.runners,
+ org.junit.internal.runners.model,
+ org.junit.internal.runners.statements,
+ org.junit.matchers,
+ org.junit.runner,
+ org.junit.runner.manipulation,
+ org.junit.runner.notification,
+ org.junit.runners,
+ org.junit.runners.model,
+ org.txm.rcp.adapters,
+ org.txm.rcp.chartsengine.base.events.ca,
+ org.txm.rcp.chartsengine.base.events.cah,
+ org.txm.rcp.chartsengine.base.messages,
+ org.txm.rcp.editors,
+ org.txm.rcp.preferences,
+ org.txm.rcp.testers,
+ org.txm.rcp.wizard,
+ org.txm.rcpapplication,
+ org.txm.rcpapplication.actions,
+ org.txm.rcpapplication.commands,
+ org.txm.rcpapplication.commands.R,
+ org.txm.rcpapplication.commands.annotation,
+ org.txm.rcpapplication.commands.base,
+ org.txm.rcpapplication.commands.editor,
+ org.txm.rcpapplication.commands.function,
+ org.txm.rcpapplication.commands.krview,
+ org.txm.rcpapplication.commands.link,
+ org.txm.rcpapplication.commands.queryview,
+ org.txm.rcpapplication.commands.tests,
+ org.txm.rcpapplication.commands.workspace,
+ org.txm.rcpapplication.decorators,
+ org.txm.rcpapplication.editors,
+ org.txm.rcpapplication.editors.adaptableDataStructure,
+ org.txm.rcpapplication.editors.ca,
+ org.txm.rcpapplication.editors.cah,
+ org.txm.rcpapplication.editors.concordances,
+ org.txm.rcpapplication.editors.cooccurrences,
+ org.txm.rcpapplication.editors.dictionnary,
+ org.txm.rcpapplication.editors.imports,
+ org.txm.rcpapplication.editors.imports.sections,
+ org.txm.rcpapplication.editors.index,
+ org.txm.rcpapplication.editors.input,
+ org.txm.rcpapplication.editors.internal,
+ org.txm.rcpapplication.editors.lexicaltable,
+ org.txm.rcpapplication.editors.objectexplorer,
+ org.txm.rcpapplication.editors.parabrowser,
+ org.txm.rcpapplication.editors.progression,
+ org.txm.rcpapplication.editors.referencer,
+ org.txm.rcpapplication.jface,
+ org.txm.rcpapplication.log,
+ org.txm.rcpapplication.p2.plugins,
+ org.txm.rcpapplication.perspective,
+ org.txm.rcpapplication.preferences,
+ org.txm.rcpapplication.splashHandlers,
+ org.txm.rcpapplication.svg,
+ org.txm.rcpapplication.swt.dialog,
+ org.txm.rcpapplication.swt.provider,
+ org.txm.rcpapplication.swt.widget,
+ org.txm.rcpapplication.swt.widget.parameters,
+ org.txm.rcpapplication.swt.widget.preferences,
+ org.txm.rcpapplication.utils,
+ org.txm.rcpapplication.views,
+ org.txm.rcpapplication.views.cmdparameters,
+ org.txm.rcpapplication.views.fileexplorer,
+ org.txm.rcpapplication.views.knowledgerepositories
+Bundle-ClassPath: bin/,
+ .,
+ lib/commons-cli-1.2.jar,
+ lib/commons-lang-2.4.jar,
+ lib/junit-4.5.jar,
+ lib/log4j-1.2.12.jar,
+ swing2swt.jar

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

Index: tmp/org.txm.rcp/splash_sansversion.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/splash_sansversion.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/plugin_customization.ini
===================================================================
--- tmp/org.txm.rcp/plugin_customization.ini	(revision 0)
+++ tmp/org.txm.rcp/plugin_customization.ini	(revision 122)
@@ -0,0 +1,8 @@
+org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = true
+org.eclipse.equinox.p2.ui.sdk.scheduler/enabled = true
+org.eclipse.ui/KEY_CONFIGURATION_ID=org.txm.rcp.scheme
+org.eclipse.core.net.prefs/proxiesEnabled=true
+org.eclipse.core.net.prefs/systemProxiesEnabled=true 
+
+org.eclipse.equinox.p2.examples.rcp.cloud/groupByCategory=false
+org.eclipse.equinox.p2.ui.sdk.scheduler/enabled=false

Property changes on: tmp/org.txm.rcp/plugin_customization.ini
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/html/maintopic.html
===================================================================
--- tmp/org.txm.rcp/html/maintopic.html	(revision 0)
+++ tmp/org.txm.rcp/html/maintopic.html	(revision 122)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+	<title>Main Topic</title>
+</head>
+
+<body>
+<h1>Main Topic</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/html/maintopic.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/html/toc.html
===================================================================
--- tmp/org.txm.rcp/html/toc.html	(revision 0)
+++ tmp/org.txm.rcp/html/toc.html	(revision 122)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+	<title>Table of Contents</title>
+</head>
+
+<body>
+<h1>Table of Contents</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/html/toc.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/html/subtopic.html
===================================================================
--- tmp/org.txm.rcp/html/subtopic.html	(revision 0)
+++ tmp/org.txm.rcp/html/subtopic.html	(revision 122)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+	<title>Sub Topic</title>
+</head>
+
+<body>
+<h1>Sub Topic</h1>
+Please enter your text here.
+</body>
+</html>
\ No newline at end of file

Property changes on: tmp/org.txm.rcp/html/subtopic.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/installtreetagger_en.html
===================================================================
--- tmp/org.txm.rcp/installtreetagger_en.html	(revision 0)
+++ tmp/org.txm.rcp/installtreetagger_en.html	(revision 122)
@@ -0,0 +1,85 @@
+<? version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+<title>
+Install TreeTagger
+</title>
+</head>
+<body>
+<h1>
+Install TreeTagger tutorial for TXM
+</h1>
+<p>
+To be able to automatically tag morphosyntactically and to lemmatize your corpora during the import process, 
+you need to install the TreeTagger(*) software and to tell the TXM platform where it was installed. To do so, please follow those simple steps
+(it's not a complete install of TreeTagger, but a simplified install for TXM):
+</p>
+<ol>
+<li>
+download the TreeTagger program archive from http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger
+<ul>
+<li>
+Windows: <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-windows-3.2.zip">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-windows-3.2.zip</a>
+</li>
+<li>
+Linux: <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-linux-3.2.tar.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-linux-3.2.tar.gz</a>
+</li>
+<li>
+Mac: <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-MacOSX-3.2-intel.tar.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/tree-tagger-MacOSX-3.2-intel.tar.gz</a>
+</li>
+</ul>  
+</li>
+<li>
+Unzip in a directory, for example : 
+<p>
+Windows: "C:\Program Files\TreeTagger"
+<br/>
+Linux: "/home/&lt;username&gt;/TreeTagger"
+</p>
+</li>
+<li>
+Download a TreeTagger language model file for each language you need to tag a text for (in the UTF8 format, not ISO-Latin-1)
+<ul>
+<li>
+French model (UTF-8): <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/french-par-linux-3.2-utf8.bin.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/french-par-linux-3.2-utf8.bin.gz</a>
+</li>
+<li>
+Old French model BFM - no lemma (UTF-8): <a href="http://bfm.ens-lyon.fr/IMG/zip/rgaqcj.zip">http://bfm.ens-lyon.fr/IMG/zip/rgaqcj.zip</a>
+</li>
+<li>
+Italian model (UTF-8): <a href="ftp://ftp.ims.uni-stuttgart.de/pub/corpora/italian-par-linux-3.2-utf8.bin.gz">ftp://ftp.ims.uni-stuttgart.de/pub/corpora/italian-par-linux-3.2-utf8.bin.gz</a>
+</li>
+</ul>
+</li>
+<li>
+Unzip and rename each model file as 'fr.par' for french, 'it.par' for italian and 'afr.par' for old french in the directory of your choice.
+For example, in a "Models" directory that you create in the TreeTagger directory (where you have unziped TreeTagger archive).
+</li>
+<li>
+Finally, in a running TXM, open the settings (from the menu Tools/Settingss) and edit the TXM / Advanced / NLP / TreeTagger page fields
+<ol>
+<li>
+For the 'TreeTagger install dir' field put the path to the directory where you unzip it
+</li>
+<li>
+For the 'TreeTagger models directory' field put the path to the directory where you put your model files (fr.par, it.par...)
+</li>
+</ol>
+</li>
+</ol>
+<p>
+You can now restart a new import process to test the new tagger.
+</p>
+<p>
+If you can't manage the install process, please contact the TXM users mailing list (txm-users@cru.fr) 
+after subscription at <a href="https://listes.cru.fr/sympa/subscribe/txm-users">https://listes.cru.fr/sympa/subscribe/txm-users</a>.
+</p>
+</p>
+<p>
+(*) TreeTagger licence prohibits to deliver TreeTagger embeded in a commercial software. As TXM licence
+doesn't prevent anyone to do business with TXM, we can not include TreeTagger in the TXM distribution.
+</p>
+</body>
+</html>
+

Property changes on: tmp/org.txm.rcp/installtreetagger_en.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.rcp/incrust_version_in_splash.sh
===================================================================
--- tmp/org.txm.rcp/incrust_version_in_splash.sh	(revision 0)
+++ tmp/org.txm.rcp/incrust_version_in_splash.sh	(revision 122)
@@ -0,0 +1,15 @@
+#!/bin/bash
+version=`cat ../org.txm.setups/trunk/VERSION`
+
+which convert & which composite
+if [ $? != 0 ]; then
+	sudo apt-get install imagemagick
+fi
+date=`date +"%Y-%m-%d"`
+
+echo "create label: TXM-$version ($date)"
+convert -fill "#6d8900" -gravity center -size 240x20 -font "Courier, Bold" -pointsize 19 label:"TXM-$version ($date)" label.gif
+composite -geometry +60+290 label.gif splash_sansversion.bmp splash-tmp.bmp
+convert splash-tmp.bmp -colors 4294967296 splash.bmp
+rm label.gif
+rm splash-tmp.bmp
Index: tmp/org.txm.rcp/splash_old.bmp
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/splash_old.bmp
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/commons-lang-2.4.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/commons-lang-2.4.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/junit-4.5.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/junit-4.5.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/commons-cli-1.2.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/commons-cli-1.2.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/log4j-1.2.12.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/log4j-1.2.12.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/batik-swing.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/batik-swing.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/batik-squiggle.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/batik-squiggle.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-svg-dom.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-svg-dom.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-util.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-util.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-codec.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-codec.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-dom.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-dom.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/js.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/js.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-anim.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-anim.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-swing.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-swing.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-css.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-css.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-svggen.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-svggen.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-bridge.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-bridge.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-parser.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-parser.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-gui-util.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-gui-util.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/xml-apis-ext.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/xml-apis-ext.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-xml.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-xml.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-ext.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-ext.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-gvt.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-gvt.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/xml-apis.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/xml-apis.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-script.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-script.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-transcoder.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-transcoder.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.rcp/lib/batik/lib/batik-awt-util.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.rcp/lib/batik/lib/batik-awt-util.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

