Index: tmp/org.txm.synopticeditor.rcp/plugin.xml
===================================================================
--- tmp/org.txm.synopticeditor.rcp/plugin.xml	(revision 835)
+++ tmp/org.txm.synopticeditor.rcp/plugin.xml	(revision 836)
@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.4"?>
 <plugin>
-   <extension-point id="org.txm.synopticedition.rcp.editors.ext.ToolbarButton" name="Synoptic Editor toolbar button" schema="schema/org.txm.synopticedition.rcp.editors.ext.ToolbarButton.exsd"/>
+   <extension-point id="org.txm.edition.rcp.editors.ext.ToolbarButton" name="Synoptic Editor toolbar button" schema="schema/org.txm.edition.rcp.editors.ext.ToolbarButton.exsd"/>
    <extension
          point="org.eclipse.ui.menus">
       <menuContribution
             locationURI="popup:org.txm.concordance.rcp.editors.ConcordanceEditor">
          <command
-               commandId="org.txm.synopticedition.rcp.handlers.BackToText"
+               commandId="org.txm.edition.rcp.handlers.BackToText"
                icon="icons/objects/edition.png"
                style="push">
          </command>
@@ -29,7 +29,7 @@
             allPopups="true"
             locationURI="toolbar:org.txm.rcp.toolbarcorpus?after=org.txm.rcp.toolbarcorpus.read">
          <command
-               commandId="org.txm.synopticedition.rcp.handlers.OpenEdition"
+               commandId="org.txm.edition.rcp.handlers.OpenEdition"
                icon="icons/objects/edition.png"
                style="push"
                tooltip="%command.tooltip.0">
@@ -46,7 +46,7 @@
       <menuContribution
             locationURI="popup:org.txm.rcp.views.corpora.CorporaView?after=org.txm.rcp.corporaview.corpus.read">
          <command
-               commandId="org.txm.synopticedition.rcp.handlers.OpenEdition"
+               commandId="org.txm.edition.rcp.handlers.OpenEdition"
                icon="icons/objects/edition.png"
                style="push"
                tooltip="%command.tooltip.0">
@@ -63,7 +63,7 @@
       <menuContribution
             locationURI="menu:menu.corpus?after=menu.corpus.read">
          <command
-               commandId="org.txm.synopticedition.rcp.handlers.OpenEdition"
+               commandId="org.txm.edition.rcp.handlers.OpenEdition"
                icon="icons/objects/edition.png"
                style="push"
                tooltip="%command.tooltip.0">
@@ -78,7 +78,7 @@
          </command>
       </menuContribution>
       <menuContribution
-            locationURI="popup:org.txm.synopticedition.rcp.editors.SynopticEditionEditor">
+            locationURI="popup:org.txm.edition.rcp.editors.SynopticEditionEditor">
          <command
                commandId="org.txm.rcp.commands.link.TextToConcordance"
                label="Send to concordances..."
@@ -89,30 +89,30 @@
    <extension
          point="org.eclipse.ui.commands">
       <command
-            defaultHandler="org.txm.synopticedition.rcp.handlers.OpenEdition"
-            id="org.txm.synopticedition.rcp.handlers.OpenEdition"
+            defaultHandler="org.txm.edition.rcp.handlers.OpenEdition"
+            id="org.txm.edition.rcp.handlers.OpenEdition"
             name="%command.name">
       </command>
       <command
-            defaultHandler="org.txm.synopticedition.rcp.handlers.BackToText"
-            id="org.txm.synopticedition.rcp.handlers.BackToText"
+            defaultHandler="org.txm.edition.rcp.handlers.BackToText"
+            id="org.txm.edition.rcp.handlers.BackToText"
             name="%command.name.0">
       </command>
    </extension>
    <extension
          point="org.eclipse.ui.editors">
       <editor
-            class="org.txm.synopticedition.rcp.editors.SynopticEditionEditor"
+            class="org.txm.edition.rcp.editors.SynopticEditionEditor"
             default="false"
             icon="icons/objects/edition.png"
-            id="org.txm.synopticedition.rcp.editors.SynopticEditionEditor"
+            id="org.txm.edition.rcp.editors.SynopticEditionEditor"
             name="%editor.name">
       </editor>
    </extension>
    <extension
          point="org.eclipse.ui.bindings">
       <key
-            commandId="org.txm.synopticedition.rcp.handlers.BackToText"
+            commandId="org.txm.edition.rcp.handlers.BackToText"
             contextId="org.eclipse.ui.contexts.window"
             schemeId="org.txm.rcp.scheme"
             sequence="M1+E">
@@ -121,7 +121,7 @@
    <extension
          point="org.txm.rcp.extensionpoint.backtotext">
       <command
-            class="org.txm.synopticedition.rcp.handlers.BackToText"
+            class="org.txm.edition.rcp.handlers.BackToText"
             name="Synoptic">
       </command>
    </extension>
@@ -129,8 +129,8 @@
          point="org.eclipse.ui.preferencePages">
       <page
             category="org.txm.rcp.preferences.UserPreferencePage"
-            class="org.txm.synopticedition.rcp.preferences.SynopticEditionPreferencePage"
-            id="org.txm.synopticedition.rcp.preferences.SynopticEditionPreferencePage"
+            class="org.txm.edition.rcp.preferences.SynopticEditionPreferencePage"
+            id="org.txm.edition.rcp.preferences.SynopticEditionPreferencePage"
             name="Edition">
       </page>
    </extension>
Index: tmp/org.txm.synopticeditor.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.synopticeditor.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.synopticeditor.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -9,14 +9,16 @@
  org.eclipse.ui.browser;bundle-version="3.4.100";visibility:=reexport,
  org.eclipse.jface.databinding;bundle-version="1.6.200";visibility:=reexport,
  org.eclipse.jface.text;bundle-version="3.9.2";visibility:=reexport
-Export-Package: org.txm.synopticedition.rcp.editors,org.txm.synopticed
- ition.rcp.editors.ext,org.txm.synopticedition.rcp.handlers,org.txm.sy
- nopticedition.rcp.messages,org.txm.synopticedition.rcp.preferences
+Export-Package: org.txm.edition.rcp.editors,
+ org.txm.edition.rcp.editors.ext,
+ org.txm.edition.rcp.handlers,
+ org.txm.edition.rcp.messages,
+ org.txm.edition.rcp.preferences
 Bundle-Vendor: Textometrie.org
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: SynopticEditor
+Bundle-Name: org.txm.edition.rcp
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.txm.synopticeditor.rcp;singleton:=true
+Bundle-SymbolicName: org.txm.edition.rcp;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 
Index: tmp/org.txm.synopticeditor.rcp/schema/org.txm.synopticedition.rcp.editors.ext.ToolbarButton.exsd
===================================================================
--- tmp/org.txm.synopticeditor.rcp/schema/org.txm.synopticedition.rcp.editors.ext.ToolbarButton.exsd	(revision 835)
+++ tmp/org.txm.synopticeditor.rcp/schema/org.txm.synopticedition.rcp.editors.ext.ToolbarButton.exsd	(revision 836)
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.txm.synopticeditor.rcp" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.txm.synopticeditor.rcp" id="org.txm.synopticedition.rcp.editors.ext.ToolbarButton" name="Synoptic Editor bottom button"/>
-      </appinfo>
-      <documentation>
-         Add a button in the SynapticEditor bottom toolbar
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <choice minOccurs="1" maxOccurs="unbounded">
-            <element ref="Button"/>
-         </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="Button">
-      <complexType>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.txm.synopticedition.rcp.editors.ext.ToolbarButton:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         TXM 0.7.8
-      </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>
Index: tmp/org.txm.synopticeditor.rcp/schema/org.txm.edition.rcp.editors.ext.ToolbarButton.exsd
===================================================================
--- tmp/org.txm.synopticeditor.rcp/schema/org.txm.edition.rcp.editors.ext.ToolbarButton.exsd	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/schema/org.txm.edition.rcp.editors.ext.ToolbarButton.exsd	(revision 836)
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.txm.edition.rcp" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.txm.edition.rcp" id="org.txm.edition.rcp.editors.ext.ToolbarButton" name="Synoptic Editor bottom button"/>
+      </appinfo>
+      <documentation>
+         Add a button in the SynapticEditor bottom toolbar
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <choice minOccurs="1" maxOccurs="unbounded">
+            <element ref="Button"/>
+         </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="Button">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.txm.edition.rcp.editors.ext.ToolbarButton:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         TXM 0.8.0
+      </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.synopticeditor.rcp/schema/org.txm.edition.rcp.editors.ext.ToolbarButton.exsd
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.synopticeditor.rcp/.project
===================================================================
--- tmp/org.txm.synopticeditor.rcp/.project	(revision 835)
+++ tmp/org.txm.synopticeditor.rcp/.project	(revision 836)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.txm.synopticeditor.rcp</name>
+	<name>org.txm.edition.rcp</name>
 	<comment></comment>
 	<projects>
 	</projects>
Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages_fr.properties
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages_fr.properties	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages_fr.properties	(revision 836)
@@ -0,0 +1,37 @@
+
+BackToText_0 = Ouverture avec la première édition (pas de défaut) : 
+BackToText_1 = Abandon : la sélection courante n'est pas une ligne de concordance : 
+BackToText_2 = Abandon : erreur de sélection
+BackToText_3 = Abandon : erreur pendant la récupération des identifiants de mot.
+BackToText_4 = Pas d'édition disponible.
+BackToText_5 = Ouverture de l'édition par défaut : 
+
+EditionPanel_0 = Pas d'édition trouvée pour le texte : 
+EditionPanel_1 = échec de la récupération de la première page d'édition
+EditionPanel_2 = \ pour le texte  
+EditionPanel_5 = \ édition=
+EditionPanel_6 = Pas d'édition nommée   
+EditionPanel_7 = \ disponible pour le texte  
+
+EditionSelectorDialog_0 = éditions
+EditionSelectorDialog_1 = Sélectionner une ou plusieurs éditions.
+
+OpenEdition_0  = Ouverture avec la première édition (pas de défaut) : 
+OpenEdition_1  = Pas d'édition disponible.
+OpenEdition_10 = Erreur lors de l'ouverture de l'éditeur : 
+OpenEdition_3  = Ouverture de l'édition par défaut : 
+OpenEdition_4  = Erreur lors de l''ouverture de l'édition : 
+OpenEdition_7  = \ dans le corpus
+OpenEdition_9  = Abandon : la sélection n'est pas un corpus
+
+SynopticEditionEditor_0  = Premier texte du corpus
+SynopticEditionEditor_1  = Texte précédent
+SynopticEditionEditor_10 = Texte suivant
+SynopticEditionEditor_11 = Dernier texte du corpus
+SynopticEditionEditor_3  = Première page du texte
+SynopticEditionEditor_4  = Page précédente
+SynopticEditionEditor_5  = Pas d'édition trouvée 
+SynopticEditionEditor_6  = Erreur lors de la récupération des éditions disponibles : 
+SynopticEditionEditor_7  = Page suivante
+SynopticEditionEditor_8  = Dernière page du texte
+SynopticEditionEditor_9  = Attention: échec de la récupération de l'édition  

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/SynopticEditionUIMessages.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/SynopticEditionUIMessages.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/SynopticEditionUIMessages.java	(revision 836)
@@ -0,0 +1,48 @@
+package org.txm.edition.rcp.messages;
+
+import org.eclipse.osgi.util.NLS;
+import org.txm.utils.messages.Utf8NLS;
+
+public class SynopticEditionUIMessages extends NLS {
+	
+	public static String BackToText_0;
+	public static String BackToText_1;
+	public static String BackToText_2;
+	public static String BackToText_3;
+	public static String BackToText_4;
+	public static String BackToText_5;
+	public static String EditionPanel_0;
+	public static String EditionPanel_1;
+	public static String EditionPanel_2;
+	public static String EditionPanel_5;
+	public static String EditionPanel_6;
+	public static String EditionPanel_7;
+	public static String EditionSelectorDialog_0;
+	public static String EditionSelectorDialog_1;
+	public static String OpenEdition_0;
+	public static String OpenEdition_1;
+	public static String OpenEdition_10;
+	public static String OpenEdition_3;
+	public static String OpenEdition_4;
+	public static String OpenEdition_7;
+	public static String OpenEdition_9;
+	public static String SynopticEditionEditor_0;
+	public static String SynopticEditionEditor_1;
+	public static String SynopticEditionEditor_10;
+	public static String SynopticEditionEditor_11;
+	public static String SynopticEditionEditor_3;
+	public static String SynopticEditionEditor_4;
+	public static String SynopticEditionEditor_5;
+	public static String SynopticEditionEditor_6;
+	public static String SynopticEditionEditor_7;
+	public static String SynopticEditionEditor_8;
+	public static String SynopticEditionEditor_9;
+	
+	static {
+		// initialize resource bundle
+		Utf8NLS.initializeMessages(SynopticEditionUIMessages.class);
+	}
+
+	private SynopticEditionUIMessages() {
+	}
+}

Property changes on: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/SynopticEditionUIMessages.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages.properties
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages.properties	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/messages/messages.properties	(revision 836)
@@ -0,0 +1,37 @@
+
+BackToText_0 = Opening with first edition (no default edition set): 
+BackToText_1 = Aborting: selection is not a concordance line: 
+BackToText_2 = Aborting: error during selection.
+BackToText_3 = Error: could not retrieve line word ids. Aborting back to text.
+BackToText_4 = No edition to open.
+BackToText_5 = Opening default editions: 
+
+EditionPanel_0 = No edition found for text=
+EditionPanel_1 = Fail to retrieve first page of edition 
+EditionPanel_2 = \ and text 
+EditionPanel_5 = \ edition=
+EditionPanel_6 = No edition with name 
+EditionPanel_7 = \ available for text 
+
+EditionSelectorDialog_0 = Editions
+EditionSelectorDialog_1 = Select one or more editions
+
+OpenEdition_0  = Opening with first edition (no default edition set): 
+OpenEdition_1  = No edition to open.
+OpenEdition_10 = Error while opening editor: 
+OpenEdition_3  = Opening default editions: 
+OpenEdition_4  = Error while opening edition: 
+OpenEdition_7  = \ in the corpus
+OpenEdition_9  = Aborting: selection is not a corpus
+
+SynopticEditionEditor_0  = First text of the corpus
+SynopticEditionEditor_1  = Previous text
+SynopticEditionEditor_10 = Next text
+SynopticEditionEditor_11 = Last text of the corpus
+SynopticEditionEditor_3  = First page of the text
+SynopticEditionEditor_4  = Previous page
+SynopticEditionEditor_5  = No edition found
+SynopticEditionEditor_6  = Error while getting available editions: 
+SynopticEditionEditor_7  = Next page
+SynopticEditionEditor_8  = Last page of the text
+SynopticEditionEditor_9  = Warning: could not find edition for name: 

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 836)
@@ -0,0 +1,1209 @@
+package org.txm.edition.rcp.editors;
+
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.logging.Level;
+
+import org.eclipse.core.commands.Command;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.IParameter;
+import org.eclipse.core.commands.NotEnabledException;
+import org.eclipse.core.commands.NotHandledException;
+import org.eclipse.core.commands.Parameterization;
+import org.eclipse.core.commands.ParameterizedCommand;
+import org.eclipse.core.commands.common.NotDefinedException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Platform;
+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.BrowserFunction;
+import org.eclipse.swt.browser.ProgressEvent;
+import org.eclipse.swt.browser.ProgressListener;
+import org.eclipse.swt.events.MenuEvent;
+import org.eclipse.swt.events.MenuListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommandService;
+import org.eclipse.ui.handlers.IHandlerService;
+import org.eclipse.ui.internal.browser.BrowserViewer;
+import org.osgi.framework.Bundle;
+import org.txm.core.preferences.TXMPreferences;
+import org.txm.edition.rcp.messages.SynopticEditionUIMessages;
+import org.txm.edition.rcp.preferences.SynopticEditionPreferencePage;
+import org.txm.edition.rcp.preferences.SynopticEditionPreferences;
+import org.txm.objects.Corpus;
+import org.txm.objects.Edition;
+import org.txm.objects.Page;
+import org.txm.objects.Text;
+import org.txm.rcp.StatusLine;
+import org.txm.rcp.utils.IOClipboard;
+import org.txm.utils.io.IOUtils;
+import org.txm.utils.logger.Log;
+
+public class EditionPanel extends BrowserViewer implements ISelectionProvider {
+
+	
+	private ProgressListener progresslistener;
+	//	private List<String> wordids;
+	//	private List<String> lineids;
+	/** The edition. */
+	Text currentText;
+	Edition currentEdition;
+	Page currentPage;
+	protected SynopticEditionEditor synopticEditionEditor;
+	private ISelectionProvider selProvider;
+	private MenuManager menuManager;
+
+	private HashSet<int[]> highlightedAreas = null;
+
+	//HashMap<String, ArrayList<RGBA>> highlightedColorSpans = new HashMap<String, ArrayList<RGBA>>(); // background color
+
+	HashMap<String, ArrayList<RGBA>> highlightedColorPerWordIDS = new HashMap<String, ArrayList<RGBA>>(); // background color
+	public static final String STYLE_NORMAL = "normal";
+	public static final String STYLE_ITALIC = "italic";
+	public static final String STYLE_OBLIQUE = "oblique";
+	HashMap<String, String> fontStylePerWordIDS = new HashMap<String, String>();
+	public static final String WEIGHT_NORMAL = "normal";
+	public static final String WEIGHT_BOLD = "bold";
+	HashMap<String, String> fontWeightPerWordIDS = new HashMap<String, String>();
+	HashMap<String, ArrayList<RGBA>> fontColorPerWordIDS = new HashMap<String, ArrayList<RGBA>>();
+	public static final String SIZE_SMALL = "small";
+	public static final String SIZE_MEDIUM = "medium";
+	public static final String SIZE_LARGE = "larger";
+	public static final String SIZE_SMALLER = "smaller";
+	public static final String SIZE_LARGER = "larger";
+	HashMap<String, String> fontSizePerWordIDS = new HashMap<String, String>();
+	public static final String FAMILLY_TIMES = "\"Times New Roman\", Times";
+	public static final String FAMILLY_ARIAL = "Arial";
+	public static final String FAMILLY_COURIER = "\"Courier New\", Courier";
+	HashMap<String, String> fontFamillyPerWordIDS = new HashMap<String, String>();
+	public static final String VARIANT_NORMAL = "normal";
+	public static final String VARIANT_SMALLCAPS = "small-caps";
+	HashMap<String, String> fontVariantPerWordIDS = new HashMap<String, String>();
+	String focusedWordID = null;
+
+	public static final String highlightscript = "try { var elt = document.getElementById(\"%s\");" + //$NON-NLS-1$ //$NON-NLS-2$
+			"elt.style.backgroundColor=\"rgb(%s,%s,%s)\";" + //$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$
+	public static final String highlightscriptRuleFast = "sheet.insertRule(\"#%s {background-color:rgba(%s,%s,%s,%s);}\", 0);";
+	public static final String colorscriptRuleFast = "sheet.insertRule(\"#%s {color:rgba(%s,%s,%s,%s);}\", 0);";
+	public static final String sizescriptRuleFast = "sheet.insertRule(\"#%s {font-size:%s;}\", 0);";
+	public static final String stylescriptRuleFast = "sheet.insertRule(\"#%s {font-style:%s;}\", 0);";
+	public static final String variantscriptRuleFast = "sheet.insertRule(\"#%s {font-variant:%s;}\", 0);";
+	public static final String famillyscriptRuleFast = "sheet.insertRule(\"#%s {font-familly:%s;}\", 0);";
+	public static final String weightscriptRuleFast = "sheet.insertRule(\"#%s {font-weight:%s;}\", 0);";
+
+	public static final String highlightscriptRule = "sheet.insertRule(\"span[id=\\\"%s\\\"] {background-color:rgba(%s,%s,%s,%s); }\", 0);";
+
+	public static final String clearhighlightscript = "try { var elt = document.getElementById(\"%s\"); elt.style.backgroundColor=\"white\";elt.style.fontWeight=\"\";" + //$NON-NLS-1$
+			"} catch (e) { };"; //$NON-NLS-1$
+
+	public String functions = 
+			""//"alert(\"loading functions\");"
+					+"\nfunction getNodeText(node) {"
+					+"\n	if (typeof node == 'string') return node;"
+					+"\n	else if (typeof  node.innerText != 'undefined') return node.innerText;"
+					+"\n	else if (typeof  node.InnerText != 'undefined') return node.InnerText;"
+					+"\n	else if (typeof  node.textContent != 'undefined') return node.textContent;"
+					+"\n	else return null;"
+					+"\n}"
+					+"\nfunction txmGetParent(node) {"
+					+"\n	if (typeof  node.parentNode != 'undefined') return node.parentNode;"
+					+"\n	else return null;"
+					+"\n}"
+					+"\nfunction txmGetChildren(node) {"
+					+"\n	if (typeof node == 'string') return 'STRING HTML';"
+					+"\n	else if (typeof  node.children != 'undefined') return node.children;"
+					+"\n	else if (typeof  node.ChildNodes != 'undefined') return node.ChildNodes;"
+					+"\n	else if (typeof  node.childNodes != 'undefined') return node.childNodes;"
+					+"\n	else return null;"
+					+"\n}"
+					+"\nfunction txmGetSelection() {"
+					+"\n	if (typeof window.getSelection != 'undefined') {return window.getSelection();}"
+					+"\n	else if (typeof document.selection != 'undefined') { return document.selection;}"
+					+"\n	else return 'NO SELECTION';"
+					+"\n}"
+					+"\nfunction txmGetRangeSize(selection) {"
+					+"\n	if (typeof selection.rangeCount != 'undefined') {return selection.rangeCount;}"
+					+"\n	else if (typeof selection.createRangeCollection != 'undefined') { return selection.createRangeCollection().length();} // IE5 has no multiple selection"
+					+"\n}"
+					+"\nfunction txmGetRange(selection, i) {"
+					+"\n	if (typeof selection.getRangeAt != 'undefined') {return selection.getRangeAt(i);}"
+					+"\n	else if (typeof selection.createRangeCollection != 'undefined') {return selection.createRangeCollection().item(i);}" // IE > IE5 
+					+"\n	else if (typeof selection.createRange != 'undefined') { return selection.createRange();} // IE5 has no multiple selection"
+					+"\n	else return 'NO RANGE';"
+					+"\n}"
+					+"\nfunction txmGetParentElementRange(range) {"
+					+"\n	if (typeof range.parentElement != 'undefined') {return range.parentElement();}"
+					+"\n	else if (typeof range.startContainer != 'undefined') { return range.startContainer.parentNode;}"
+					+"\n	else return 'NO PARENT';"
+					+"\n}"
+					+"\nfunction txmGetFragment(range) {"
+					+"\n	if (typeof range.cloneContents != 'undefined') { return range.cloneContents();}"
+					+"\n	else if (typeof range.htmlText != 'undefined') {var node = document.createElement('sel'); node.innerHTML = range.htmlText; 		return node;"
+					+"\n	} else return 'NO FRAG';"
+					+"\n}"
+					+"\nfunction txmGetTagName(node) {"
+					+"\n	if (typeof node.tagName != 'undefined') {return node.tagName;}"
+					+"\n	else if (typeof node.nodeName != 'undefined') { return node.nodeName;}"
+					+"\n	else if (typeof node.name != 'undefined') { return node.name;}"
+					+"\n	else return 'NO TAGNAME';"
+					+"\n}"
+					+"\nfunction findSpans(children, all) {"
+					+"\n    for (var i = 0 ; i < children.length ; i++) {"
+					+"\n    	var node = children.item(i);"
+					+"\n		if (node.nodeType == 1) {"
+					+"\n    	var id = node.getAttribute('id');"
+					+"\n       		if (node.tagName == 'SPAN' && id != null && id.indexOf('w_') == 0 && getNodeText(node).length > 0) {"
+					+"\n            	if (id != null) all.push(id);"
+					+"\n        	} else {"
+					+"\n        		findSpans(txmGetChildren(node), all)"
+					+"\n        	}"
+					+"\n		}"
+					+"\n	}"
+					+"\n}"
+					+"\nfunction findIdsInString(str, all) {"
+					+"\n    for (var i = 0 ; i < children.length ; i++) {"
+					+"\n    	var node = children.item(i);"
+					+"\n		if (node.nodeType == 1) {"
+					+"\n    	var id = node.getAttribute('id');"
+					+"\n       		if (node.tagName == 'SPAN' && id != null && id.indexOf('w_') == 0 && getNodeText(node).length > 0) {"
+					+"\n            	if (id != null) all.push(id);"
+					+"\n        	} else {"
+					+"\n        		findSpans(txmGetChildren(node), all)"
+					+"\n        	}"
+					+"\n		}"
+					+"\n	}"
+					+"\n}"
+					+"\nfunction get_type(thing){if(thing===null)return \"[object Null]\";  return Object.prototype.toString.call(thing);}\n"
+					+"\nfunction getDetailedObject(inputObject) { var detailedObject = {}; var properties; \n   do {        properties = Object.getOwnPropertyNames( inputObject );        for (var o in properties) {detailedObject[properties[o]] = inputObject[properties[o]];}} while ( inputObject = Object.getPrototypeOf(inputObject) );return detailedObject;}\n"
+					+"\nvar sheet = null;"
+					+"\ntry{"
+					+"\n	var style = document.createElement(\"style\");"
+					+"\n	style.appendChild(document.createTextNode(\"\"));"//webkit hack
+					+"\n	document.head.appendChild(style);"
+					+"\n	sheet = style.sheet;"
+					+"\n} catch(e) {sheet='error'}"
+					+"\ntry{"
+					+"\n" // define scrollIntoViewIfNeeded if absent
+					+"\nif (!Element.prototype.scrollIntoViewIfNeeded) {"
+					+"\n	Element.prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {"
+					+"\n		centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;"
+					+"\n		var parent = this.parentNode,"
+					+"\n		parentComputedStyle = window.getComputedStyle(parent, null),"
+					+"\n		parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width')),"
+					+"\n		parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width')),"
+					+"\n		overTop = this.offsetTop - parent.offsetTop < parent.scrollTop,"
+					+"\n		overBottom = (this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth) > (parent.scrollTop + parent.clientHeight),"
+					+"\n		overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft,"
+					+"\n		overRight = (this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth) > (parent.scrollLeft + parent.clientWidth),"
+					+"\n		alignWithTop = overTop && !overBottom;"
+					+"\n		if ((overTop || overBottom) && centerIfNeeded) {"
+					+"\n			parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;"
+					+"\n		}"
+					+"\n		if ((overLeft || overRight) && centerIfNeeded) {"
+					+"\n			parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;"
+					+"\n		}"
+					+"\n		if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {"
+					+"\n			this.scrollIntoView(alignWithTop);"
+					+"\n		}"
+					+"\n	};"
+					+"\n}"
+					+"\n} catch(e) {Element.prototype.scrollIntoViewIfNeeded = Element.prototype.scrollIntoView}";
+	protected boolean fastWordHighLight = TXMPreferences.getBoolean(SynopticEditionPreferences.FAST_HIGHLIGHT, SynopticEditionPreferences.PREFERENCES_NODE);
+
+	public Object evaluate(String code) {
+		if (Log.getLevel().intValue() <= Level.FINEST.intValue()) System.out.println(code);
+		return getBrowser().evaluate(code);
+	}
+	public Object execute(String code) {
+		if (Log.getLevel().intValue() <= Level.FINEST.intValue()) System.out.println(code);
+		return getBrowser().execute(code);
+	}
+	public EditionPanel(SynopticEditionEditor synopticEditionEditor, Composite parent, int style, Edition edition) {
+		super(parent, style);
+		this.synopticEditionEditor = synopticEditionEditor;
+		this.currentEdition = edition;
+		this.currentText = currentEdition.getText();
+
+		File functionsFile = null;
+		try {
+
+			Bundle bundle = Platform.getBundle("org.txm.edition.rcp");
+			URL fileURL = bundle.getEntry("res/js/functions.js");
+			URL r = FileLocator.resolve(fileURL);
+			Log.info("Load JS functions from: "+r);
+			functions = IOUtils.getText(r, "UTF-8");
+
+		} catch (Exception e) {
+			System.out.println("Error while reading "+functionsFile+": "+e.getLocalizedMessage());
+			Log.printStackTrace(e);
+		}
+
+		progresslistener = new ProgressListener() {
+
+			@Override
+			public void changed(ProgressEvent event) { }
+
+			@Override
+			public void completed(ProgressEvent event) {
+				//				System.out.println("EditionPanel "+currentEdition.getName()+" reload "+getCurrentPage().getName());
+				Object rez = evaluate("return typeof sheet");
+				if ("undefined".equals(rez)) execute(functions); // build the sheet if not present in the HTML DOM
+
+				//System.out.println("highlight: "+highlightedColorPerWordIDS);
+				StringBuilder buffer = new StringBuilder();
+				//buffer.append("alert(\"\"+sheet);\n");
+				if (!fastWordHighLight) {
+					//					for (String wordid : highlightedColorPerWordIDS.keySet()) {
+					//						buffer.append(String.format(clearhighlightscript, wordid)+"\n");
+					//					}
+				} else {
+					buffer.append("try { while(sheet.cssRules.length > 0) sheet.deleteRule(0); } catch (e) {};\n"); // empty style
+				}
+
+				if (buffer.length() > 0) execute(buffer.toString());
+				buffer = new StringBuilder();
+
+				String firstWord = currentPage.getWordId();
+				Page nextPage = currentEdition.getNextPage(currentPage);
+				String lastWord = "w_999999999";
+				if (nextPage != null && currentPage != nextPage) lastWord = nextPage.getWordId();
+				//System.out.println("firstWord="+firstWord+" lastWord="+lastWord);
+				//int n = 0;
+				//long start = System.currentTimeMillis();
+				//System.out.println(highlightedColorPerWordIDS);
+				for (String wordid : highlightedColorPerWordIDS.keySet()) {
+					if (highlightedColorPerWordIDS.get(wordid).size() == 0) continue; // error
+
+					//if (!slowWordHighLight) { //TODO: this code must be replaced with word position instead of word id comparaison
+					if (Edition.isFirstGTthanSecond(wordid, firstWord) < 0) continue; // skip the word to highlight
+					if (Edition.isFirstGTthanSecond(lastWord, wordid) < 0) continue; // skip the word to highlight
+					//}
+					//n++;
+					RGBA composite = new RGBA(0,0,0,0f);
+					int size = highlightedColorPerWordIDS.get(wordid).size();
+
+					for (RGBA color : highlightedColorPerWordIDS.get(wordid)) {
+						composite.r += color.r;
+						composite.g += color.g;
+						composite.b += color.b;
+						composite.a += color.a;
+					}
+
+					composite.r /= size;
+					composite.g /= size;
+					composite.b /= size;
+
+					String s = null;
+					if (!fastWordHighLight) {
+						//s = String.format(highlightscriptRule, wordid, composite.r, composite.g, composite.b, composite.a);
+						s = "try { document.getElementById(\"" + wordid + "\").style.backgroundColor=\"rgba("+composite.r+","+composite.g+","+composite.b+","+composite.a+")\";" //$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$
+					} else {
+						//TODO: replace this line with the next one for TXM 0.7.9
+						s = String.format(highlightscriptRuleFast, wordid.replace(" ", "\\ "), composite.r, composite.g, composite.b, composite.a);
+						//						s = String.format(highlightscriptRuleFast, wordid, composite.r, composite.g, composite.b, composite.a);
+					}
+
+					buffer.append(s+"\n");
+				}
+
+				if (buffer.length() > 0) execute(buffer.toString());
+				buffer = new StringBuilder();
+
+				//				for (String wordidslist : highlightedColorSpans.keySet()) {
+				//					RGBA composite = new RGBA(0,0,0,0f);
+				//					int size = highlightedColorSpans.get(wordidslist).size();
+				//					
+				//					for (RGBA color : highlightedColorSpans.get(wordidslist)) {
+				//						composite.r += color.r;
+				//						composite.g += color.g;
+				//						composite.b += color.b;
+				//						composite.a += color.a;
+				//					}
+				//					
+				//					composite.r /= size;
+				//					composite.g /= size;
+				//					composite.b /= size;
+				//					
+				//					String cmd = "var l = "+wordidslist+";\n";
+				//					cmd += "wrap(l, \""+wordidslist+"\";\n";
+				//					buffer.append(cmd+"\n");
+				//				}
+
+				for (String wordid : fontColorPerWordIDS.keySet()) {
+					RGBA composite = new RGBA(0,0,0,0f);
+					int size = fontColorPerWordIDS.get(wordid).size();
+
+					for (RGBA color : fontColorPerWordIDS.get(wordid)) {
+						composite.r += color.r;
+						composite.g += color.g;
+						composite.b += color.b;
+						composite.a += color.a;
+					}
+
+					composite.r /= size;
+					composite.g /= size;
+					composite.b /= size;
+
+					String s = String.format(colorscriptRuleFast, wordid, composite.r, composite.g, composite.b, composite.a);
+					buffer.append(s+"\n");
+				}
+
+				if (buffer.length() > 0) execute(buffer.toString());
+				buffer = new StringBuilder();
+
+				for (String wordid : fontSizePerWordIDS.keySet()) {
+					String s = String.format(sizescriptRuleFast, wordid, fontSizePerWordIDS.get(wordid));
+					buffer.append(s+"\n");
+				}
+
+				for (String wordid : fontWeightPerWordIDS.keySet()) {
+					String s = null;
+					if (!fastWordHighLight) {
+						//s = String.format(highlightscriptRule, wordid, composite.r, composite.g, composite.b, composite.a);
+						s = "try { document.getElementById(\"" + wordid + "\").style.fontWeight=\""+fontWeightPerWordIDS.get(wordid)+"\";" //$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$
+						//s = String.format(highlightscriptRule, wordid, composite.r, composite.g, composite.b, composite.a);
+						//						s = "try { var elt = document.getElementById(\"" + wordid + "\");" + //$NON-NLS-1$ //$NON-NLS-2$
+						//								"elt.style.fontWeight=\""+fontWeightPerWordIDS.get(wordid)+"\";" + //$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$
+					} else {
+						s = String.format(weightscriptRuleFast, wordid, fontWeightPerWordIDS.get(wordid));
+					}
+					buffer.append(s+"\n");
+				}
+
+				for (String wordid : fontFamillyPerWordIDS.keySet()) {
+					String s = String.format(famillyscriptRuleFast, wordid, fontFamillyPerWordIDS.get(wordid));
+					buffer.append(s+"\n");
+				}
+
+				if (buffer.length() > 0) execute(buffer.toString());
+				buffer = new StringBuilder();
+
+				if (focusedWordID != null) {
+					//System.out.println("Focus on: "+focusedWordID);
+					String s = "try { showElementIfNeeded(document.getElementById(\"" + focusedWordID + "\")); } catch (e) {document.getElementById(\"" + focusedWordID + "\").scrollIntoView();};"; //$NON-NLS-1$ //$NON-NLS-2$
+					buffer.append(s+"\n");
+					focusedWordID = null; // focus one time
+				}
+
+				if (buffer.length() > 0) execute(buffer.toString());
+				buffer = new StringBuilder();
+
+				if (highlightedAreas != null) {
+					for (int[] pos : highlightedAreas ) {
+						if (pos == null || pos.length != 4) continue;
+						String s = "try {v.setFocusOn("+pos[0]+", "+pos[1]+", "+pos[2]+", "+pos[3]+");} catch (e) { };"; //$NON-NLS-1$
+						buffer.append(s+"\n");
+						break;// one word only for now
+					}
+				}
+
+				//System.out.println(buffer);
+				if (buffer.length() > 0) execute(buffer.toString());
+				//System.out.println("n="+n+" time="+(System.currentTimeMillis()-start));
+			}
+		};
+		getBrowser().addProgressListener(progresslistener);
+		new CommandLink (getBrowser());
+	}
+
+	/**
+	 * Bypass BrowserViewer restriction on the getBrowser method
+	 */
+	public Browser getBrowser() {
+		return super.getBrowser();
+	}
+
+	/**
+	 * Bypass BrowserViewer restriction on the getBrowser method
+	 */
+	public String getDOM() {
+		return "";//execute("return document.innerHTML";
+	}
+
+	public ISelectionProvider getSelectionProvider() {
+		return selProvider;
+	}
+
+	public void setHighlightWordsById(RGBA color, HashSet<String> wordids) {
+		for (String wordid : wordids) {
+			if (this.highlightedColorPerWordIDS.get(wordid) != null) {
+				removeHighlightWordsById(color, wordid);
+			}
+			ArrayList<RGBA> hs = new ArrayList<RGBA>();
+			this.highlightedColorPerWordIDS.put(wordid, hs);
+			hs.add(color);
+		}
+	}
+
+	public void addHighlightWordsById(RGBA color, String wordid) {
+		if (!this.highlightedColorPerWordIDS.containsKey(wordid)) {
+			this.highlightedColorPerWordIDS.put(wordid, new ArrayList<RGBA>());
+		}
+		this.highlightedColorPerWordIDS.get(wordid).add(color);
+	}
+
+	/**
+	 * Can be called to refresh the page word styles but only when the page is loaded
+	 */
+	public void updateWordStyles() {
+		progresslistener.completed(null);
+	}
+
+	public void addHighlightWordsById(RGBA color, Collection<String> wordids) {
+		for (String wordid : wordids) {
+			addHighlightWordsById(color, wordid);
+		}
+	}
+
+	public void removeHighlightWordsById(RGBA color, Collection<String> wordids) {
+		//System.out.println("Call removeHighlightWordsById: "+wordids+" color="+color);
+		StringBuffer buffer = new StringBuffer();
+		for (String wordid : wordids) {
+			removeHighlightWordsById(color, wordid);
+			if (!fastWordHighLight) {
+				buffer.append(String.format(clearhighlightscript, wordid)+"\n");
+			}
+		}
+
+		if (buffer.length() > 0) execute(buffer.toString());
+	}
+
+	public void removeHighlightWordsById(RGBA color, String wordid) {
+		if (highlightedColorPerWordIDS.get(wordid) == null) return; // nothing to do
+
+		//System.out.println("remove color="+color+" from id="+wordid);
+		this.highlightedColorPerWordIDS.get(wordid).remove(color);
+
+		if (this.highlightedColorPerWordIDS.get(wordid).size() == 0) {
+			this.highlightedColorPerWordIDS.remove(wordid);
+		}
+	}
+
+	/**
+	 * Open the page containing the word with ID=$line_wordid
+	 * @param line_wordid
+	 * @return true if the page changed
+	 */
+	public boolean backToText(Text text, String line_wordid) {
+
+		String name = currentEdition.getName();
+		Edition edition = text.getEdition(name);
+
+		if (edition == null) {
+			String s = SynopticEditionUIMessages.EditionPanel_0+text+SynopticEditionUIMessages.EditionPanel_5+name;
+			System.out.println(s);
+			StatusLine.setMessage(s);
+			Log.severe(s);
+		} else {
+			Page openedPage = edition.getPageForWordId(line_wordid);
+			if (openedPage != null && openedPage != currentPage) {
+				this.showPage(openedPage);
+				return true;
+			}
+		}
+		updateWordStyles(); // update styles if any new one
+		return false;
+	}
+
+	/**
+	 * First page.
+	 */
+	public void firstPage() {
+		// System.out.println(Messages.TxmBrowser_1+currentPage);
+		currentPage = currentEdition.getFirstPage();
+		currentText = currentEdition.getText();
+		if (currentPage == null) {
+			System.out.println(SynopticEditionUIMessages.EditionPanel_1+currentEdition.getName()+SynopticEditionUIMessages.EditionPanel_2+currentText.getName());
+		}
+
+		this.setURL(currentPage.toURL());
+
+		//page_label.setText(makePageLabel());
+	}
+
+	public void setURL(String url) {
+		super.setURL(url);
+	}
+
+	/**
+	 * Last page.
+	 */
+	public void lastPage() {
+		// System.out.println(Messages.TxmBrowser_2+currentPage);
+
+		if (currentPage != null && currentPage.getFile().equals(currentEdition.getLastPage()))
+			return;
+		currentPage = currentEdition.getLastPage();
+		currentText = currentEdition.getText();
+		this.setURL(currentPage.toURL());
+	}
+
+	/**
+	 * Previous page.
+	 */
+	public void previousPage() {
+		// System.out.println(Messages.TxmBrowser_3+currentPage);
+		if (currentPage != null) {
+			Page previous = currentEdition.getPreviousPage(currentPage);
+
+			if (previous == currentPage) {
+				previousText(true);
+			} else {
+				currentPage = previous;
+				this.setURL(currentPage.toURL());
+			}
+			currentText = currentEdition.getText();
+		} else
+			firstPage();
+		//page_label.setText(makePageLabel());
+	}
+
+
+
+	/**
+	 * Next page.
+	 */
+	public void nextPage() {
+		// System.out.println(Messages.TxmBrowser_4+currentPage);
+		if (currentPage != null) {
+			Page next = currentEdition.getNextPage(currentPage);
+			if (next == currentPage) {
+				nextText();
+			} else {
+				currentPage = next;
+				this.setURL(currentPage.toURL());
+			}
+			currentText = currentEdition.getText();
+		} else
+			firstPage();
+		//page_label.setText(makePageLabel());
+	}
+
+
+	public void firstText() {
+		//Text current = this.currentPage.getEdition().getText();
+		Corpus corpus = currentText.getCorpus();
+		Text firstText = corpus.getFirstText();
+
+		if (firstText != null) {
+			String editionName = currentEdition.getName();
+			Edition tmp = firstText.getEdition(editionName);
+			if (tmp == null) {
+				System.out.println(SynopticEditionUIMessages.EditionPanel_6+editionName+SynopticEditionUIMessages.EditionPanel_7+firstText.getName());
+				return;
+			}
+			currentEdition = tmp;
+			currentPage = currentEdition.getFirstPage(); 
+			currentText = firstText;
+			if (currentPage == null) {
+				StatusLine.setMessage("No previous text"); //$NON-NLS-1$
+				return;
+			}
+			this.setURL(currentPage.toURL());
+		}
+	}
+
+	/**
+	 * Next text.
+	 */
+	public void lastText() {
+		//Text current = this.currentPage.getEdition().getText();
+		Corpus b = currentText.getCorpus();
+		Text lastText = b.getLastText();
+
+		if (lastText != null) {
+			String editionName = currentEdition.getName();
+			Edition tmp = lastText.getEdition(editionName);
+			if (tmp == null) {
+				System.out.println(SynopticEditionUIMessages.EditionPanel_6+editionName+SynopticEditionUIMessages.EditionPanel_7+lastText.getName());
+				return;
+			}
+
+			currentEdition = tmp;
+			currentPage = currentEdition.getFirstPage(); 
+			currentText = lastText;
+			if (currentPage == null) {
+				StatusLine.setMessage("No text next"); //$NON-NLS-1$
+				return;
+			}
+
+			this.setURL(currentPage.toURL());
+			//page_label.setText(makePageLabel());
+		}
+		// System.out.println("Next texts "+nextText);
+	}
+
+	/**
+	 * Previous text.
+	 * @param fromNextText if true  it means the user was reading the next text and then we show the last page of the previous text
+	 */
+	public void previousText(boolean fromNextText) {
+
+		//Text current = this.currentPage.getEdition().getText();
+		Corpus corpus = currentText.getCorpus();
+		Text previousText = corpus.getPreviousText(currentText);
+
+		if (previousText != null) {
+			String editionName = currentEdition.getName();
+
+			Edition tmp = previousText.getEdition(editionName);
+			if (tmp == null) {
+				System.out.println(SynopticEditionUIMessages.EditionPanel_6+editionName+SynopticEditionUIMessages.EditionPanel_7+previousText.getName());
+			}
+			currentEdition = tmp;
+			currentText = previousText;
+			if (fromNextText) {
+				currentPage = currentEdition.getLastPage(); 
+			} else {
+				currentPage = currentEdition.getFirstPage(); 
+			}
+
+			if (currentPage == null) {
+				StatusLine.setMessage("No previous text"); //$NON-NLS-1$
+				return;
+			}
+			this.setURL(currentPage.toURL());
+		}
+		// System.out.println("Previous texts "+previousText);
+	}
+
+	/**
+	 * Next text.
+	 */
+	public void nextText() {
+		//Text current = this.currentPage.getEdition().getText();
+		Corpus b = currentText.getCorpus();
+		Text nextText = b.getNextText(currentText);
+
+		if (nextText != null) {
+			String editionName = currentEdition.getName();
+			Edition tmp = nextText.getEdition(editionName);
+			if (tmp == null) {
+				System.out.println(SynopticEditionUIMessages.EditionPanel_6+editionName+SynopticEditionUIMessages.EditionPanel_7+nextText.getName());
+				return;
+			}
+			currentEdition = tmp;
+
+			currentPage = currentEdition.getFirstPage(); 
+			currentText = nextText;
+			if (currentPage == null) {
+				StatusLine.setMessage("No text next"); //$NON-NLS-1$
+				return;
+			}
+
+			this.setURL(currentPage.toURL());
+			//page_label.setText(makePageLabel());
+		}
+		// System.out.println("Next texts "+nextText);
+	}
+
+
+	public void setText(Text text, boolean refresh) {
+		String editionName = currentEdition.getName();
+		Edition tmp = text.getEdition(editionName);
+		if (tmp == null) {
+			System.out.println(SynopticEditionUIMessages.EditionPanel_6+editionName+SynopticEditionUIMessages.EditionPanel_7+text.getName());
+			return;
+		}
+
+		currentEdition = tmp;
+		currentPage = currentEdition.getFirstPage(); 
+		currentText = text;
+		if (currentPage == null) {
+			StatusLine.setMessage("No text next"); //$NON-NLS-1$
+			return;
+		}
+
+		if (refresh) this.setURL(currentPage.toURL());
+		//page_label.setText(makePageLabel());
+	}
+
+	/**
+	 * Gets the current page.
+	 *
+	 * @return the current page
+	 */
+	public Page getCurrentPage() {
+		return currentPage;
+	}
+
+	/**
+	 * Gets the current text.
+	 *
+	 * @return the current page
+	 */
+	public Text getCurrentText() {
+		return currentText;
+	}
+
+	/**
+	 * 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) {
+		//System.out.println("SHOW PAGE "+page);
+		currentEdition = page.getEdition();
+		currentText = currentEdition.getText();
+		currentPage = page;
+		this.setURL(currentPage.toURL());
+	}
+
+	public void reloadPage() {
+		this.setURL(currentPage.toURL());
+	}
+
+	//	/**
+	//	 * Sets the edition.
+	//	 *
+	//	 * @param edition the new edition
+	//	 */
+	//	public void setEdition(Edition edition) {
+	//		this.currentEdition = edition;
+	//	}
+
+	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";
+
+	public String getTextSelectionDOM() {
+		return ((String) evaluate(SCRIPT01));
+	}
+
+	public String[] getWordSelection() {
+
+		//System.out.println("getWordSelection");
+		String SCRIPT02_getspans = ""//functions
+				+"var all = [];"
+				+"\nvar sel = txmGetSelection();"
+				+"\nif (sel.rangeCount == 0) {return all;}"
+				//+"\nalert('sel='+sel);"
+				+"\nvar range = txmGetRange(sel, 0);"
+				//+"\nalert('range='+range);"
+				+"\nvar frag = txmGetFragment(range);"
+				//+"\nalert('frag='+frag);"
+				+"\nvar children = txmGetChildren(frag);"
+				//+"\nalert('children='+children);"
+				//+"\nalert('children.length='+children.length);"
+				+"\nif ((children.length == 0) || (children.length == 1 && children.item(0).nodeType == 3)) {"
+				+"\n	var parent = txmGetParentElementRange(range);"
+				//+"\n	if (parent instanceof HTMLHtmlElement) {alert('HTMLHtmlElement parent='+parent);return findIdsInString(parent, all);}"
+				+"\n	if (typeof parent.getAttribute == 'undefined') {return all}"
+				+"\n	var id = parent.getAttribute('id');"
+				+"\n	var id = parent.getAttribute('id');"
+				+"\n	if (txmGetTagName(parent) == 'SPAN' && id != null && id.indexOf('w_') == 0) {"
+				+"\n		all.push(id);"
+				+"\n	} else {" // try with the parent's parent 
+				+"\n		var parent = txmGetParent(parent);"
+				//+"\n		alert('text selection, parent='+txmGetTagName(parent))"
+				+"\n	if (typeof parent.getAttribute == 'undefined') {return all}"
+				+"\n		var id = parent.getAttribute('id');"
+				+"\n		if (txmGetTagName(parent) == 'SPAN' && id != null && id.indexOf('w_') == 0) {"
+				+"\n			all.push(id);"
+				+"\n		}"
+				+"\n	}"
+				+"\n} else {"
+				+"\n	findSpans(children, all);"
+				+"\n}"
+				//+"alert('result='+all)"
+				+"\nreturn all;";
+
+		//		System.out.println(functions);
+		//		System.out.println(SCRIPT02_getspans);
+
+		Object ret = evaluate(SCRIPT02_getspans);
+		if (ret instanceof Object[]) {
+			Log.info("selection word ids="+Arrays.toString((Object[])ret));
+			Object[] array = (Object[])ret;
+			String[] sel = new String[2];
+			if (array.length == 0) {
+				return null;
+			} else if (array.length == 1) {
+				sel[0] = array[0].toString();
+				return sel;
+			} else {
+				sel[0] = array[0].toString();
+				sel[1] = array[array.length-1].toString();
+				return sel;
+			}
+		} else { 
+			System.out.println("SCRIPT RETURNED="+ret);
+			return null;
+		}
+	}
+
+	public String getTextSelection() {
+		//System.out.println("DOM="+getTextSelectionDOM());
+		String rez =  getTextSelectionDOM().replaceAll("<[^>]+>", "");
+		//System.out.println("STR="+rez);
+		return rez;
+	}
+
+	@Override
+	public void addSelectionChangedListener(ISelectionChangedListener listener) {	}
+
+	@Override
+	public ISelection getSelection() {
+		return new SynopticTextSelection(this);
+	}
+
+	@Override
+	public void removeSelectionChangedListener(
+			ISelectionChangedListener listener) {	}
+
+	@Override
+	public void setSelection(ISelection selection) {	}
+
+	static public class SynopticTextSelection implements ISelection  {
+		String str;
+		public SynopticTextSelection(EditionPanel panel) {
+			this.str = panel.getTextSelection();
+		}
+
+		@Override
+		public boolean isEmpty() {
+			return str != null && str.length() > 0;
+		}
+
+		public String getTextSelection() {
+			return str;
+		}
+	}
+
+	public Edition getEdition() {
+		return currentEdition;
+	}
+
+	public MenuManager getMenuManager() {	
+		return menuManager;
+	}
+
+	public void initMenu() {
+		// create a new menu	
+		menuManager = new MenuManager(); //$NON-NLS-1$
+
+		Menu menu = menuManager.createContextMenu(this.getBrowser());
+
+		menu.addMenuListener(new MenuListener() {
+
+			@Override
+			public void menuShown(MenuEvent e) {
+				Menu menu = menuManager.getMenu();
+				if (menu == null) return;
+				new MenuItem(menu, SWT.SEPARATOR);
+
+				MenuItem copyItem = new MenuItem(menu, SWT.NONE);
+				copyItem.setText("Copy text selection");
+				copyItem.addSelectionListener(new SelectionListener() {
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						String text = EditionPanel.this.getTextSelection();
+						if (text != null && text.length() > 0) {
+							IOClipboard.write(text);
+						}
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+				String text = EditionPanel.this.getTextSelection();
+				copyItem.setEnabled(text != null && text.length() > 0);
+
+				MenuItem reloadItem = new MenuItem(menu, SWT.NONE);
+				reloadItem.setText("Reload");
+				reloadItem.addSelectionListener(new SelectionListener() {
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						EditionPanel.this.getBrowser().refresh();
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+				MenuItem backItem = new MenuItem(menu, SWT.NONE);
+				backItem.setText("Back");
+				backItem.addSelectionListener(new SelectionListener() {
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						EditionPanel.this.getBrowser().back();
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+				MenuItem forwardItem = new MenuItem(menu, SWT.NONE);
+				forwardItem.setText("Forward");
+				forwardItem.addSelectionListener(new SelectionListener() {
+
+					@Override
+					public void widgetSelected(SelectionEvent e) {
+						EditionPanel.this.getBrowser().forward();
+					}
+
+					@Override
+					public void widgetDefaultSelected(SelectionEvent e) { }
+				});
+			}
+
+			@Override
+			public void menuHidden(MenuEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+		});
+		//		// restore old listeners
+		//		Menu origMenu = this.browser.getMenu();
+		//		if (origMenu != null) {
+		//			if (origMenu.getListeners(SWT.Hide) != null)
+		//				for (Listener listener : origMenu.getListeners(SWT.Hide)) menu.addListener(SWT.Hide, listener);
+		//			if (origMenu.getListeners(SWT.Show) != null)
+		//				for (Listener listener : origMenu.getListeners(SWT.Show)) menu.addListener(SWT.Show, listener);
+		//			for (MenuItem origItem : origMenu.getItems()) { // restore old menu items
+		//				MenuItem item = new MenuItem(menu, origItem.getStyle());
+		//				item.setText(origItem.getText());
+		//				item.setImage(origItem.getImage());
+		//				if (origItem.getListeners(SWT.Selection) != null && origItem.getListeners(SWT.Selection).length > 0)
+		//					item.addListener(SWT.Selection, origItem.getListeners(SWT.Selection)[0]);
+		//			}
+		//		}
+		// replace the menu
+		this.getBrowser().setMenu(menu); 
+	}
+
+	public void initSelectionProvider() {
+		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 EditionPanel.this.getTextSelection().length() == 0;}
+					@Override
+					public String getText() {return EditionPanel.this.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) { }
+		};
+	}
+
+
+
+	public void goToPage(String name) {
+
+		Page next = currentEdition.get(name);
+		// System.out.println(Messages.TxmBrowser_4+currentPage);
+		if (next != null) {
+			currentPage = next;
+			this.setURL(currentPage.toURL());
+		} else {
+			System.out.println("Page not found ("+name+").");
+		}
+	}
+
+	public void setFocusedWordID(String focusid) {
+		this.focusedWordID = focusid;
+	}
+
+	public void setHighlightedArea(HashSet<int[]> positions) {
+		Log.info("Highlight area: not implemented");
+	}
+
+	public void expandSelectionTo(String[] ids) {
+		// expand selection
+
+		if (ids.length == 0) return;
+		//TODO: enable the feature for Windows computers
+		//if (System.getProperty("os.name").toLowerCase().contains("windows")) return; 
+
+		//this.getBrowser().evaluate("alert('expand selection');");
+		//System.out.println("EXPAND SELECTION TO "+Arrays.toString(ids));
+		String id1 = ids[0];
+		String id2 = ids[1];
+		if (id2 == null) id2 = id1;
+		String SCRIPT02_expand = ""
+				+ "var elt = document.getElementById(\""+id1+"\");\n"
+				+ "var elt2 = document.getElementById(\""+id2+"\");\n"
+				//+ "alert(\"elt=\"+elt);\n"
+				+ "var sel = txmGetSelection();\n"
+				//+ "alert(\"sel=\"+sel.extentNode);\n"
+				//+ "alert(\"typeof sel=\"+Object.getOwnPropertyNames(sel));\n"
+				//+ "alert(\"get_type sel=\"+get_type(sel));\n"
+				+ "var range = txmGetRange(sel, 0);\n"
+				//+ "alert(\"range=\"+range);\n"
+				//+ "alert(\"typeof range=\"+Object.getOwnPropertyNames(range));\n"
+				//+ "alert(\"get_type range=\"+get_type(range));\n"
+				+"range.setStart(elt, 0);\n"
+				+"range.setEndAfter(elt2, 0);\n"
+				+"sel.removeAllRanges();\n"
+				+"sel.addRange(range);\n"
+				+ "\n"
+				+ "return null;";
+
+		//System.out.println("Eval...\n"+SCRIPT02_expand);
+		evaluate(SCRIPT02_expand);
+		return;
+	}
+
+	public void addFontWeightWordsById(String weight, List<String> wordids) {
+		for (String wordid : wordids) {
+			addFontWeightWordsById(weight, wordid);
+		}
+	}
+
+	public void addFontWeightWordsById(String weight, String wordid) {
+		this.fontWeightPerWordIDS.put(wordid, weight);
+	}
+
+	public void removeFontWeightWordsById(String wordid) {
+		this.fontWeightPerWordIDS.remove(wordid);
+	}
+
+	public void removeFontWeightWordsById(List<String> wordids) {
+		for (String wordid : wordids) {
+			removeFontWeightWordsById(wordid);
+		}
+	}
+
+	// Called by JavaScript
+	public class CommandLink extends BrowserFunction {
+		String data = "";
+		Browser browser;
+		CommandLink (Browser browser) {
+			super (browser, "txmcommand");
+			this.browser = browser;
+		}
+		public Object function (Object[] arguments) {
+			HashMap<String, String> params = new HashMap<String, String>();
+			for (int i = 0 ; i < arguments.length ; i += 2) {
+				params.put(arguments[i].toString(), arguments[i+1].toString());
+			}
+
+
+			String id = params.get("id");
+			if (id != null) {
+				params.remove("id");
+				System.out.println("CALLING CMD with id="+id+" and parameters="+params);
+				//get the command from plugin.xml
+				IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+				ICommandService cmdService = (ICommandService)window.getService(ICommandService.class);
+				Command cmd = cmdService.getCommand(id);
+
+				//get the parameter
+				ArrayList<Parameterization> parameters = new ArrayList<Parameterization>();
+				for (String k : params.keySet()) {
+					try {
+						IParameter iparam = cmd.getParameter(k);
+						Parameterization p = new Parameterization(iparam, params.get(k));
+						parameters.add(p);
+					} catch (NotDefinedException e) {
+						System.out.println("warning: unknowned parameter id="+k);
+					}
+				}
+
+				//build the parameterized command
+				ParameterizedCommand pc = new ParameterizedCommand(cmd, parameters.toArray(new Parameterization[parameters.size()]));
+
+				//execute the command
+				IHandlerService handlerService = (IHandlerService)window.getService(IHandlerService.class);
+				try {
+					handlerService.executeCommand(pc, null);
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+			} else {
+				System.out.println("Cannot call txmcommand without 'id' parameter: "+params);
+			}
+			return arguments;
+		}
+	}
+
+	/**
+	 * Clear all highlighted words
+	 */
+	public void removeHighlightWords() {
+		Set<String> keys = highlightedColorPerWordIDS.keySet();
+		for (String key : keys) {
+			highlightedColorPerWordIDS.remove(key);
+		}
+	}
+}

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/RGBA.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/RGBA.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/RGBA.java	(revision 836)
@@ -0,0 +1,27 @@
+package org.txm.edition.rcp.editors;
+
+public class RGBA {
+	public int r=0, g=0, b=0;
+	public float a = 1f;
+	public RGBA(int r, int g, int b) {
+		this.r =r;this.g=g; this.b =b;
+	}
+	public RGBA(String rgb) {
+		String[] split = rgb.split(",");
+		try{this.r =Integer.parseInt(split[0]);}catch(Exception e){}
+		try{this.g =Integer.parseInt(split[1]);}catch(Exception e){}
+		try{this.b =Integer.parseInt(split[2]);}catch(Exception e){}
+	}
+	public RGBA(String rgb, float a) {
+		String[] split = rgb.split(",");
+		try{this.r =Integer.parseInt(split[0]);}catch(Exception e){}
+		try{this.g =Integer.parseInt(split[1]);}catch(Exception e){}
+		try{this.b =Integer.parseInt(split[2]);}catch(Exception e){}
+		this.a = a;
+	}
+	public RGBA(int r, int g, int b, float a) {
+		this.r =r;this.g=g; this.b =b;this.a =a;
+	}
+
+	public String toString() {return "{"+r+", "+g+","+b+", "+a+"}";}
+}

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditionEditor.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditionEditor.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditionEditor.java	(revision 836)
@@ -0,0 +1,860 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.edition.rcp.editors;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+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.jface.window.Window;
+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.FillLayout;
+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.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener2;
+import org.eclipse.ui.IWorkbenchPartReference;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.EditorPart;
+import org.txm.edition.rcp.editors.ext.ToolbarButton;
+import org.txm.edition.rcp.messages.SynopticEditionUIMessages;
+import org.txm.objects.Edition;
+import org.txm.objects.Text;
+import org.txm.rcp.IImageKeys;
+import org.txm.rcp.editors.IEditionEditor;
+import org.txm.rcp.editors.TXMEditor;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.utils.logger.Log;
+/**
+ * Call the internal browser of RCP a Texte can be set to browse pages and
+ * others texts of the same base 
+ * 
+ * @author mdecorde.
+ * 
+ */
+public class SynopticEditionEditor extends TXMEditor<Edition> implements IEditionEditor {
+
+	/** The Constant ID. */
+	public final static String ID = SynopticEditionEditor.class.getName(); //$NON-NLS-1$
+	LinkedHashMap<String, EditionPanel> editionPanels = new LinkedHashMap<String, EditionPanel>();
+
+	/** The page_label: show current page name. */
+	org.eclipse.swt.widgets.Text page_text;
+	Label page_label;
+	Composite editionsArea;
+	private String[] editionNames;
+	private Corpus corpus;
+	private Text text;
+	private Button editionsChooser;
+	//private Label editionsLabel;
+	private Composite controlsArea;
+	private Composite toolbarsArea;
+	private Composite supplementaryButtonComposite;
+	private HashSet<ToolbarButton> toolbarButtons = new HashSet<ToolbarButton>();
+	private ISelectionProvider selProvider;
+
+	/**
+	 * Instantiates a new txm browser.
+	 */
+	public SynopticEditionEditor() {
+		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() {
+						for (EditionPanel panel : editionPanels.values()) {
+							String s = panel.getTextSelection();
+							if (s.length() > 0) return false;
+						}
+						return true;
+					}
+					@Override
+					public String getText() {
+						for (EditionPanel panel : editionPanels.values()) {
+							String s = panel.getTextSelection();
+							if (s.length() > 0) return s;
+						}
+						return "";
+					}
+					@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) { }
+		};
+
+	}
+
+	public void setHighlightWordsById(RGBA color, HashSet<String> wordids) {
+		for(EditionPanel panel : editionPanels.values()) {
+			panel.setHighlightWordsById(color, wordids);
+		}
+	}
+
+	public void addHighlightWordsById(RGBA color, String wordid) {
+		for(EditionPanel panel : editionPanels.values()) {
+			panel.addHighlightWordsById(color, wordid);
+		}
+	}
+
+	public void addHighlightWordsById(RGBA color, Collection<String> wordids) {
+		for(EditionPanel panel : editionPanels.values()) {
+			panel.addHighlightWordsById(color, wordids);
+		}
+	}
+
+	public void removeHighlightWordsById(RGBA color, Collection<String> wordids) {
+		for(EditionPanel panel : editionPanels.values()) {
+			panel.removeHighlightWordsById(color, wordids);
+		}
+	}
+
+	public void removeHighlightWordsById(RGBA color, String wordid) {
+		for(EditionPanel panel : editionPanels.values()) {
+			panel.removeHighlightWordsById(color, wordid);
+		}
+	}
+
+	//	/**
+	//	 * 
+	//	 * @param wordids2 all the words to highlight
+	//	 * @param lineids2 the words to highlight better and to scroll to
+	//	 */
+	//	public void highlightWordsById(List<String> wordids, List<String> lineids, int[] pos, String focusid) {
+	//		for(EditionPanel panel : editionPanels.values()) {
+	//			if (panel.getEdition().getName().startsWith("facs")) {
+	//				List<int[]> wordRectangles = new ArrayList<int[]>();
+	//				List<int[]> keywordRectangles = new ArrayList<int[]>();
+	//				if (pos != null) keywordRectangles.add(pos);
+	//				panel.highlightWordsByPositions(wordRectangles, keywordRectangles);
+	//			} else {
+	//				panel.highlightWordsById(wordids, lineids, focusid);
+	//			}
+	//		}
+	//
+	//		updatePageLabel();
+	//		
+	//		
+	//	}
+
+	public void dispose() {
+		if (releaseExtensions()) {
+			super.dispose();
+		}
+	}
+
+	private boolean releaseExtensions() {
+		boolean error = false;
+		for (ToolbarButton tb : toolbarButtons) {
+			try {
+				tb.onClose();
+			} catch(Exception e) {
+				Log.printStackTrace(e);
+				System.out.println("Error while closing editor toolbar button: "+e);
+				error = true;
+			}
+		}
+		return !error;
+	}
+
+	/**
+	 * First page.
+	 */
+	public void firstPage() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.firstPage();
+		updatePageLabel();
+	}
+
+	/**
+	 * Last page.
+	 */
+	public void lastPage() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.lastPage();
+		updatePageLabel();
+	}
+
+	/**
+	 * Previous page.
+	 */
+	public void previousPage() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.previousPage();
+		updatePageLabel();
+	}
+
+	/**
+	 * Next page.
+	 */
+	public void nextPage() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.nextPage();
+		updatePageLabel();
+	}
+
+	/**
+	 * Next page.
+	 */
+	public void goToPage(String name) {
+		for(EditionPanel panel : editionPanels.values())
+			panel.goToPage(name);
+		updatePageLabel();
+
+	}
+
+	/**
+	 * Previous text.
+	 */
+	public void previousText(boolean fromNextText) {
+		for(EditionPanel panel : editionPanels.values())
+			panel.previousText(fromNextText);
+		updatePageLabel();
+	}
+
+	/**
+	 * Next text.
+	 */
+	public void nextText() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.nextText();
+		updatePageLabel();
+	}
+
+	/**
+	 * Previous text.
+	 */
+	public void firstText() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.firstText();
+		updatePageLabel();
+	}
+
+	/**
+	 * Next text.
+	 */
+	public void lastText() {
+		for(EditionPanel panel : editionPanels.values())
+			panel.lastText();
+		updatePageLabel();
+	}
+
+	public Composite getEditionArea() {
+		return editionsArea;
+	}
+
+	public Composite getUpperToolbarArea() {
+		return toolbarsArea;
+	}
+
+	public Composite getLowerToolbarArea() {
+		return controlsArea;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.internal.browser.WebBrowserEditor#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	@Override
+	public void _createPartControl() {
+
+		toolbarsArea = getExtendedParametersComposite();
+
+		editionsArea = getResultArea();
+
+		controlsArea = getBottomToolbar().installGLComposite("controls", 10, false);
+
+		//spacer
+		new Label(controlsArea, SWT.NONE).setText("  "); //$NON-NLS-1$
+
+		// Edition names label
+		editionsChooser = new Button(controlsArea, SWT.PUSH);
+		editionsChooser.setText(StringUtils.join(editionNames, " | ")); //$NON-NLS-1$
+
+		if (corpus.getEditionNames().size() > 1) {			
+
+			editionsChooser.addSelectionListener(new SelectionListener() {
+				@Override
+				public void widgetSelected(SelectionEvent e) {
+					try {
+						Shell shell = e.display.getActiveShell();
+						EditionSelectorDialog d = new EditionSelectorDialog(shell, corpus, editionNames);
+
+						if (corpus.getEditionNames().size() > 1 && d.open() == Window.OK) {
+							Object[] rez = d.getResult();
+							editionNames = new String[rez.length];
+							for(int i = 0 ; i < rez.length ; i++) editionNames[i] = rez[i].toString();
+							editionsChooser.setText(StringUtils.join(editionNames, " | ")); //$NON-NLS-1$
+							openEditions(corpus, text, editionNames);
+							firstPage();
+						} else if (corpus.getEditionNames().size() == 1) {
+							editionNames = new String[]{corpus.getEditionNames().get(0)};
+							editionsChooser.setText(StringUtils.join(editionNames, " | ")); //$NON-NLS-1$
+							openEditions(corpus, text, editionNames);
+							firstPage();
+						} else {
+							System.out.println(SynopticEditionUIMessages.SynopticEditionEditor_5);
+						}
+					} catch (Exception e2) {
+						org.txm.rcp.utils.Logger.printStackTrace(e2);
+						System.out.println(SynopticEditionUIMessages.SynopticEditionEditor_6+e2);
+					}
+				}
+
+				@Override
+				public void widgetDefaultSelected(SelectionEvent e) { }
+			});
+		} else {
+			editionsChooser.setEnabled(false);
+		}
+
+		supplementaryButtonComposite = new Composite(controlsArea, SWT.NONE);
+		supplementaryButtonComposite.setLayout(new FillLayout(SWT.HORIZONTAL));
+
+		// Navigation buttons
+
+		Button first = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+		Button previous = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+		page_text = new org.eclipse.swt.widgets.Text(controlsArea, SWT.BORDER);
+		page_label = new Label(controlsArea, SWT.NONE);
+		Button next = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+		Button last = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+
+
+		Button firstText = new Button(controlsArea, SWT.FLAT);
+		Button previousText = new Button(controlsArea, SWT.FLAT);
+		new Label(controlsArea, SWT.NONE).setText(" ");
+		Button nextText = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+		Button lastText = new Button(controlsArea, SWT.FLAT|SWT.PUSH);
+
+		// Layouts data
+
+		editionsChooser.setLayoutData(new GridData(GridData.BEGINNING,GridData.CENTER, false, false));
+
+		GridData buttonGridData = new GridData(GridData.FILL,GridData.CENTER, false, false);
+		buttonGridData.widthHint = 30;
+		buttonGridData.heightHint = 30;
+		firstText.setLayoutData(buttonGridData);
+		previousText.setLayoutData(buttonGridData);
+		GridData centerButtonGridData = new GridData(GridData.END,GridData.CENTER, true, true);
+		centerButtonGridData.widthHint = 30;
+		centerButtonGridData.heightHint = 30;
+		first.setLayoutData(centerButtonGridData);
+		previous.setLayoutData(buttonGridData);
+
+		// set sizes
+
+		GridData gdata = new GridData(GridData.END,GridData.CENTER, false, false);
+		gdata.minimumWidth = 40;
+		gdata.widthHint = 40;
+		page_text.setLayoutData(gdata);
+		page_label.setLayoutData(new GridData(GridData.BEGINNING,GridData.CENTER, false, false));
+
+		next.setLayoutData(buttonGridData);
+		centerButtonGridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, true);
+		centerButtonGridData.widthHint = 30;
+		centerButtonGridData.heightHint = 30;
+		last.setLayoutData(centerButtonGridData);
+		nextText.setLayoutData(buttonGridData);
+		lastText.setLayoutData(buttonGridData);
+
+		GridData supplementaryButtonCompositeLayoutData = new GridData(GridData.BEGINNING, GridData.CENTER, false, true);
+		supplementaryButtonComposite.setLayoutData(supplementaryButtonCompositeLayoutData);
+
+		if (editionsChooser != null)
+			editionsChooser.setLayoutData(new GridData(GridData.BEGINNING,GridData.CENTER, false, true));
+		//else spacer.setLayoutData(new GridData(GridData.END,GridData.CENTER, true, true));
+
+		// set labels
+		page_label.setText(""); //$NON-NLS-1$
+		firstText.setImage(IImageKeys.getImage(IImageKeys.CTRLREWINDSTART));
+		firstText.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_0); 
+		previousText.setImage(IImageKeys.getImage(IImageKeys.CTRLREWIND));
+		previousText.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_1); 
+		first.setImage(IImageKeys.getImage(IImageKeys.CTRLSTART)); 
+		first.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_3); 
+		previous.setImage(IImageKeys.getImage(IImageKeys.CTRLREVERSE));
+		previous.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_4); 
+		next.setImage(IImageKeys.getImage(IImageKeys.CTRLPLAY));
+		next.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_7); 
+		last.setImage(IImageKeys.getImage(IImageKeys.CTRLEND));
+		last.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_8);
+		nextText.setImage(IImageKeys.getImage(IImageKeys.CTRLFASTFORWARD));
+		nextText.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_10); 
+		lastText.setImage(IImageKeys.getImage(IImageKeys.CTRLFASTFORWARDEND));
+		lastText.setToolTipText(SynopticEditionUIMessages.SynopticEditionEditor_11); 
+
+		// browse available extension points
+		try {		
+			IConfigurationElement[] config = Platform.getExtensionRegistry()
+					.getConfigurationElementsFor("org.txm.edition.toolbarbutton");
+			//Log.warning(Messages.ApplicationWorkbenchAdvisor_15+config.length);
+			for (IConfigurationElement e : config) {
+				Object o = e.createExecutableExtension("class"); //$NON-NLS-1$
+				if (o instanceof ToolbarButton) {
+					ToolbarButton tb = ((ToolbarButton) o);
+					Composite b = tb.getToolbarButton(supplementaryButtonComposite, this);
+					//b.setLayoutData(buttonGridData);
+					toolbarButtons.add(tb);
+				}
+			}
+		} catch (Exception ex) {
+			System.out.println(ex.getMessage());
+		}
+
+		page_text.addKeyListener(new KeyListener() {
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+				if (e.keyCode == SWT.CR || e.keyCode == SWT.KEYPAD_CR) {
+					goToPage(page_text.getText());
+				}
+			}
+
+			@Override
+			public void keyPressed(KeyEvent e) {}
+		});
+		// 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();
+			}
+		});
+
+		openEditions(corpus, text, editionNames);
+	}
+
+	/**
+	 * Opens the default corpus edition with the first Text
+	 * 
+	 * @param corpus
+	 */
+	public boolean openEditions(Corpus corpus) {
+		if (corpus == null) return false;
+		return openEditions(corpus, corpus.getFirstText(), corpus.getDefaultEdition());
+	}
+
+	/**
+	 * update editor title using the first panel only 
+	 */
+	private void updatePageLabel() {
+		for (EditionPanel p : editionPanels.values()) {
+			this.setPartName(p.getCurrentPage().getEdition().getText().getName()+ " - "+p.getCurrentPage().getName()); //$NON-NLS-1$
+			page_text.setText(p.getCurrentPage().getName());
+			page_label.setText(" / "+p.getCurrentPage().getEdition().getNumPages()); //$NON-NLS-1$
+			controlsArea.layout();
+			return;
+		}
+	}
+
+	public boolean openEditions(Corpus corpus, String textID, String... editionNames) {
+		Text text = corpus.getText(textID);
+		if (text == null) return false;
+		return openEditions(corpus, text, editionNames);
+	}
+
+	/**
+	 * Opens a list of edition corpus
+	 * @param corpus
+	 * @param editionNames
+	 */
+	public boolean openEditions(Corpus corpus, Text text, String... editionNames) {
+
+		// remove previous EditionPanel
+		for (EditionPanel panel : editionPanels.values()) {
+			panel.dispose();
+		}
+		editionPanels = new LinkedHashMap<String, EditionPanel>();
+
+		editionsArea.setLayout(new GridLayout(editionNames.length, true));
+
+		for (int i = 0 ; i < editionNames.length ;i++) {
+			String editionName = editionNames[i];
+			//System.out.println("EDITION NAME: "+editionName);
+			Composite container = editionsArea;//.getContainer(i);
+			Edition edition = text.getEdition(editionName);
+			if (edition != null) {
+				EditionPanel panel = new EditionPanel(this, container, SWT.BORDER, edition);
+				panel.initSelectionProvider();
+
+				if (i == 0) { // TODO: how to manage multiple menumanager -> the text selection does not work only the first panel selection is used
+					panel.initMenu();
+					getSite().registerContextMenu(panel.getMenuManager(), panel.getSelectionProvider());
+				}
+
+				editionPanels.put(editionName, panel);
+			} else {
+				System.out.println(SynopticEditionUIMessages.SynopticEditionEditor_9+editionName);
+			}
+		}
+		editionsArea.layout();
+		return true;
+	}
+
+	/**
+	 * 
+	 * //TODO: add getDefaultEditions to Corpus object
+	 * 
+	 * @param corpus
+	 * @return a list of default editions
+	 */
+	public String[] getDefaultEditions(Corpus corpus) {
+		String defaultEdition = corpus.getDefaultEdition();
+		if (defaultEdition.contains(",")) { //$NON-NLS-1$
+			return defaultEdition.split(","); //$NON-NLS-1$
+		} else {
+			return new String[]{defaultEdition};
+		}
+	}
+
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		for (ToolbarButton b : toolbarButtons) {
+			b.save();
+		}
+		firePropertyChange(IEditorPart.PROP_DIRTY);
+	}
+
+	@Override
+	public void doSaveAs() {
+		return;
+	}
+
+	@Override
+	public void init(IEditorSite site, IEditorInput input)
+			throws PartInitException {
+		setSite(site);
+		setInput(input);
+
+		corpus = ((SynopticEditorInput) getEditorInput()).getCorpus();
+		corpus = corpus.getMainCorpus();
+		text = ((SynopticEditorInput) getEditorInput()).getText();
+		editionNames = ((SynopticEditorInput) getEditorInput()).getEditions();
+
+		IPartListener2 pl = new IPartListener2() {
+			// ... Other methods
+			public void partClosed(IWorkbenchPartReference partRef) {
+				if (partRef.getId().equals(ID)) { // called after this.doSave() 
+					//System.out.println("EVENT partClosed");
+					for (ToolbarButton b : toolbarButtons) {
+						if (b.isDirty()) b.discardChanges();
+					}
+				}
+			}
+
+			@Override
+			public void partActivated(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partBroughtToTop(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partDeactivated(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partOpened(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partHidden(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partVisible(IWorkbenchPartReference partRef) { }
+
+			@Override
+			public void partInputChanged(IWorkbenchPartReference partRef) { }
+
+		};
+		this.getEditorSite().getPage().addPartListener(pl);
+	}
+
+	@Override
+	public boolean isDirty() {
+		boolean dirty = false;
+		for (ToolbarButton b : toolbarButtons) {
+			dirty = dirty || b.isDirty();
+		}
+		return dirty;
+	}
+
+	public boolean isDisposed() {
+		return editionsArea.isDisposed();
+	}
+
+	@Override
+	public boolean isSaveAsAllowed() {
+		return false;
+	}
+
+	@Override
+	public void setFocus() {
+
+	}
+
+	public void backToText(Text text, String line_wordid) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.backToText(text, line_wordid);
+		}
+		updatePageLabel();
+		
+		for (ToolbarButton button : this.toolbarButtons) {
+			button.onBackToText(text, line_wordid);
+		}
+	}
+
+	public void reloadPage() {
+		for (EditionPanel p : editionPanels.values()) {
+			p.reloadPage();
+		}
+	}
+
+	@Override
+	public String getTextSelection() {
+		String sel = null;
+		for (EditionPanel p : editionPanels.values()) {
+			sel = p.getTextSelection();
+			if (sel != null) return sel;
+		}
+		return "";
+	}
+
+	@Override
+	public Corpus getCorpus() {
+		return corpus;
+	}
+
+	public EditionPanel getEditionPanel(int i) {
+		int n = 0;
+		for (EditionPanel p : editionPanels.values()) {
+			if (n == i) return p;
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @return the first and last word ID covered by the text selection of the first EditionPanel
+	 */
+	public Object getWordSelection() {
+		for (EditionPanel p : editionPanels.values()) {
+			return p.getWordSelection();
+		}
+		return null;
+	}
+
+	/**
+	 * 
+	 * @param text2 the Text to set
+	 * @param refresh if true set the first Text page
+	 */
+	public void setText(Text text2, boolean refresh) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.setText(text2, refresh);
+		}
+	}
+
+	public void setFocusedWordID(String focusid) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.setFocusedWordID(focusid);
+		}
+	}
+
+	/**
+	 *  NOT DONE
+	 *  
+	 * @param pos
+	 */
+	public void setHighlightedArea(HashSet<int[]> positions) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.setHighlightedArea(positions);
+		}
+	}
+
+	public void updateWordStyles() {
+		for (EditionPanel p : editionPanels.values()) {
+			p.updateWordStyles();
+		}
+	}
+
+	public void addFontWeightWordsById(String weight, List<String> previousSelectedUnitIDS) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.addFontWeightWordsById(weight, previousSelectedUnitIDS);
+		}
+	}
+
+	public void removeFontWeightWordsById(List<String> previousSelectedUnitIDS) {
+		for (EditionPanel p : editionPanels.values()) {
+			p.removeFontWeightWordsById(previousSelectedUnitIDS);
+		}
+	}
+
+	public void fireIsDirty() {
+		this.firePropertyChange(IEditorPart.PROP_DIRTY);
+	}
+
+	/**
+	 * Clears all highlighted words.
+	 */
+	public void removeHighlightWords() {
+		for (EditionPanel p : editionPanels.values()) {
+			p.removeHighlightWords();
+		}
+	}
+
+	@Override
+	public void updateResultFromEditor() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void updateEditorFromResult(boolean update) throws Exception {
+		// TODO Auto-generated method stub
+		
+	}
+}
\ No newline at end of file

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionSelectorDialog.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionSelectorDialog.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/EditionSelectorDialog.java	(revision 836)
@@ -0,0 +1,52 @@
+package org.txm.edition.rcp.editors;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.dialogs.ElementListSelectionDialog;
+import org.txm.edition.rcp.messages.SynopticEditionUIMessages;
+import org.txm.objects.Corpus;
+
+public class EditionSelectorDialog extends ElementListSelectionDialog {
+
+	public EditionSelectorDialog(Shell parent, Corpus corpus, String[] defaultSelection) {
+		super(parent, 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();
+			}
+		});
+
+		setTitle(SynopticEditionUIMessages.EditionSelectorDialog_0);
+		setMessage(SynopticEditionUIMessages.EditionSelectorDialog_1);
+		setMultipleSelection(true);
+		setElements(corpus.getEditionNames().toArray());
+		setFilter("*"); //$NON-NLS-1$
+		
+		if (defaultSelection == null) {
+			defaultSelection = new String[]{corpus.getDefaultEdition()};
+		}
+		this.setInitialSelections(defaultSelection);
+	}
+}
\ No newline at end of file

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SashPanel.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SashPanel.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SashPanel.java	(revision 836)
@@ -0,0 +1,90 @@
+package org.txm.edition.rcp.editors;
+
+import java.util.ArrayList;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+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.Listener;
+import org.eclipse.swt.widgets.Sash;
+
+public class SashPanel extends Composite {
+
+	//Composite parent;
+	ArrayList<Composite> cells;
+
+	public SashPanel(Composite parent, int style) {
+		super(parent, style);
+		//this.parent = parent;
+		this.setLayout(new FormLayout());
+	}
+
+	public void init(int ncolumns) {
+		if (cells != null) {
+			for(Control c : this.getChildren())
+				c.dispose();
+			cells.clear();
+			cells = new ArrayList<Composite>();
+		}
+
+		cells = new ArrayList<Composite>();
+		Sash sash = null;
+		FormData sashData = null;
+		for (int i = 0 ; i < ncolumns ; i++) {
+			Composite container = new Composite(this, SWT.NONE);
+			container.setLayout(new GridLayout());
+			cells.add(container);
+
+			FormData containerData = new FormData();
+			containerData.width = 100;
+			containerData.top = new FormAttachment(0, 0);
+			containerData.bottom = new FormAttachment(100, 0);
+			container.setLayoutData(containerData);// set new layout data
+
+			if (sash != null) { // attached FormData to previous sash and vice-versa
+				sashData.right = new FormAttachment(container, 0);
+				containerData.left = new FormAttachment(sash, 0);
+			} else if (i == 0) {
+				containerData.left = new FormAttachment(0, 0); // first cell
+			}
+
+			if (i == ncolumns -1 ) {
+				containerData.right = new FormAttachment(100, 0); // last cell
+			} else {
+				sash = new Sash(this, SWT.VERTICAL);
+				containerData.right = new FormAttachment(sash, 0);
+
+				sashData = new FormData();
+				sashData.left = new FormAttachment(container, 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) {
+					SashPanel.this.layout();
+					//								e.getBounds()
+					//								Rectangle sashRect = sash.getBounds();
+					//								Rectangle shellRect = SashPanel.this.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();
+					//								}
+				}
+			});
+		}
+
+	}
+
+	public Composite getContainer(int i) {
+		return cells.get(i);
+	}
+}

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditorInput.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditorInput.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/SynopticEditorInput.java	(revision 836)
@@ -0,0 +1,112 @@
+package org.txm.edition.rcp.editors;
+
+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.Text;
+import org.txm.rcp.Application;
+import org.txm.rcp.IImageKeys;
+import org.txm.rcp.editors.TXMResultEditorInput;
+import org.txm.searchengine.cqp.corpus.Corpus;
+
+import cern.colt.Arrays;
+
+public class SynopticEditorInput extends TXMResultEditorInput implements IEditorInput {
+
+	private Corpus corpus;
+	private Text text;
+	private String[] editions;
+
+	/**
+	 * Instantiates a new SynopticEditorInput
+	 *
+	 * @param corpus, the corpus
+	 * @param text, the text to show
+	 * @param editions, the editions to show
+	 */
+	public SynopticEditorInput(Corpus corpus, String text, String[] editions) {
+		super(corpus);
+		
+		this.corpus = corpus;
+		corpus = corpus.getMainCorpus();
+		this.editions = editions;
+		
+		if (text == null) {
+			this.text = corpus.getFirstText();
+		} else {
+			this.text = corpus.getText(text);
+		}
+		
+		if (editions == null) {
+			String[] defaultEditions = {corpus.getDefaultEdition()};
+			this.editions = defaultEditions;
+		}
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
+	 */
+	@Override
+	public ImageDescriptor getImageDescriptor() {
+		return AbstractUIPlugin.imageDescriptorFromPlugin(
+				Application.PLUGIN_ID, IImageKeys.EDITION);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#getName()
+	 */
+	@Override
+	public String getName() {
+		return corpus.getName()+ " - "+text+ " - "+Arrays.toString(editions);  //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/* (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;
+	}
+
+	public Text getText() {
+		return text;
+	}
+	
+	public String[] getEditions() {
+		return editions;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.IEditorInput#exists()
+	 */
+	@Override
+	public boolean exists() {
+		return false;
+	}
+}

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/ext/ToolbarButton.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/ext/ToolbarButton.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/ext/ToolbarButton.java	(revision 836)
@@ -0,0 +1,41 @@
+package org.txm.edition.rcp.editors.ext;
+
+import org.eclipse.swt.widgets.Composite;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
+import org.txm.objects.Text;
+
+public abstract class ToolbarButton {
+
+	protected SynopticEditionEditor editor;
+
+	public ToolbarButton() {}
+	
+	/**
+	 * 
+	 * @param parent
+	 * @param editor
+	 * @return the button to dislay in the bottom toolbar
+	 */
+	public Composite getToolbarButton(Composite parent, SynopticEditionEditor editor) {
+		this.editor = editor;
+		return null;
+	}
+	
+	/**
+	 * Called when the editor is disposed
+	 * 
+	 * @return true is the editor can be closed
+	 */
+	public boolean onClose() {
+		return true;
+	}
+
+	public abstract void save();
+	
+	public abstract boolean isDirty();
+	
+	public abstract void discardChanges();
+
+	public abstract void onBackToText(Text text, String line_wordid);
+
+}
\ No newline at end of file

Property changes on: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/editors/ext/ToolbarButton.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/BackToText.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/BackToText.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/BackToText.java	(revision 836)
@@ -0,0 +1,268 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.edition.rcp.handlers;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.e4.ui.workbench.modeling.EModelService;
+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.handlers.HandlerUtil;
+import org.txm.concordance.core.functions.Concordance;
+import org.txm.concordance.rcp.editors.ConcordanceEditor;
+import org.txm.concordance.rcp.handlers.BackToTextCommand;
+import org.txm.edition.rcp.editors.RGBA;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
+import org.txm.edition.rcp.messages.SynopticEditionUIMessages;
+import org.txm.objects.Text;
+import org.txm.rcp.StatusLine;
+import org.txm.rcp.utils.SWTEditorsUtils;
+import org.txm.searchengine.cqp.AbstractCqiClient;
+import org.txm.searchengine.cqp.CQPSearchEngine;
+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.Match;
+import org.txm.utils.logger.Log;
+
+/**
+ * Open a text edition from: a concordance Line 
+ * @author mdecorde.
+ */
+public class BackToText extends BackToTextCommand {
+
+	/** The Constant ID. */
+	public final static String ID = "org.txm.synopticedition.rcp.handlers.BackToText"; //$NON-NLS-1$
+	public final static RGBA lightred = new RGBA(249,208,208);
+	public final static RGBA red = new RGBA(249, 160, 160);
+	//TODO: this kind of link associations must be transfered to a TXMEditor class
+	private static HashMap<ConcordanceEditor, SynopticEditionEditor> associatedEditors = new HashMap<ConcordanceEditor, SynopticEditionEditor>();
+	private static HashMap<ConcordanceEditor, List<String>> associatedEditorsPreviousOtherWordIDs = new HashMap<ConcordanceEditor, List<String>>();
+	private static HashMap<ConcordanceEditor, List<String>> associatedEditorsPreviousLineids = new HashMap<ConcordanceEditor, List<String>>();
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.core.commands.AbstractHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+	 */
+	@Override
+	public Object execute(ExecutionEvent event) throws ExecutionException {
+		IWorkbenchWindow wb = HandlerUtil.getActiveWorkbenchWindow(event);
+		IEditorPart ieditor = wb.getActivePage().getActiveEditor();
+		if (!(ieditor instanceof ConcordanceEditor)) {
+			return null;
+		}
+		ConcordanceEditor concordanceEditor = (ConcordanceEditor)ieditor;
+		ISelection sel = wb.getSelectionService().getSelection();
+		if (sel instanceof IStructuredSelection) {
+			IStructuredSelection selection = (IStructuredSelection) sel;
+			if (selection.getFirstElement() instanceof Match) {
+				backToText(concordanceEditor, (Match)(selection.getFirstElement()));
+			} else {
+				System.out.println(SynopticEditionUIMessages.BackToText_1+selection);
+			}
+		} else {
+			System.out.println(SynopticEditionUIMessages.BackToText_2);
+		}
+		return null;
+	}
+
+	/**
+	 * Open edition.
+	 *
+	 * @param corpus the corpus
+	 * @return the object
+	 */
+	@Override
+	public boolean backToText(ConcordanceEditor editor, Match match) {
+		Concordance conc = editor.getConcordance();
+		Corpus corpus = editor.getCorpus();
+
+		try {
+			if (match == null) return false;
+
+			StructuralUnit textS = null;
+			String textid = ""; //$NON-NLS-1$
+			String baseid = ""; //$NON-NLS-1$
+			
+			Property xProperty = corpus.getProperty("x"), yProperty, wProperty, hProperty;
+			String x="0",y="0",w="0",h="0";
+			int[] pos = null;
+			if (xProperty != null) {
+				yProperty = corpus.getProperty("y");
+				if (yProperty != null) {
+					wProperty = corpus.getProperty("w");
+					if (wProperty != null) {
+						AbstractCqiClient CQI = CQPSearchEngine.getCqiClient();
+						int[] cpos = {match.getStart()};
+						hProperty = corpus.getProperty("h");
+						if (hProperty != null) {
+							x = CQI.cpos2Str(xProperty.getQualifiedName(), cpos)[0];
+							y = CQI.cpos2Str(yProperty.getQualifiedName(), cpos)[0];
+							w = CQI.cpos2Str(wProperty.getQualifiedName(), cpos)[0];
+							h = CQI.cpos2Str(hProperty.getQualifiedName(), cpos)[0];
+							
+							pos = new int[4];
+							pos[0] = Integer.parseInt(x);
+							pos[1] = Integer.parseInt(y);
+							pos[2] = Integer.parseInt(w);
+							pos[3] = Integer.parseInt(h);
+						}
+					}
+				}
+			}
+			
+			
+			String projectid = ""; //$NON-NLS-1$
+			try {
+				textS = corpus.getStructuralUnit("text"); //$NON-NLS-1$
+				Property textP = textS.getProperty("id"); //$NON-NLS-1$
+				textid = match.getValueForProperty(textP);// get text via text struct property id
+			} catch (Exception e2) {
+				System.out.println("The corpus has no text_id property" + e2); //$NON-NLS-1$
+				org.txm.rcp.utils.Logger.printStackTrace(e2);
+				return false;
+			}
+
+			Log.info("Loading line informations..."); //$NON-NLS-1$
+
+			SynopticEditionEditor attachedBrowserEditor = associatedEditors.get(editor);
+			if (attachedBrowserEditor!= null && attachedBrowserEditor.isDisposed()) {
+				associatedEditorsPreviousOtherWordIDs.put(editor, new ArrayList<String>());
+				associatedEditorsPreviousLineids.put(editor, new ArrayList<String>());
+			}
+			List<String> previousOtherWordIDs = associatedEditorsPreviousOtherWordIDs.get(editor);
+			List<String> previousLineids = associatedEditorsPreviousLineids.get(editor);
+			
+			if (attachedBrowserEditor == null || attachedBrowserEditor.isDisposed()) {
+				String[] editionsToOpen = OpenEdition.getDefaultEditions(corpus);
+
+				if (editionsToOpen.length == 0) { // the defaultEdition parameter is not set
+					ArrayList<String> editionNames = corpus.getEditionNames();
+					if (editionNames.size() > 0) { // use the first edition declared
+						editionsToOpen = new String[1];
+						editionsToOpen[0] = editionNames.get(0);
+						Log.info(SynopticEditionUIMessages.BackToText_0+editionNames.get(0));
+					} else { // no edition in the corpus
+						Log.info(SynopticEditionUIMessages.BackToText_4);
+						editionsToOpen = new String[0];
+						return false;
+					}
+				} else {
+					Log.info(SynopticEditionUIMessages.BackToText_5+StringUtils.join(editionsToOpen));
+				}
+
+				attachedBrowserEditor = OpenEdition.openEdition(corpus, editionsToOpen);
+				associatedEditors.put(editor, attachedBrowserEditor);
+				SWTEditorsUtils.addEditor(editor, attachedBrowserEditor, EModelService.ABOVE);
+			}
+			
+			// remove previous highlighted words
+			if (previousOtherWordIDs != null) {
+				//System.out.println("remove previousOtherWordIDs="+previousOtherWordIDs);
+				attachedBrowserEditor.removeHighlightWordsById(lightred, previousOtherWordIDs);
+				associatedEditorsPreviousOtherWordIDs.remove(editor); // free mem
+			}
+			if (previousLineids != null) {
+				//System.out.println("remove previousLineids="+previousLineids);
+				attachedBrowserEditor.removeHighlightWordsById(red, previousLineids);
+				associatedEditorsPreviousLineids.remove(editor); // free mem
+			}
+			
+			//System.out.println("getKeywordsId from "+editor.getTopLine()+" to "+editor.getBottomLine() + 1);
+			List<String> otherWordIDs = conc.getKeywordsId(textid, editor.getTopLine(), editor.getBottomLine() + 1);
+			//System.out.println("getKeywordsId="+otherWordIDs);
+			List<String> lineids = null;
+			try {
+				lineids = match.getValuesForProperty(corpus.getProperty("id")); //$NON-NLS-1$
+			} catch (Exception e1) {
+				org.txm.rcp.utils.Logger.printStackTrace(e1);
+				return false;
+			}
+			Log.info(NLS.bind("Project id {0} Corpus (Base) id {1} Text id {2}",  //$NON-NLS-1$
+					new Object[]{projectid, baseid, textid}));
+			
+			otherWordIDs.removeAll(lineids); // remove the pivot from others words 
+			
+			Text text = corpus.getMainCorpus().getText(textid);
+			if (text == null) {
+				System.out.println(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
+				StatusLine.setMessage(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
+				Log.severe(NLS.bind("BackToText: Text {0} is missing", textid)); //$NON-NLS-1$
+				return false;
+			}
+
+			String line_wordid = lineids.get(0);
+			if (line_wordid == null) {
+				System.out.println(SynopticEditionUIMessages.BackToText_3);
+				return false;				
+			}
+			
+			
+			String focusid = null;
+			if (lineids.size() > 0) focusid = lineids.get(0);
+				
+			//System.out.println("add otherWordIDs="+otherWordIDs);
+			attachedBrowserEditor.addHighlightWordsById(lightred, otherWordIDs);
+			
+			//System.out.println("add linesids="+lineids);
+			attachedBrowserEditor.addHighlightWordsById(red, lineids);
+			
+			associatedEditorsPreviousOtherWordIDs.put(editor, otherWordIDs);
+			associatedEditorsPreviousLineids.put(editor, lineids);
+						
+			HashSet<int[]> posses = new HashSet<int[]>();
+			posses.add(pos);
+			attachedBrowserEditor.setHighlightedArea(posses);
+			
+			attachedBrowserEditor.setFocusedWordID(focusid);
+			
+			// reload the page and styles
+			attachedBrowserEditor.backToText(text, line_wordid);// open the page(S) containing the word with id=line_wordid
+			
+			IWorkbenchPage attachedPage = attachedBrowserEditor.getEditorSite().getPage();
+			attachedPage.activate(attachedBrowserEditor);
+
+			return true;
+
+		} catch (Exception err) {
+			Log.severe(NLS.bind("Full text display failed: {0}", err)); //$NON-NLS-1$
+			Log.printStackTrace(err);
+		}
+		return false;
+	}
+}

Property changes on: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/BackToText.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java	(revision 836)
@@ -0,0 +1,188 @@
+// Copyright © 2010-2013 ENS de Lyon.
+// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
+// Lyon 2, University of Franche-Comté, University of Nice
+// Sophia Antipolis, University of Paris 3.
+// 
+// The TXM platform is free software: you can redistribute it
+// and/or modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation,
+// either version 2 of the License, or (at your option) any
+// later version.
+// 
+// The TXM platform is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied
+// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE. See the GNU General Public License for more
+// details.
+// 
+// You should have received a copy of the GNU General
+// Public License along with the TXM platform. If not, see
+// http://www.gnu.org/licenses.
+// 
+// 
+// 
+// $LastChangedDate:$
+// $LastChangedRevision:$
+// $LastChangedBy:$ 
+//
+package org.txm.edition.rcp.handlers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.IStructuredSelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.edition.rcp.editors.EditionSelectorDialog;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
+import org.txm.edition.rcp.editors.SynopticEditorInput;
+import org.txm.edition.rcp.messages.SynopticEditionUIMessages;
+import org.txm.objects.BaseParameters;
+import org.txm.objects.Text;
+import org.txm.searchengine.cqp.corpus.Corpus;
+import org.txm.searchengine.cqp.corpus.MainCorpus;
+import org.txm.searchengine.cqp.corpus.Property;
+import org.txm.searchengine.cqp.corpus.StructuralUnit;
+import org.txm.searchengine.cqp.corpus.Subcorpus;
+import org.txm.searchengine.cqp.corpus.query.Match;
+import org.txm.utils.logger.Log;
+import org.w3c.dom.Element;
+
+// 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.synopticedition.rcp.handlers.OpenEdition"; //$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 {
+
+		IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getCurrentSelection(event);
+		if (selection.getFirstElement() instanceof Corpus) {
+			try {
+				Corpus c = (Corpus) selection.getFirstElement();
+//				Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
+
+				//EditionSelectorDialog d = new EditionSelectorDialog(shell, c, null);
+				SynopticEditionEditor editor = null;
+				//				if (c.getEditionNames().size() > 1 && d.open() == Window.OK) {
+				//					Object[] rez = d.getResult();
+				//					String[] rezS = new String[rez.length];
+				//					for (int i =0 ; i < rez.length ; i++) rezS[i] = rez[i].toString();
+				//					editor = openEdition(c, rezS);
+				//				} else 
+				String[] editionsToOpen = getDefaultEditions(c);
+
+				if (editionsToOpen.length == 0) { // the defaultEdition parameter is not set
+					ArrayList<String> editionNames = c.getEditionNames();
+					if (editionNames.size() > 0) { // use the first edition declared
+						editionsToOpen = new String[1];
+						editionsToOpen[0] = editionNames.get(0);
+						Log.info(SynopticEditionUIMessages.OpenEdition_0+editionNames.get(0));
+					} else { // no edition in the corpus
+						Log.info(SynopticEditionUIMessages.OpenEdition_1);
+						editionsToOpen = new String[0];
+						return false;
+					}
+				} else {
+					Log.info(SynopticEditionUIMessages.OpenEdition_3+StringUtils.join(editionsToOpen));
+				}
+
+				editor = openEdition(c, editionsToOpen);
+
+				if (editor != null)
+					editor.firstPage();
+
+			} catch (Exception e) {
+				System.out.println(SynopticEditionUIMessages.OpenEdition_4+e);
+				org.txm.rcp.utils.Logger.printStackTrace(e);
+			}
+		} else {
+			System.out.println(SynopticEditionUIMessages.OpenEdition_9);
+		}
+		return null;
+	}
+	public static String[] getDefaultEditions(Corpus c) {
+		BaseParameters params = c.getBase().getBaseParameters();
+		Element editionsElement = params.getEditionsElement(params.getCorpusElement());
+		return editionsElement.getAttribute("default").split(","); //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * Open edition, but don't show a page 
+	 *
+	 * @param corpus the corpus
+	 * @return the object
+	 */
+	public static SynopticEditionEditor openEdition(Corpus corpus, String[] editions) {
+		String textid = null;
+
+		System.out.println("Opening edition of "+corpus); //$NON-NLS-1$
+		try {
+			Text text = null;
+			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 (textid != null) text = maincorpus.getText(textid);
+
+			if (text == null) {
+				text = maincorpus.getFirstText();
+
+				if (text == null) {
+					System.out.println("** Could not find first text of ID "+textid+SynopticEditionUIMessages.OpenEdition_7); //$NON-NLS-1$ //$NON-NLS-1$
+					return null;
+				}
+
+				textid = text.getName();
+			}
+
+			//String[] editions = {maincorpus.getDefaultEdition()};
+			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+			IWorkbenchPage page = window.getActivePage();
+
+			SynopticEditorInput editorInput = new SynopticEditorInput(corpus, text.getName(), editions);
+			SynopticEditionEditor editor = (SynopticEditionEditor) page.openEditor(editorInput,
+					SynopticEditionEditor.ID, true);
+
+			return editor;
+
+		} catch (Exception e) {
+			Log.printStackTrace(e);
+			System.out.println(SynopticEditionUIMessages.OpenEdition_10+e);
+			return null;
+		}
+	}
+}

Property changes on: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/handlers/OpenEdition.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java	(revision 836)
@@ -0,0 +1,18 @@
+package org.txm.edition.rcp.preferences;
+
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.osgi.service.prefs.Preferences;
+import org.txm.core.preferences.TXMPreferences;
+
+public class SynopticEditionPreferences extends TXMPreferences {
+
+	public static String PREFERENCES_NODE = "org.txm.synopticedition.rcp.synoptic";
+	
+	public static String FAST_HIGHLIGHT = "fast_highlight";
+
+	@Override
+	public void initializeDefaultPreferences() {
+		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		preferences.putBoolean(FAST_HIGHLIGHT, true);
+	}
+}

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

Index: tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferencePage.java
===================================================================
--- tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferencePage.java	(revision 0)
+++ tmp/org.txm.synopticeditor.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferencePage.java	(revision 836)
@@ -0,0 +1,34 @@
+package org.txm.edition.rcp.preferences;
+
+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.rcp.Application;
+
+public class SynopticEditionPreferencePage  extends FieldEditorPreferencePage
+implements IWorkbenchPreferencePage {
+	ScopedPreferenceStore preferences;
+
+	private BooleanFieldEditor fast_highlight;
+	
+	
+	public SynopticEditionPreferencePage() {
+		super();
+		preferences = new ScopedPreferenceStore(org.eclipse.core.runtime.preferences.InstanceScope.INSTANCE,
+				Application.PLUGIN_ID);
+		setPreferenceStore(preferences);
+		setTitle("Edition");
+	}
+	
+	@Override
+	public void init(IWorkbench workbench) { }
+
+	@Override
+	protected void createFieldEditors() {
+		fast_highlight = new BooleanFieldEditor(SynopticEditionPreferences.FAST_HIGHLIGHT,
+				"Enable fast word highlight", getFieldEditorParent());
+		addField(fast_highlight);
+	}
+}

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

Index: tmp/org.txm.libs.cqp.macosx/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.libs.cqp.macosx/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.libs.cqp.macosx/META-INF/MANIFEST.MF	(revision 836)
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
-Bundle-Name: CQP.macosx
-Bundle-SymbolicName: CQP.macosx
+Bundle-Name: org.txm.libs.cqp.macosx
+Bundle-SymbolicName: org.txm.libs.cqp.macosx
 Bundle-Version: 1.1.0.qualifier
 Fragment-Host: org.txm.libs.cqp;bundle-version="1.0.0.qualifier"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Index: tmp/org.txm.textsbalance.feature/feature.xml
===================================================================
--- tmp/org.txm.textsbalance.feature/feature.xml	(revision 835)
+++ tmp/org.txm.textsbalance.feature/feature.xml	(revision 836)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-      id="TextBalanceFeature"
+      id="org.txm.textbalance.feature"
       label="Texts Balance"
       version="1.0.0.qualifier"
       provider-name="TXM">
Index: tmp/org.txm.svn.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.svn.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.svn.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -12,9 +12,9 @@
 Bundle-Vendor: Textometrie.org
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: %Bundle-Name
+Bundle-Name: org.txm.svn.rcp
 Bundle-ManifestVersion: 2
 Bundle-Activator: svnenvironement.Activator
-Bundle-SymbolicName: SVNEnvironmentRCP;singleton:=true
+Bundle-SymbolicName: org.txm.svn.rcp;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 835)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/editors/ChartEditor.java	(revision 836)
@@ -106,13 +106,12 @@
 	
 	/**
 	 * Subclasses manual creation.
-	 * @param parent
 	 */
-	public abstract void __createPartControl(Composite parent);
+	public abstract void __createPartControl();
 	
 	
 	@Override
-	public final void _createPartControl(Composite parent) {
+	public final void _createPartControl() {
 		
 		// Toolbar
 		this.chartToolBar = new ChartEditorToolBar(this, this.getTopToolbarContainer(), this.getParametersGroupsComposite(), SWT.FLAT | SWT.RIGHT);
@@ -160,7 +159,7 @@
 //		}
 		
 		 // subclasses manual creation
-		this.__createPartControl(parent);
+		this.__createPartControl();
 		
 	}
 
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/view/ElementSearchView.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/view/ElementSearchView.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/view/ElementSearchView.java	(revision 836)
@@ -40,6 +40,7 @@
 import org.txm.concordance.core.functions.Concordance;
 import org.txm.concordance.rcp.editors.ConcordanceEditor;
 import org.txm.concordance.rcp.handlers.ComputeConcordance;
+import org.txm.edition.rcp.handlers.BackToText;
 import org.txm.rcp.IImageKeys;
 import org.txm.rcp.utils.SWTEditorsUtils;
 import org.txm.searchengine.cqp.ReferencePattern;
@@ -49,7 +50,6 @@
 import org.txm.searchengine.cqp.corpus.Property;
 import org.txm.searchengine.cqp.corpus.WordProperty;
 import org.txm.searchengine.cqp.corpus.query.Query;
-import org.txm.synopticedition.rcp.handlers.BackToText;
 import org.txm.utils.logger.Log;
 
 import visuAnalec.Message;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/toolbarbutton/StartButton.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/toolbarbutton/StartButton.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/toolbarbutton/StartButton.java	(revision 836)
@@ -20,10 +20,9 @@
 import org.txm.analec.toolbar.UnitToolbar;
 import org.txm.analec.view.ElementPropertiesView;
 import org.txm.analec.view.ElementSearchView;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
+import org.txm.edition.rcp.editors.ext.ToolbarButton;
 import org.txm.objects.Text;
-import org.txm.synopticedition.*;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
-import org.txm.synopticedition.rcp.editors.ext.ToolbarButton;
 import org.txm.rcp.IImageKeys;
 import org.txm.rcp.utils.JobHandler;
 import org.txm.rcp.views.corpora.CorporaView;
@@ -233,7 +232,11 @@
 		return true;
 	}
 
-	private void openToolbar(Class clazz) {
+	/**
+	 * manage the opening of AnnotationToolbar s
+	 * @param clazz
+	 */
+	private void openToolbar(Class<? extends AnnotationToolbar> clazz) {
 		if (utoolbar != null && utoolbar.getClass().equals(clazz)) return;
 		if (utoolbar != null) {
 			closeToolbar();
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/commands/SaveCorpus.java	(revision 836)
@@ -10,10 +10,10 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.txm.analec.AnalecCorpora;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
 import org.txm.rcp.TXMWindows;
 import org.txm.rcp.views.corpora.CorporaView;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
 
 import visuAnalec.donnees.Corpus;
 import visuAnalec.fichiers.FichiersJava;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/UnitToolbar.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/UnitToolbar.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/UnitToolbar.java	(revision 836)
@@ -35,6 +35,9 @@
 import org.txm.analec.view.ElementPropertiesView;
 import org.txm.analec.widgets.NavigationField;
 import org.txm.core.preferences.TXMPreferences;
+import org.txm.edition.rcp.editors.EditionPanel;
+import org.txm.edition.rcp.editors.RGBA;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
 import org.txm.objects.Edition;
 import org.txm.objects.Page;
 import org.txm.objects.Text;
@@ -48,9 +51,6 @@
 import org.txm.searchengine.cqp.corpus.QueryResult;
 import org.txm.searchengine.cqp.corpus.query.Match;
 import org.txm.searchengine.cqp.corpus.query.Query;
-import org.txm.synopticedition.rcp.editors.EditionPanel;
-import org.txm.synopticedition.rcp.editors.RGBA;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
 import org.txm.utils.logger.Log;
 
 import visuAnalec.Message;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/SchemaToolbar.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/SchemaToolbar.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/SchemaToolbar.java	(revision 836)
@@ -33,6 +33,9 @@
 import org.txm.analec.view.ElementPropertiesView;
 import org.txm.analec.widgets.NavigationField;
 import org.txm.core.preferences.TXMPreferences;
+import org.txm.edition.rcp.editors.EditionPanel;
+import org.txm.edition.rcp.editors.RGBA;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
 import org.txm.objects.Edition;
 import org.txm.objects.Page;
 import org.txm.objects.Text;
@@ -45,9 +48,6 @@
 import org.txm.searchengine.cqp.corpus.QueryResult;
 import org.txm.searchengine.cqp.corpus.query.Match;
 import org.txm.searchengine.cqp.corpus.query.Query;
-import org.txm.synopticedition.rcp.editors.EditionPanel;
-import org.txm.synopticedition.rcp.editors.RGBA;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
 import org.txm.utils.logger.Log;
 
 import visuAnalec.Message;
Index: tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/AnnotationToolbar.java
===================================================================
--- tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/AnnotationToolbar.java	(revision 835)
+++ tmp/org.txm.analec.rcp/src/org/txm/analec/toolbar/AnnotationToolbar.java	(revision 836)
@@ -10,15 +10,15 @@
 import org.eclipse.ui.part.EditorPart;
 import org.txm.analec.toolbarbutton.StartButton;
 import org.txm.analec.view.ElementPropertiesView;
+import org.txm.edition.rcp.editors.EditionPanel;
+import org.txm.edition.rcp.editors.RGBA;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
 import org.txm.objects.Text;
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
 import org.txm.searchengine.cqp.corpus.MainCorpus;
 import org.txm.searchengine.cqp.corpus.QueryResult;
 import org.txm.searchengine.cqp.corpus.query.Match;
 import org.txm.searchengine.cqp.corpus.query.Query;
-import org.txm.synopticedition.rcp.editors.EditionPanel;
-import org.txm.synopticedition.rcp.editors.RGBA;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
 import org.txm.utils.logger.Log;
 
 import visuAnalec.donnees.Corpus;
Index: tmp/org.txm.analec.rcp/plugin.xml
===================================================================
--- tmp/org.txm.analec.rcp/plugin.xml	(revision 835)
+++ tmp/org.txm.analec.rcp/plugin.xml	(revision 836)
@@ -248,7 +248,7 @@
       </command>
    </extension>
    <extension
-         point="org.txm.synopticedition.rcp.editors.ext.ToolbarButton">
+         point="org.txm.edition.rcp.editors.ext.ToolbarButton">
       <Button
             class="org.txm.analec.toolbarbutton.StartButton"></Button>
    </extension>
Index: tmp/org.txm.analec.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.analec.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.analec.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -1,26 +1,19 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.ui;visibility:=reexport,org.eclipse.core.r
- untime;visibility:=reexport,org.eclipse.jface;visibility:=reexport,or
- g.eclipse.swt;visibility:=reexport,org.eclipse.core.expressions;bundl
- e-version="3.4.600";visibility:=reexport,org.txm.core;bundle-version=
- "0.8.0";visibility:=reexport,org.txm.rcp;bundle-version="0.8.0";visib
- ility:=reexport,org.txm.utils;visibility:=reexport,org.txm.synopticed
- itor.rcp;bundle-version="1.0.0";visibility:=reexport,org.txm.concorda
- nce.core;bundle-version="1.0.0";visibility:=reexport,org.txm.concorda
- nce.rcp;bundle-version="1.0.0";visibility:=reexport,org.txm.progressi
- on.core;bundle-version="1.0.0";visibility:=reexport,org.txm.progressi
- on.rcp;bundle-version="1.0.0";visibility:=reexport,org.txm.chartsengi
- ne.core;bundle-version="1.0.0";visibility:=reexport,org.txm.chartseng
- ine.jfreechart.core;bundle-version="1.0.0";visibility:=reexport,org.t
- xm.chartsengine.jfreechart.rcp;bundle-version="1.0.0";visibility:=ree
- xport,org.txm.chartsengine.r.core;bundle-version="1.0.0";visibility:=
- reexport,org.txm.chartsengine.r.rcp;bundle-version="1.0.0";visibility
- :=reexport,org.txm.chartsengine.raster.rcp;bundle-version="1.0.0";vis
- ibility:=reexport,org.txm.chartsengine.rcp;bundle-version="1.0.0";vis
- ibility:=reexport,org.txm.chartsengine.svgbatik.rcp;bundle-version="1
- .0.0";visibility:=reexport,org.txm.lexicaltable.core;bundle-version="
- 1.0.0";visibility:=reexport,org.txm.lexicaltable.rcp;bundle-version="
- 1.0.0";visibility:=reexport
+Require-Bundle: org.eclipse.ui;visibility:=reexport,
+ org.eclipse.core.runtime;visibility:=reexport,
+ org.eclipse.jface;visibility:=reexport,
+ org.eclipse.swt;visibility:=reexport,
+ org.eclipse.core.expressions;bundle-version="3.4.600";visibility:=reexport,
+ org.txm.core;bundle-version="0.8.0";visibility:=reexport,
+ org.txm.rcp;bundle-version="0.8.0";visibility:=reexport,
+ org.txm.utils;visibility:=reexport,
+ org.txm.concordance.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.progression.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.chartsengine.core;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.chartsengine.jfreechart.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.chartsengine.r.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.lexicaltable.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.edition.rcp;bundle-version="1.0.0"
 Export-Package: JamaPlus,JamaPlus.util,analecrcp,org.txm.analec,org.tx
  m.analec.commands,org.txm.analec.preferences,org.txm.analec.testers,o
  rg.txm.analec.toolbar,org.txm.analec.toolbarbutton,org.txm.analec.vie
Index: tmp/org.txm.searchengine.cqp.feature/feature.xml
===================================================================
--- tmp/org.txm.searchengine.cqp.feature/feature.xml	(revision 835)
+++ tmp/org.txm.searchengine.cqp.feature/feature.xml	(revision 836)
@@ -16,6 +16,22 @@
       [Enter License Description here.]
    </license>
 
+   <requires>
+      <import plugin="org.txm.utils" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.core"/>
+      <import plugin="org.eclipse.ui"/>
+      <import plugin="org.eclipse.core.runtime"/>
+      <import plugin="org.txm.core" version="0.7.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.searchengine.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.libs.cqp" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.searchengine.cqp.core" version="1.1.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.core" version="0.8.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.rcp" version="0.8.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.commands" version="3.6.100" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui.workbench" version="3.106.2" match="greaterOrEqual"/>
+      <import plugin="org.txm.libs.cqp" version="1.0.0.qualifier" match="greaterOrEqual"/>
+   </requires>
+
    <plugin
          id="org.txm.libs.cqp"
          download-size="0"
@@ -53,4 +69,13 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.txm.libs.cqp.macosx"
+         os="macosx"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
 </feature>
Index: tmp/TXMBetaPlugins.site/index.html
===================================================================
--- tmp/TXMBetaPlugins.site/index.html	(revision 0)
+++ tmp/TXMBetaPlugins.site/index.html	(revision 836)
@@ -0,0 +1 @@
+<h3>TXM extensions - Beta</h3>
\ No newline at end of file

Property changes on: tmp/TXMBetaPlugins.site/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/TXMBetaPlugins.site/site.xml
===================================================================
--- tmp/TXMBetaPlugins.site/site.xml	(revision 835)
+++ tmp/TXMBetaPlugins.site/site.xml	(revision 836)
@@ -1,11 +1,3 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/TreeTaggerInstaller_1.0.0.201702061153.jar" id="TreeTaggerInstaller" version="1.0.0.201702061153">
-      <category name="NLP"/>
-   </feature>
-   <feature url="features/Analec_1.0.0.201702061153.jar" id="Analec" version="1.0.0.201702061153">
-      <category name="Annotation"/>
-   </feature>
-   <category-def name="NLP" label="NLP"/>
-   <category-def name="Annotation" label="Annotation"/>
 </site>
Index: tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java
===================================================================
--- tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java	(revision 835)
+++ tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/editors/AHCChartEditor.java	(revision 836)
@@ -66,7 +66,7 @@
 	
 
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 
 		// Extend the chart editor tool bar
 		new ToolItem(this.chartToolBar, SWT.SEPARATOR);
Index: tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java
===================================================================
--- tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java	(revision 835)
+++ tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java	(revision 836)
@@ -3,12 +3,16 @@
 
 import java.io.BufferedReader;
 import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.Properties;
 
 import org.eclipse.core.runtime.preferences.DefaultScope;
 import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.Version;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
+import org.txm.utils.BundleUtils;
 import org.txm.utils.io.IOUtils;
 
 /**
@@ -25,9 +29,17 @@
 	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(TreeTaggerPreferences.class).getSymbolicName();
 	
 	public static final String PREFERENCES_PREFIX = "treetagger_"; //$NON-NLS-1$
-	
 
 	/**
+	 * contains the last bundle version setting the TreeTagger binariesl directory
+	 */
+	public static final String INSTALLED_BINARIES_VERSION = PREFERENCES_PREFIX + "installed_binaries_version"; //$NON-NLS-1$
+	/**
+	 * contains the last bundle version setting the TreeTagger models directory
+	 */
+	public static final String INSTALLED_MODELS_VERSION = PREFERENCES_PREFIX + "installed_models_version"; //$NON-NLS-1$
+	
+	/**
 	 * Installation path.
 	 */
 	public static final String INSTALL_PATH = PREFERENCES_PREFIX + "install_path"; //$NON-NLS-1$
@@ -41,12 +53,10 @@
 	
 	public static final String FIX_APOSTROPHES = PREFERENCES_PREFIX + "fix_apostrophes"; //$NON-NLS-1$
 
-
-	
 	@Override
 	public void initializeDefaultPreferences() {
 
-		// Default preferences
+		// Default preferences if no org.txm.treetagger.core fragment is found
 		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
 		
 		String installPath = "/usr/lib/treetagger"; //"System.getProperty("osgi.user.area") + "/TXM/treetagger"; //$NON-NLS-1$ //$NON-NLS-2$
@@ -60,35 +70,97 @@
 		preferences.put(MODELS_PATH, installPath + "/models"); //$NON-NLS-1$
 		preferences.putBoolean(FIX_APOSTROPHES, false);
 
-		
 		// FIXME: need to validate this code + need to check if it's still useful
+		String bversion = TXMPreferences.getString(INSTALLED_BINARIES_VERSION, PREFERENCES_NODE);
+		String mversion = TXMPreferences.getString(INSTALLED_MODELS_VERSION, PREFERENCES_NODE);
 		
-		// Restore previous TreeTagger preferences
-		File previousPreferenceFile = new File(System.getProperty("java.io.tmpdir"), "org.txm.rcp.prefs"); //$NON-NLS-1$ //$NON-NLS-2$
+		// if TXM is launch for the first time bversion and mversion valus are empty
+		if (bversion == null || bversion.equals("") || mversion == null || mversion.equals("")) {
+			
+			// Restore previous TreeTagger preferences
+			File previousPreferenceFile = new File(System.getProperty("java.io.tmpdir"), "org.txm.rcp.prefs"); //$NON-NLS-1$ //$NON-NLS-2$
 
-		if (System.getProperty("os.name").indexOf("Mac") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$
-			previousPreferenceFile = new File("/tmp/org.txm.rcp.prefs"); //$NON-NLS-1$
-		}
+			if (System.getProperty("os.name").indexOf("Mac") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$
+				previousPreferenceFile = new File("/tmp/org.txm.rcp.prefs"); //$NON-NLS-1$
+			}
 
-		if (previousPreferenceFile.exists()) {
-			try {
-				System.out.println("Restoring preferences (from " + previousPreferenceFile + ")."); //$NON-NLS-1$ //$NON-NLS-2$
-				Properties previousProperties = new Properties();
-				BufferedReader reader = IOUtils.getReader(previousPreferenceFile, "ISO-8859-1"); //$NON-NLS-1$
-				previousProperties.load(reader);
-				
-				String [] keys= {INSTALL_PATH, MODELS_PATH, OPTIONS};
-				for (String k : keys) {
-					if (previousProperties.getProperty(k) != null) {
-						TreeTaggerPreferences.put(PREFERENCES_NODE, k, previousProperties.getProperty(k));
+			if (previousPreferenceFile.exists()) {
+				try {
+					System.out.println("Restoring preferences (from " + previousPreferenceFile + ")."); //$NON-NLS-1$ //$NON-NLS-2$
+					Properties previousProperties = new Properties();
+					BufferedReader reader = IOUtils.getReader(previousPreferenceFile, "ISO-8859-1"); //$NON-NLS-1$
+					previousProperties.load(reader);
+					
+					String [] keys= {INSTALL_PATH, MODELS_PATH, OPTIONS};
+					for (String k : keys) {
+						if (previousProperties.getProperty(previousProperties.getProperty(k)) != null) {
+							preferences.put(k, installPath);
+							TreeTaggerPreferences.put(PREFERENCES_NODE, k, previousProperties.getProperty(k));
+						}
 					}
 				}
+				catch (Exception e) {
+					e.printStackTrace();
+				}
 			}
-			catch (Exception e) {
+			
+			TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_BINARIES_VERSION, "0.0.0");
+			TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_MODELS_VERSION, "0.0.0");
+			
+			bversion = TXMPreferences.getString(INSTALLED_BINARIES_VERSION, PREFERENCES_NODE);
+			mversion = TXMPreferences.getString(INSTALLED_MODELS_VERSION, PREFERENCES_NODE);
+		}
+		
+		// look for org.txm.treetagger.core.<osname> fragment
+		String mfragmentid = "org.txm.treetagger.core.models";
+		String bfragmentid = "org.txm.treetagger.core";
+		String osname = System.getProperty("os.name").toLowerCase();
+		if (osname.contains("windows")) {
+			osname = "win32";
+		} else if (osname.contains("macosx")) {
+			osname = "macosx";
+		} else {
+			osname = "linux";
+		}
+		bfragmentid += "."+osname;
+		
+		Version currentBVersion = new Version(bversion);
+		Version currentMVersion = new Version(mversion);
+		Version binariesFragmentVersion = BundleUtils.getBundleVersion(bfragmentid);
+		if (binariesFragmentVersion != null && binariesFragmentVersion.compareTo(currentBVersion) >= 0) { // udpate binaries path !
+			System.out.print("Updating TreeTagger binaries path...");
+			try {
+				URL dir = new URL(BundleUtils.getBundleLocation(bfragmentid));
+				String path = dir.getPath();
+				if (path.startsWith("file:")) path = path.substring(5);
+				File binariesDir = new File(path, "res/"+osname);
+				new File(binariesDir, "bin/separate-punctuation").setExecutable(true); // linux&mac
+				new File(binariesDir, "bin/tree-tagger").setExecutable(true); // linux&mac
+				new File(binariesDir, "bin/train-tree-tagger").setExecutable(true); // linux&mac
+				preferences.put(INSTALL_PATH, binariesDir.getAbsolutePath());
+				TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_BINARIES_VERSION, binariesFragmentVersion.toString());
+				System.out.println("Done.");
+			} catch (MalformedURLException e) {
+				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
-
+		
+		Version modelsFragmentVersion = BundleUtils.getBundleVersion(mfragmentid);
+		if (modelsFragmentVersion != null && modelsFragmentVersion.compareTo(currentMVersion) >= 0) { // udpate models path!
+			System.out.print("Updating TreeTagger models path...");
+			try {
+				URL dir = new URL(BundleUtils.getBundleLocation(mfragmentid));
+				String path = dir.getPath();
+				if (path.startsWith("file:")) path = path.substring(5);
+				File modelsDir = new File(path, "res/models");
+				preferences.put(MODELS_PATH, modelsDir.getAbsolutePath()); //$NON-NLS-1$
+				TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_MODELS_VERSION, modelsFragmentVersion.toString());
+				System.out.println("Done.");
+			} catch (MalformedURLException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
 	}
-	
 }
Index: tmp/org.txm.wordcloud.feature/feature.xml
===================================================================
--- tmp/org.txm.wordcloud.feature/feature.xml	(revision 835)
+++ tmp/org.txm.wordcloud.feature/feature.xml	(revision 836)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-      id="WordCloudFeature"
+      id="org.txm.wordcloud.feature"
       label="WordCloud"
       version="1.0.0.qualifier">
 
@@ -67,20 +67,37 @@
    </license>
 
    <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ui"/>
       <import plugin="org.txm.core" version="0.7.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.rcp" version="0.7.5" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.core.expressions" version="3.4.500" match="greaterOrEqual"/>
-      <import plugin="org.txm.wordcloud.rcp"/>
-      <import plugin="org.txm.wordcloud.core"/>
+
+      <import plugin="org.txm.utils" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.runtime" version="3.10.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.searchengine.cqp.core" version="1.1.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.statsengine.r.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.jfreechart.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.statsengine.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.r.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.index.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.rcp" version="0.7.8" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.osgi" version="3.10.2" match="greaterOrEqual"/>
+      <import plugin="org.txm.index.rcp" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.ui" version="3.106.1" match="greaterOrEqual"/>
+      <import plugin="org.txm.wordcloud.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.rcp"/>
    </requires>
 
    <plugin
-         id="WordCloudRCP"
+         id="org.txm.wordcloud.core"
          download-size="0"
          install-size="0"
-         version="1.0.0.qualifier"
+         version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.txm.wordcloud.rcp"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java	(revision 835)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesEditor.java	(revision 836)
@@ -99,7 +99,7 @@
 	
 	
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		try {
 
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java	(revision 835)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesSelectionEditor.java	(revision 836)
@@ -37,7 +37,7 @@
 
 	
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 		
 		// Group bars by lines
 		groupBarsByLines = new ToolItem(this.getToolBar(), SWT.CHECK);
Index: tmp/org.txm.information.rcp/src/org/txm/properties/rcp/editors/PropertiesEditor.java
===================================================================
--- tmp/org.txm.information.rcp/src/org/txm/properties/rcp/editors/PropertiesEditor.java	(revision 835)
+++ tmp/org.txm.information.rcp/src/org/txm/properties/rcp/editors/PropertiesEditor.java	(revision 836)
@@ -64,7 +64,7 @@
 
 
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		Composite parametersArea = this.getExtendedParametersComposite();
 
Index: tmp/org.txm.rcp.feature/feature.xml
===================================================================
--- tmp/org.txm.rcp.feature/feature.xml	(revision 835)
+++ tmp/org.txm.rcp.feature/feature.xml	(revision 836)
@@ -93,39 +93,112 @@
          optional="true"/>
 
    <includes
+         id="org.txm.treetagger.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.ahc.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.annotation.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.ca.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.concordance.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.cooccurrence.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.edition.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.groovy.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.index.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.internalview.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.lexicaltable.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.partition.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.progression.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.properties.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.referencer.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
          id="org.txm.searchengine.cqp.feature"
          version="0.0.0"
          optional="true"/>
 
+   <includes
+         id="org.txm.specificities.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.treetagger.feature"
+         version="0.0.0"
+         optional="true"/>
+
+   <includes
+         id="org.txm.chartsengine.jfreechart.feature"
+         version="0.0.0"/>
+
+   <includes
+         id="org.txm.chartsengine.r.feature"
+         version="0.0.0"/>
+
    <requires>
-      <import plugin="org.txm.statsengine.r.core" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.runtime" version="3.10.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.lexicaltable.core"/>
-      <import plugin="org.txm.searchengine.cqp.core" version="1.1.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.osgi" version="3.10.2" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui" version="3.106.1" match="greaterOrEqual"/>
-      <import plugin="org.txm.chartsengine.rcp"/>
-      <import plugin="org.eclipse.core.expressions" version="3.4.600" match="greaterOrEqual"/>
-      <import plugin="org.txm.libs.itext"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.swt"/>
-      <import plugin="org.eclipse.e4.ui.workbench.renderers.swt"/>
-      <import plugin="org.eclipse.swt" version="3.103.2" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.e4.ui.workbench" version="1.2.2" match="greaterOrEqual"/>
-      <import plugin="org.txm.concordance.core"/>
-      <import plugin="org.txm.utils"/>
-      <import plugin="org.txm.statsengine.r.rcp" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.osgi.util" version="3.2.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.net"/>
+      <import plugin="org.eclipse.osgi" version="3.10.2" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.commands" version="3.6.100" match="greaterOrEqual"/>
-      <import plugin="org.txm.libs.rserve"/>
-      <import plugin="org.txm.libs.cqp" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.properties.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.resources"/>
       <import plugin="org.apache.xerces" version="2.9.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.chartsengine.core"/>
-      <import plugin="org.txm.partition.core"/>
-      <import plugin="org.txm.concordance.rcp"/>
-      <import plugin="org.txm.synopticeditor.rcp"/>
+      <import plugin="org.eclipse.ui" version="3.106.1" match="greaterOrEqual"/>
       <import plugin="org.eclipse.core.filesystem" version="1.2.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.ide"/>
       <import plugin="org.eclipse.ui.console" version="3.4.0" match="greaterOrEqual"/>
@@ -152,6 +225,7 @@
       <import plugin="org.eclipse.equinox.p2.ui.discovery" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.equinox.p2.discovery" version="1.0.200" match="greaterOrEqual"/>
       <import plugin="org.eclipse.equinox.p2.discovery.compatibility" version="1.0.101" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.swt"/>
       <import plugin="org.eclipse.equinox.p2.repository" version="2.3.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.equinox.p2.core" version="2.3.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.equinox.p2.engine" version="2.3.0" match="greaterOrEqual"/>
@@ -160,6 +234,7 @@
       <import plugin="org.eclipse.e4.ui.model.workbench"/>
       <import plugin="org.eclipse.e4.ui.workbench" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.e4.core.contexts" version="1.3.0" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.core.expressions" version="3.4.600" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.navigator" version="3.5.300" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.navigator.resources" version="3.4.500" match="greaterOrEqual"/>
       <import plugin="org.eclipse.e4.ui.di"/>
@@ -171,16 +246,19 @@
       <import plugin="org.eclipse.osgi.util" version="3.3.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.equinox.p2.reconciler.dropins" version="1.1.200" match="greaterOrEqual"/>
       <import plugin="org.eclipse.ui.views.log" version="1.0.500" match="greaterOrEqual"/>
+      <import plugin="org.txm.searchengine.cqp.core" version="1.1.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.jfreechart.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.chartsengine.r.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.specificities.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.statsengine.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.statsengine.r.core" version="1.0.0" match="greaterOrEqual"/>
+      <import plugin="org.txm.searchengine.core" version="1.0.0" match="greaterOrEqual"/>
       <import plugin="org.txm.groovy.core"/>
-      <import plugin="org.eclipse.ui.browser" version="3.4.100" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.jface.databinding" version="1.6.200" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.jface.text" version="3.9.2" match="greaterOrEqual"/>
+      <import plugin="org.eclipse.jface" version="3.9.0" match="compatible"/>
       <import plugin="org.eclipse.core.net" version="1.2.200" match="greaterOrEqual"/>
-      <import plugin="org.txm.specificities.core"/>
-      <import plugin="org.txm.lexicaltable.rcp"/>
       <import plugin="org.eclipse.core.runtime" version="3.6.0" match="compatible"/>
       <import plugin="org.eclipse.help" version="3.2.0" match="compatible"/>
-      <import plugin="org.eclipse.jface" version="3.9.0" match="compatible"/>
       <import plugin="org.eclipse.swt" version="3.101.0" match="compatible"/>
       <import plugin="org.eclipse.jface.databinding" version="1.3.0" match="compatible"/>
       <import plugin="org.eclipse.core.databinding.property" version="1.2.0" match="compatible"/>
@@ -198,179 +276,15 @@
       <import plugin="org.eclipse.e4.ui.workbench3" version="0.12.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.e4.ui.workbench.addons.swt" version="0.10.0" match="greaterOrEqual"/>
       <import plugin="org.eclipse.emf.ecore" version="2.7.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.ca.core"/>
-      <import plugin="org.eclipse.persistence.asm" version="3.3.1" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.persistence.jpa" version="2.6.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.persistence.jpa.jpql" version="2.6.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.persistence.antlr" version="3.2.0" match="greaterOrEqual"/>
-      <import plugin="org.txm.annotation.core" version="1.0.0" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.workbench" version="3.106.2" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.console" version="3.5.300" match="greaterOrEqual"/>
-      <import plugin="org.eclipse.ui.ide" version="3.10.2" match="greaterOrEqual"/>
-      <import plugin="org.txm.treetagger.core" version="1.0.0" match="greaterOrEqual"/>
    </requires>
 
    <plugin
-         id="org.txm.ca.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.ca.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.ahc.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.jfreechart.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.jfreechart.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.r.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.r.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.raster.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.chartsengine.svgbatik.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.concordance.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.concordance.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.cooccurrence.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.cooccurrence.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
          id="org.txm.core"
          download-size="0"
          install-size="0"
          version="0.8.0.qualifier"/>
 
    <plugin
-         id="org.txm.groovy.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.index.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.index.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.internalview.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.internalview.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.lexicaltable.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.lexicaltable.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
          id="org.txm.libs.batik"
          download-size="0"
          install-size="0"
@@ -425,34 +339,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.txm.partition.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.partition.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.progression.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.progression.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
          id="org.txm.rcp"
          download-size="0"
          install-size="0"
@@ -460,48 +346,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.txm.referencer.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.referencer.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.searchengine.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.specificities.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.statsengine.core"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.synopticeditor.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
          id="org.txm.utils"
          download-size="0"
          install-size="0"
@@ -509,101 +353,10 @@
          unpack="false"/>
 
    <plugin
-         id="javax.persistence"
-         download-size="0"
-         install-size="0"
-         version="2.1.0.v201304241213"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.specificities.rcp"
-         download-size="0"
-         install-size="0"
-         version="1.0.0.qualifier"
-         unpack="false"/>
-
-   <plugin
          id="org.eclipse.ui.workbench"
          download-size="0"
          install-size="0"
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
-         id="org.txm.ahc.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.properties.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.properties.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.annotation.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.annotation.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.searchengine.cqp.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.searchengine.cqp.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.statsengine.r.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.statsengine.r.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.treetagger.core"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.txm.treetagger.rcp"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
 </feature>
Index: tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/editors/WordCloudEditor.java
===================================================================
--- tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/editors/WordCloudEditor.java	(revision 835)
+++ tmp/org.txm.wordcloud.rcp/src/org/txm/wordcloud/rcp/editors/WordCloudEditor.java	(revision 836)
@@ -38,7 +38,7 @@
 	
 	
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 
 		// for group tests
 		Composite parametersArea = this.getExtendedParametersComposite();
Index: tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/editors/InternalViewEditor.java
===================================================================
--- tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/editors/InternalViewEditor.java	(revision 835)
+++ tmp/org.txm.internalview.rcp/src/org/txm/internalview/rcp/editors/InternalViewEditor.java	(revision 836)
@@ -90,7 +90,7 @@
 
 	
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		internalView = this.getResult();
 
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java	(revision 835)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/editors/PartitionDimensionsEditor.java	(revision 836)
@@ -30,7 +30,7 @@
 
 	
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 
 		// extend the tool bar
 		new ToolItem(this.getToolBar(), SWT.SEPARATOR);
Index: tmp/org.txm.synopticeditor.feature/.project
===================================================================
--- tmp/org.txm.synopticeditor.feature/.project	(revision 835)
+++ tmp/org.txm.synopticeditor.feature/.project	(revision 836)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.txm.synopticeditor.feature</name>
+	<name>org.txm.edition.feature</name>
 	<comment></comment>
 	<projects>
 	</projects>
Index: tmp/org.txm.synopticeditor.feature/feature.xml
===================================================================
--- tmp/org.txm.synopticeditor.feature/feature.xml	(revision 835)
+++ tmp/org.txm.synopticeditor.feature/feature.xml	(revision 836)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
-      id="org.txm.synopticeditor.feature"
+      id="org.txm.edition.feature"
       label="Edition"
       version="1.0.0.qualifier"
       provider-name="Textometrie.org">
@@ -80,7 +80,7 @@
    </requires>
 
    <plugin
-         id="org.txm.synopticeditor.rcp"
+         id="org.txm.edition.rcp"
          download-size="0"
          install-size="0"
          version="0.0.0"
Index: tmp/TXMReleasePlugins.site/index.html
===================================================================
--- tmp/TXMReleasePlugins.site/index.html	(revision 0)
+++ tmp/TXMReleasePlugins.site/index.html	(revision 836)
@@ -0,0 +1 @@
+<h3>TXM extensions</h3>
\ No newline at end of file

Property changes on: tmp/TXMReleasePlugins.site/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/TXMReleasePlugins.site/site.xml
===================================================================
--- tmp/TXMReleasePlugins.site/site.xml	(revision 835)
+++ tmp/TXMReleasePlugins.site/site.xml	(revision 836)
@@ -3,4 +3,9 @@
    <description name="TXM Extensions - RELEASE" url="http://txm.textometrie.org/updates/plugins">
       This update site contains the Release plugins for TXM
    </description>
+   <feature url="features/org.txm.analec.feature_1.0.0.201806061049.jar" id="org.txm.analec.feature" version="1.0.0.201806061049"/>
+   <feature url="features/org.txm.treetagger.feature_1.0.0.201806061049.jar" id="org.txm.treetagger.feature" version="1.0.0.201806061049"/>
+   <feature url="features/org.txm.backtomedia.feature_1.0.0.201806061049.jar" id="org.txm.backtomedia.feature" version="1.0.0.201806061049"/>
+   <feature url="features/org.txm.textbalance.feature_1.0.0.201806061049.jar" id="org.txm.textbalance.feature" version="1.0.0.201806061049"/>
+   <feature url="features/org.txm.wordcloud.feature_1.0.0.201806061049.jar" id="org.txm.wordcloud.feature" version="1.0.0.201806061049"/>
 </site>

Property changes on: tmp/TXMReleasePlugins.site
___________________________________________________________________
Added: svn:ignore
   + features

artifacts.jar

plugins

content.jar

logs.zip


Index: tmp/org.txm.tigersearch.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.tigersearch.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.tigersearch.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -142,10 +142,10 @@
 Bundle-ClassPath: lib/dom4j-1.6.1.jar,lib/log4j-1.2.12.jar,lib/TigerSe
  arch.jar,.
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: TIGERSearch
+Bundle-Name: org.txm.tigersearch.rcp
 Bundle-ManifestVersion: 2
 Bundle-Activator: tigersearch4txm.Activator
-Bundle-SymbolicName: TIGERSearchRCP;singleton:=true
+Bundle-SymbolicName: org.txm.tigersearch.rcp;singleton:=true
 Import-Package: ims.tiger.gui.tigergraphviewer.forest
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 
Index: tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TSIndexEditor.java
===================================================================
--- tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TSIndexEditor.java	(revision 835)
+++ tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TSIndexEditor.java	(revision 836)
@@ -41,8 +41,6 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.custom.StyledText;
-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;
@@ -52,7 +50,6 @@
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.FontData;
 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;
@@ -455,63 +452,44 @@
 	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(final Composite parent) {
+	public void _createPartControl() {
 		
-		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));
+//			}
+//		});
 
-		//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());
+		final Composite paramArea = getExtendedParametersComposite();
 
-		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);
+		final Composite infosArea = getBottomToolbar().installGLComposite("infos", 1, false);
 
-		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);
+		Composite resultArea = getResultArea();
 
 		// compose paramArea
 		FormLayout paramLayout = new FormLayout();
@@ -998,7 +976,7 @@
 		initializeFields();
 		createContextMenu(viewer);
 		viewer.getTable().pack();
-		parent.layout(true);
+		layout(true);
 		//System.out.println("Part control done.");
 	}
 
Index: tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java
===================================================================
--- tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java	(revision 835)
+++ tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java	(revision 836)
@@ -65,7 +65,7 @@
 	private boolean isStored = false;
 
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		// System.out.println(parent.getLayout());
 		Composite queryPanel = this.getExtendedParametersComposite();
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/IndexEditor.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/IndexEditor.java	(revision 835)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/IndexEditor.java	(revision 836)
@@ -158,7 +158,7 @@
 	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		
 		this.index = (Index) this.getResult();
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/DictionnaryEditor.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/DictionnaryEditor.java	(revision 835)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/editors/DictionnaryEditor.java	(revision 836)
@@ -17,8 +17,8 @@
 	 * @see org.txm.rcp.editors.index.IndexEditor#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(final Composite parent) {
-		super._createPartControl(parent);
+	public void _createPartControl() {
+		super._createPartControl();
 		
 		this.propertiesSelector.setMaxPropertyNumber(1);
 		this.queryWidget.setText("[]"); //$NON-NLS-1$
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/CooccurrencesEditor.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/CooccurrencesEditor.java	(revision 835)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/CooccurrencesEditor.java	(revision 836)
@@ -196,7 +196,7 @@
 	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(final Composite parent) {
+	public void _createPartControl() {
 
 		// FormLayout parentLayout = new FormLayout();
 		// parent.setLayout(parentLayout);
Index: tmp/org.txm.libs.cqp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.libs.cqp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.libs.cqp/META-INF/MANIFEST.MF	(revision 836)
@@ -8,3 +8,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ActivationPolicy: lazy
 Export-Package: org.txm.libs.cqp
+Bundle-Vendor: Textometrie.org
Index: tmp/org.txm.core/buildJavadoc.xml
===================================================================
--- tmp/org.txm.core/buildJavadoc.xml	(revision 835)
+++ tmp/org.txm.core/buildJavadoc.xml	(revision 836)
@@ -24,7 +24,7 @@
 		-->
 		<groovydoc 
 			destdir="javadoc/" 
-			sourcepath="../org.txm.core/src/java:../org.txm.statsengine.r.core/src:../org.txm.core.tests/src:../org.txm.cql2lsa.rcp/src:../org.txm.oriflamms.rcp/src:../org.txm.dictionary.rcp/src:../org.txm.para.core/src:../org.txm.groovy.core/src:../org.txm.para.rcp/src:../org.txm.groovy.rcp/src:../org.txm.partition.core/src:../org.txm.statsengine.r.rcp/src:../org.txm.imports.metopes/src:../org.txm.partition.rcp/src:../org.txm.svn.rcp/src:../org.txm.analec.rcp/src:../org.txm.index.core/src:../org.txm.practically.rcp/src:../org.txm.annotation.core/src:../org.txm.index.rcp/src:../org.txm.progression.core/src:../org.txm.synopticeditor.rcp/src:../org.txm.annotation.rcp/src:../org.txm.internalview.core/src:../org.txm.progression.rcp/src:../org.txm.textsbalance.core/src:../org.txm.backtomedia.rcp/src:../org.txm.internalview.rcp/src:../org.txm.querycooccurrences.rcp/src:../org.txm.ca.core/src:../org.txm.jodconverter.core/src:../org.txm.queryindex.rcp/src:../org.txm.textsbalance.rcp/src:../org.txm.ahc.core/src:../org.txm.lexicaltable.core/src:../org.txm.r/src:../org.txm.tigersearch.rcp/src:../org.txm.cah.rcp/src:../org.txm.lexicaltable.rcp/src:../org.txm.rcp/src/main/java:../org.txm.tmp.rcp/src:../org.txm.ca.rcp/src:../org.txm.lexicon.core/src:../org.txm.rcp.about.fragment/src:../org.txm.treetaggerinstaller.rcp/src:../org.txm.chartsengine.core/src:../org.txm.lexicon.rcp/src:../org.txm.treetagger.rcp/src:../org.txm.chartsengine.jfreechart.core/src:../org.txm.rcp.p2.ui/src:../org.txm.utils/src:../org.txm.chartsengine.jfreechart.rcp/src:../org.txm.referencer.core/src:../org.txm.wordcloud.core/src:../org.txm.chartsengine.raster.rcp/src:../org.txm.referencer.rcp/src:../org.txm.chartsengine.r.core/src:../org.txm.searchengine.core/src:../org.txm.wordcloud.rcp/src:../org.txm.chartsengine.rcp/src:../org.txm.searchengine.cqp.core/src:../org.txm.xmleditor.rcp/src:../org.txm.chartsengine.r.rcp/src:../org.txm.chartsengine.svgbatik.rcp/src:../org.txm.searchengine.cqp.rcp/src:../org.txm.concordance.core/src:../org.txm.setups.startdialog/src:../org.txm.concordance.rcp/src:../org.txm.specificities.core/src:../org.txm.cooccurrence.core/src:../org.txm.specificities.rcp/src:../org.txm.cooccurrence.rcp/src:../org.txm.statsengine.core" 
+			sourcepath="../org.txm.core/src/java:../org.txm.statsengine.r.core/src:../org.txm.core.tests/src:../org.txm.cql2lsa.rcp/src:../org.txm.oriflamms.rcp/src:../org.txm.dictionary.rcp/src:../org.txm.para.core/src:../org.txm.groovy.core/src:../org.txm.para.rcp/src:../org.txm.groovy.rcp/src:../org.txm.partition.core/src:../org.txm.statsengine.r.rcp/src:../org.txm.imports.metopes/src:../org.txm.partition.rcp/src:../org.txm.svn.rcp/src:../org.txm.analec.rcp/src:../org.txm.index.core/src:../org.txm.practically.rcp/src:../org.txm.annotation.core/src:../org.txm.index.rcp/src:../org.txm.progression.core/src:../org.txm.edition.rcp/src:../org.txm.annotation.rcp/src:../org.txm.internalview.core/src:../org.txm.progression.rcp/src:../org.txm.textsbalance.core/src:../org.txm.backtomedia.rcp/src:../org.txm.internalview.rcp/src:../org.txm.querycooccurrences.rcp/src:../org.txm.ca.core/src:../org.txm.jodconverter.core/src:../org.txm.queryindex.rcp/src:../org.txm.textsbalance.rcp/src:../org.txm.ahc.core/src:../org.txm.lexicaltable.core/src:../org.txm.r/src:../org.txm.tigersearch.rcp/src:../org.txm.cah.rcp/src:../org.txm.lexicaltable.rcp/src:../org.txm.rcp/src/main/java:../org.txm.tmp.rcp/src:../org.txm.ca.rcp/src:../org.txm.lexicon.core/src:../org.txm.rcp.about.fragment/src:../org.txm.treetaggerinstaller.rcp/src:../org.txm.chartsengine.core/src:../org.txm.lexicon.rcp/src:../org.txm.treetagger.rcp/src:../org.txm.chartsengine.jfreechart.core/src:../org.txm.rcp.p2.ui/src:../org.txm.utils/src:../org.txm.chartsengine.jfreechart.rcp/src:../org.txm.referencer.core/src:../org.txm.wordcloud.core/src:../org.txm.chartsengine.raster.rcp/src:../org.txm.referencer.rcp/src:../org.txm.chartsengine.r.core/src:../org.txm.searchengine.core/src:../org.txm.wordcloud.rcp/src:../org.txm.chartsengine.rcp/src:../org.txm.searchengine.cqp.core/src:../org.txm.xmleditor.rcp/src:../org.txm.chartsengine.r.rcp/src:../org.txm.chartsengine.svgbatik.rcp/src:../org.txm.searchengine.cqp.rcp/src:../org.txm.concordance.core/src:../org.txm.setups.startdialog/src:../org.txm.concordance.rcp/src:../org.txm.specificities.core/src:../org.txm.cooccurrence.core/src:../org.txm.specificities.rcp/src:../org.txm.cooccurrence.rcp/src:../org.txm.statsengine.core" 
 			packagenames="org.txm.*" 
 
 			use="true"  
Index: tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java	(revision 835)
+++ tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java	(revision 836)
@@ -24,7 +24,7 @@
 	public static Version getBundleVersion(String bundle_id) {
 		Bundle bundle = Platform.getBundle(bundle_id);
 		if (bundle == null) {
-			System.out.println("Error while initializing "+bundle_id+" plugin: bundle not found.");
+			//System.out.println("Error while initializing "+bundle_id+" plugin: bundle not found.");
 			return null;
 		}
 		return bundle.getVersion();
@@ -38,7 +38,7 @@
 	public static String getBundleLocation(String bundle_id) {
 		Bundle bundle = Platform.getBundle(bundle_id);
 		if (bundle == null) {
-			System.out.println("Error while initializing Oriflamms plugin: bundle not found.");
+			//System.out.println("Error while initializing Oriflamms plugin: bundle not found.");
 			return null;
 		}
 		return bundle.getLocation();
Index: tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/editors/TextsBalanceEditor.java
===================================================================
--- tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/editors/TextsBalanceEditor.java	(revision 835)
+++ tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/editors/TextsBalanceEditor.java	(revision 836)
@@ -53,7 +53,7 @@
 	
 	
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 		
 		if (((TextsBalance)this.getResult()).getCorpus() == null) {
 			System.out.println("Error: no corpus");
Index: tmp/TXMAlphaPlugins.site/site.xml
===================================================================
--- tmp/TXMAlphaPlugins.site/site.xml	(revision 835)
+++ tmp/TXMAlphaPlugins.site/site.xml	(revision 836)
@@ -3,20 +3,4 @@
    <description name="TXM Extensions - Alpha" url="http://txm.textometrie.org/updates/TXMalpha">
       This update site contains the Alpha plugins for TXM
    </description>
-   <feature url="features/BackToMedia_1.0.0.201607181452.jar" id="BackToMedia" version="1.0.0.201607181452"/>
-   <feature url="features/CheckTXMFeature_1.0.0.201702061152.jar" id="CheckTXMFeature" version="1.0.0.201702061152"/>
-   <feature url="features/CQL2LSA_1.0.0.201702061152.jar" id="CQL2LSA" version="1.0.0.201702061152"/>
-   <feature url="features/Dictionary_1.0.0.201702061152.jar" id="Dictionary" version="1.0.0.201702061152"/>
-   <feature url="features/Oriflamms_1.0.0.201702061152.jar" id="Oriflamms" version="1.0.0.201702061152"/>
-   <feature url="features/QueryCooccurrencesFeature_1.0.0.201702061152.jar" id="QueryCooccurrencesFeature" version="1.0.0.201702061152"/>
-   <feature url="features/QueryIndex_1.0.0.201702061152.jar" id="QueryIndex" version="1.0.0.201702061152"/>
-   <feature url="features/SVNEnvironment.feature_1.0.0.201702061152.jar" id="SVNEnvironment.feature" version="1.0.0.201702061152"/>
-   <feature url="features/TextBalanceFeature_1.0.0.201702061152.jar" id="TextBalanceFeature" version="1.0.0.201702061152"/>
-   <feature url="features/TreeTagger_1.0.0.201702061152.jar" id="TreeTagger" version="1.0.0.201702061152"/>
-   <feature url="features/TreeTaggerInstaller_1.0.0.201702061152.jar" id="TreeTaggerInstaller" version="1.0.0.201702061152"/>
-   <feature url="features/WordCloudFeature_1.0.0.201702061152.jar" id="WordCloudFeature" version="1.0.0.201702061152"/>
-   <feature url="features/XMLEditor.feature_1.0.0.201702061152.jar" id="XMLEditor.feature" version="1.0.0.201702061152"/>
-   <feature url="features/TIGERSearch.feature_1.0.0.201702061152.jar" id="TIGERSearch.feature" version="1.0.0.201702061152"/>
-   <feature url="features/BackToMedia_1.0.0.201702061152.jar" id="BackToMedia" version="1.0.0.201702061152"/>
-   <feature url="features/Analec_1.0.0.201702061152.jar" id="Analec" version="1.0.0.201702061152"/>
 </site>
Index: tmp/TXMAlphaPlugins.site/index.html
===================================================================
--- tmp/TXMAlphaPlugins.site/index.html	(revision 0)
+++ tmp/TXMAlphaPlugins.site/index.html	(revision 836)
@@ -0,0 +1 @@
+<h3>TXM extensions - Alpha</h3>
\ No newline at end of file

Property changes on: tmp/TXMAlphaPlugins.site/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 835)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/editors/ProgressionEditor.java	(revision 836)
@@ -134,7 +134,7 @@
 
 
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 
 
 		// FIXME: tests to use Fields editor and ScopedPreferenceStore for command parameters
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/chartsengine/events/ProgressionEventCallBack.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/chartsengine/events/ProgressionEventCallBack.java	(revision 835)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/chartsengine/events/ProgressionEventCallBack.java	(revision 836)
@@ -26,6 +26,9 @@
 import org.txm.concordance.core.functions.Concordance;
 import org.txm.concordance.core.functions.comparators.LineComparator;
 import org.txm.concordance.rcp.editors.ConcordanceEditor;
+import org.txm.edition.rcp.editors.RGBA;
+import org.txm.edition.rcp.editors.SynopticEditionEditor;
+import org.txm.edition.rcp.handlers.OpenEdition;
 import org.txm.objects.Edition;
 import org.txm.objects.Page;
 import org.txm.objects.Text;
@@ -38,9 +41,6 @@
 import org.txm.searchengine.cqp.corpus.StructuralUnit;
 import org.txm.searchengine.cqp.corpus.query.Match;
 import org.txm.searchengine.cqp.corpus.query.Query;
-import org.txm.synopticedition.rcp.editors.RGBA;
-import org.txm.synopticedition.rcp.editors.SynopticEditionEditor;
-import org.txm.synopticedition.rcp.handlers.OpenEdition;
 import org.txm.utils.logger.Log;
 
 /**
Index: tmp/org.txm.progression.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.progression.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.progression.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -1,24 +1,21 @@
 Manifest-Version: 1.0
-Require-Bundle: org.txm.utils;visibility:=reexport,org.eclipse.osgi;bu
- ndle-version="3.10.2";visibility:=reexport,org.eclipse.core.runtime;b
- undle-version="3.10.0";visibility:=reexport,org.eclipse.ui;bundle-ver
- sion="3.106.1";visibility:=reexport,org.eclipse.e4.ui.workbench;bundl
- e-version="1.2.2";visibility:=reexport,org.txm.concordance.core;bundl
- e-version="1.0.0";visibility:=reexport,org.txm.concordance.rcp;visibi
- lity:=reexport,org.txm.synopticeditor.rcp;visibility:=reexport,org.tx
- m.searchengine.cqp.core;bundle-version="1.1.0";visibility:=reexport,o
- rg.txm.progression.core;bundle-version="1.0.0";visibility:=reexport,o
- rg.txm.chartsengine.svgbatik.rcp;bundle-version="1.0.0";visibility:=r
- eexport,org.txm.lexicaltable.rcp;bundle-version="1.0.0";visibility:=r
- eexport,org.txm.chartsengine.r.core;bundle-version="1.0.0";visibility
- :=reexport,org.txm.chartsengine.rcp;bundle-version="1.0.0";visibility
- :=reexport,org.txm.chartsengine.core;visibility:=reexport,org.eclipse
- .ui.workbench;visibility:=reexport,org.eclipse.swt;visibility:=reexpo
- rt,org.txm.core;bundle-version="0.7.0";visibility:=reexport,org.txm.c
- hartsengine.jfreechart.core;bundle-version="1.0.0";visibility:=reexpo
- rt,org.eclipse.core.expressions;bundle-version="3.4.600";visibility:=
- reexport,org.txm.searchengine.core;bundle-version="1.0.0";visibility:
- =reexport,org.txm.rcp;visibility:=reexport
+Require-Bundle: org.txm.utils;visibility:=reexport,
+ org.eclipse.osgi;bundle-version="3.10.2";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="3.10.0";visibility:=reexport,
+ org.eclipse.ui;bundle-version="3.106.1";visibility:=reexport,
+ org.eclipse.e4.ui.workbench;bundle-version="1.2.2";visibility:=reexport,
+ org.txm.concordance.rcp;visibility:=reexport,
+ org.txm.edition.rcp;visibility:=reexport,
+ org.txm.searchengine.cqp.core;bundle-version="1.1.0";visibility:=reexport,
+ org.txm.progression.core;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.lexicaltable.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.chartsengine.r.core;bundle-version="1.0.0";visibility:=reexport,
+ org.txm.chartsengine.rcp;bundle-version="1.0.0";visibility:=reexport,
+ org.eclipse.ui.workbench;visibility:=reexport,
+ org.eclipse.swt;visibility:=reexport,
+ org.txm.core;bundle-version="0.7.0";visibility:=reexport,
+ org.eclipse.core.expressions;bundle-version="3.4.600";visibility:=reexport,
+ org.txm.rcp;visibility:=reexport
 Export-Package: org.txm.progression.rcp.adapters,org.txm.progression.r
  cp.chartsengine.events,org.txm.progression.rcp.editors,org.txm.progre
  ssion.rcp.handlers,org.txm.progression.rcp.messages,org.txm.progressi
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 835)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 836)
@@ -346,7 +346,7 @@
 
 
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 
 		Composite controlArea = getExtendedParametersComposite();
 
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 835)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAFactorialMapChartEditor.java	(revision 836)
@@ -69,7 +69,7 @@
 
 
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 
 		// Extend the chart editor tool bar
 		new ToolItem(this.chartToolBar, SWT.SEPARATOR);
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/EigenvaluesChartEditor.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/EigenvaluesChartEditor.java	(revision 835)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/EigenvaluesChartEditor.java	(revision 836)
@@ -3,7 +3,6 @@
  */
 package org.txm.ca.rcp.editors;
 
-import org.eclipse.swt.widgets.Composite;
 import org.txm.ca.core.functions.Eigenvalues;
 import org.txm.chartsengine.rcp.editors.ChartEditor;
 import org.txm.chartsengine.rcp.editors.ChartEditorInput;
@@ -21,12 +20,12 @@
 	 * 
 	 * @param createChartEditorInput
 	 */
-	public EigenvaluesChartEditor(ChartEditorInput chartEditorInput) {
+	public EigenvaluesChartEditor(ChartEditorInput<Eigenvalues> chartEditorInput) {
 		super(chartEditorInput);
 	}
 
 	@Override
-	public void __createPartControl(Composite parent) {
+	public void __createPartControl() {
 		// nothing to do
 	}
 
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java	(revision 835)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/editors/LexicalTableEditor.java	(revision 836)
@@ -162,12 +162,11 @@
 	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(final Composite parent) {
+	public void _createPartControl() {
 		
 		try {
 			lexicalTable = (LexicalTable) this.getResult();
 			
-			
 			// Main parameters
 			GLComposite mainParametersArea = this.getMainParametersComposite();
 			mainParametersArea.getLayout().numColumns = 2;
@@ -178,8 +177,6 @@
 					Corpus.getFirstParentCorpus(this.getResult()).getOrderedProperties(),
 					this.getResult().getProperty(), false);
 
-			
-
 			// Extended parameters
 			Composite extendedParametersArea = this.getExtendedParametersComposite();
 			
Index: tmp/TXMDevPlugins.site/site.xml
===================================================================
--- tmp/TXMDevPlugins.site/site.xml	(revision 835)
+++ tmp/TXMDevPlugins.site/site.xml	(revision 836)
@@ -1,20 +1,3 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/Analec_1.0.0.201702061154.jar" id="Analec" version="1.0.0.201702061154"/>
-   <feature url="features/BackToMedia_1.0.0.201702061154.jar" id="BackToMedia" version="1.0.0.201702061154"/>
-   <feature url="features/CQL2LSA_1.0.0.201702061154.jar" id="CQL2LSA" version="1.0.0.201702061154"/>
-   <feature url="features/CQP.feature_1.0.0.201702061154.jar" id="CQP.feature" version="1.0.0.201702061154"/>
-   <feature url="features/CheckTXMFeature_1.0.0.201702061154.jar" id="CheckTXMFeature" version="1.0.0.201702061154"/>
-   <feature url="features/Dictionary_1.0.0.201702061154.jar" id="Dictionary" version="1.0.0.201702061154"/>
-   <feature url="features/Oriflamms_1.0.0.201702061154.jar" id="Oriflamms" version="1.0.0.201702061154"/>
-   <feature url="features/QueryCooccurrencesFeature_1.0.0.201702061154.jar" id="QueryCooccurrencesFeature" version="1.0.0.201702061154"/>
-   <feature url="features/QueryIndex_1.0.0.201702061154.jar" id="QueryIndex" version="1.0.0.201702061154"/>
-   <feature url="features/SVNEnvironment.feature_1.0.0.201702061154.jar" id="SVNEnvironment.feature" version="1.0.0.201702061154"/>
-   <feature url="features/SynopticEditor.feature_1.0.0.201702061154.jar" id="SynopticEditor.feature" version="1.0.0.201702061154"/>
-   <feature url="features/TIGERSearch.feature_1.0.0.201702061154.jar" id="TIGERSearch.feature" version="1.0.0.201702061154"/>
-   <feature url="features/TextBalanceFeature_1.0.0.201702061154.jar" id="TextBalanceFeature" version="1.0.0.201702061154"/>
-   <feature url="features/TreeTagger_1.0.0.201702061154.jar" id="TreeTagger" version="1.0.0.201702061154"/>
-   <feature url="features/TreeTaggerInstaller_1.0.0.201702061154.jar" id="TreeTaggerInstaller" version="1.0.0.201702061154"/>
-   <feature url="features/WordCloudFeature_1.0.0.201702061154.jar" id="WordCloudFeature" version="1.0.0.201702061154"/>
-   <feature url="features/XMLEditor.feature_1.0.0.201702061154.jar" id="XMLEditor.feature" version="1.0.0.201702061154"/>
 </site>
Index: tmp/TXMDevPlugins.site/index.html
===================================================================
--- tmp/TXMDevPlugins.site/index.html	(revision 0)
+++ tmp/TXMDevPlugins.site/index.html	(revision 836)
@@ -0,0 +1 @@
+<h3>TXM extensions - Dev</h3>
\ No newline at end of file

Property changes on: tmp/TXMDevPlugins.site/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.setups/VERSION
===================================================================
--- tmp/org.txm.setups/VERSION	(revision 835)
+++ tmp/org.txm.setups/VERSION	(revision 836)
@@ -1 +1 @@
-0.8.0a
+0.8.0
Index: tmp/org.txm.setups/a.out
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.setups/a.out
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream
Added: svn:executable
   + *

Index: tmp/org.txm.treetagger.feature/feature.xml
===================================================================
--- tmp/org.txm.treetagger.feature/feature.xml	(revision 835)
+++ tmp/org.txm.treetagger.feature/feature.xml	(revision 836)
@@ -1,20 +1,71 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <feature
       id="org.txm.treetagger.feature"
-      label="org.txm.treetagger.feature"
+      label="TreeTagger files"
       version="1.0.0.qualifier"
       provider-name="Textometrie.org">
 
-   <description url="http://www.example.com/description">
-      [Enter Feature Description here.]
+   <description>
+      Install TreeTagger for TXM.&lt;br/&gt;
+See http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger for more informations about TreeTagger.
    </description>
 
-   <copyright url="http://www.example.com/copyright">
-      [Enter Copyright Description here.]
+   <copyright url="http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/">
+      See: http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/
    </copyright>
 
-   <license url="http://www.example.com/license">
-      [Enter License Description here.]
+   <license url="http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/Tagger-Licence">
+      ** TreeTagger License **
+
+1. The Institut fuer maschinelle Sprachverarbeitung, Universitaet
+   Stuttgart, subsequently called ``the licenser&apos;&apos;, grants you (the
+   licensee) the rights to use the TreeTagger software subsequently
+   called ``the system&apos;&apos; for evaluation, research and teaching
+   purposes. **Any other usage of the system (in particular for
+   commercial purposes) is forbidden**.
+
+2. The licensee has no right to give or sell the system to third
+   parties without written permission from the licenser.
+
+3. The licenser has no obligation to maintain the system.
+   Nevertheless the licensee is encouraged to report to the licenser
+   any problems with or suggestions for improvement of the system.
+
+4. The licenser has no obligation to make new releases available to the
+   licensee, but where such updates are supplied they shall be governed by
+   the terms of this agreement.
+
+      NO WARRANTY
+
+5. BECAUSE THE SYSTEM IS LICENSED FREE OF CHARGE, WE PROVIDE
+ABSOLUTELY NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE
+LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE LICENSER PROVIDES THE
+SYSTEM &quot;AS IS&quot; 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 THE LICENSEE.
+SHOULD THE SYSTEM PROVE DEFECTIVE, THE LICENSEE ASSUMES THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+6. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL THE LICENSER BE
+LIABLE TO THE LICENSEE FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST
+MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS
+OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAM)
+THE PROGRAM, EVEN IF THE LICENSEE HAS BEEN ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
+
+
+Contact Adress:
+
+Helmut Schmid
+Institut fuer maschinelle Sprachverarbeitung (IMS) 
+Universitaet Stuttgart
+Azenbergstr. 12
+D-70174 Stuttgart, Germany
+
+Helmut.Schmid@ims.uni-stuttgart.de
    </license>
 
    <requires>
@@ -38,37 +89,6 @@
          unpack="false"/>
 
    <plugin
-         id="org.txm.treetagger.core.linux"
-         os="linux"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"/>
-
-   <plugin
-         id="org.txm.treetagger.core.macosx"
-         os="macosx"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"/>
-
-   <plugin
-         id="org.txm.treetagger.core.models"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"/>
-
-   <plugin
-         id="org.txm.treetagger.core.win32"
-         os="win32"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"/>
-
-   <plugin
          id="org.txm.treetagger.rcp"
          download-size="0"
          install-size="0"
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java	(revision 835)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditorToolBar.java	(revision 836)
@@ -118,7 +118,7 @@
 		((GridData)composite.getLayoutData()).exclude = !visible;
 		composite.setVisible(visible);
 		composite.layout(true);
-		editorPart.parent.layout(true);
+		editorPart.layout(true);
 		showParameters.setSelection(visible);
 	}
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/SVGGraphicEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/SVGGraphicEditor.java	(revision 835)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/SVGGraphicEditor.java	(revision 836)
@@ -38,6 +38,7 @@
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
+import org.txm.chartsengine.core.results.ChartResult;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.svg.SVGComposite;
 
@@ -47,7 +48,7 @@
  *
  * @author Sylvain Loiseau
  */
-public abstract class SVGGraphicEditor extends TXMEditor {
+public abstract class SVGGraphicEditor extends TXMEditor<ChartResult> {
 
 	/** Linking with the OutlineView. */
 	// private OverviewOutlinePage overviewOutlinePage;
@@ -63,9 +64,6 @@
 	/** The svgfile displayed in the editor */
 	private File svgfile;
 	
-	/** The parent. */
-	private Composite parent;
-	
 	/** The Constant ID. */
 	public static final String ID = SVGGraphicEditor.class.getName();
 
@@ -146,10 +144,9 @@
 	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
 	 */
 	@Override
-	public void _createPartControl(Composite parent) {
-		this.parent = parent;
+	public void _createPartControl() {
 
-		svgComp = new SVGComposite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);
+		svgComp = new SVGComposite(getResultArea(), SWT.EMBEDDED | SWT.NO_BACKGROUND);
 		if (svgPath == null) {
 			if (input instanceof SVGGraphicable) {
 				//svgPath = ((SVGGraphicable) input).getIPath().toFile().toURI().toURL().toString();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 835)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/TXMEditor.java	(revision 836)
@@ -25,8 +25,10 @@
 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.Group;
 import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Spinner;
 import org.eclipse.swt.widgets.TableColumn;
 import org.eclipse.swt.widgets.Text;
@@ -113,7 +115,7 @@
 	/**
 	 * 
 	 */
-	Composite parent;
+	private Composite parent;
 
 	private Composite topToolBarContainer;
 
@@ -136,8 +138,13 @@
 	private boolean createPartControlDoneSucessfully = true; // for now... muahahaha
 
 
+	public Shell getShell() {
+		if (parent !=null && !parent.isDisposed()) {
+			return parent.getShell();
+		}
+		return Display.getDefault().getActiveShell();
+	}
 
-
 	@Override
 	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
 		this.setSite(site);
@@ -236,14 +243,10 @@
 
 			
 			this.bottomToolBar = new TXMEditorToolBar(this, this.bottomToolBarContainer, this.bottomSubWidgetsComposite, SWT.FLAT, "bottom");
-
 			
+			this._createPartControl(); // child editor create its parameters and display widgets
 
 
-			
-			this._createPartControl(parent); // child editor create its parameters and display widgets
-
-
 			// remove empty toolbar
 			//TODO SJ: Hack? MD: yeah -> need to find a way to not display the bottom toolbar on Windows instead
 			if (this.bottomToolBar.getItems().length == 0) {
@@ -272,9 +275,8 @@
 	 * Subclasses manual creation method called after TXMEditor.createPartControl is called.
 	 * 
 	 * Use this method to set your own widgets in the minimal parameters area, the top toolbar, parameters group, the result area and the bottom toolbar
-	 * @param parent
 	 */
-	public abstract void _createPartControl(Composite parent);
+	public abstract void _createPartControl();
 
 	/**
 	 * Use this method to add widget next to the default Top toolbar
@@ -1014,4 +1016,10 @@
 	public Composite getContainer() {
 		return parent;
 	}
+
+	public void layout(boolean b) {
+		if (parent != null && !parent.isDisposed()) {
+			parent.layout(b);
+		}
+	}
 }
Index: tmp/org.txm.rcp/rcpapplication.product
===================================================================
--- tmp/org.txm.rcp/rcpapplication.product	(revision 835)
+++ tmp/org.txm.rcp/rcpapplication.product	(revision 836)
@@ -567,6 +567,23 @@
       <feature id="org.txm.statsengine.r.feature"/>
       <feature id="org.txm.searchengine.cqp.feature"/>
       <feature id="org.txm.synopticeditor.feature"/>
+      <feature id="org.txm.ca.feature"/>
+      <feature id="org.txm.chartsengine.jfreechart.feature"/>
+      <feature id="org.txm.annotation.feature"/>
+      <feature id="org.txm.edition.feature"/>
+      <feature id="org.txm.lexicaltable.feature"/>
+      <feature id="org.txm.internalview.feature"/>
+      <feature id="org.txm.partition.feature"/>
+      <feature id="org.txm.concordance.feature"/>
+      <feature id="org.txm.index.feature"/>
+      <feature id="org.txm.ahc.feature"/>
+      <feature id="org.txm.groovy.feature"/>
+      <feature id="org.txm.specificities.feature"/>
+      <feature id="org.txm.progression.feature"/>
+      <feature id="org.txm.treetagger.feature"/>
+      <feature id="org.txm.properties.feature"/>
+      <feature id="org.txm.referencer.feature"/>
+      <feature id="org.txm.cooccurrence.feature"/>
    </features>
 
    <configurations>
Index: tmp/org.txm.rcp/plugin.xml
===================================================================
--- tmp/org.txm.rcp/plugin.xml	(revision 835)
+++ tmp/org.txm.rcp/plugin.xml	(revision 836)
@@ -674,23 +674,11 @@
                   commandId="org.txm.rcp.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>
             <separator
                   name="menu.file.separator.close"
Index: tmp/org.txm.dictionary.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.dictionary.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.dictionary.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -14,8 +14,8 @@
 Bundle-Vendor: Textometrie.org
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: Dictionary
+Bundle-Name: org.txm.dictionary.rcp
 Bundle-ManifestVersion: 2
-Bundle-SymbolicName: Dictionary;singleton:=true
+Bundle-SymbolicName: org.txm.dictionary.rcp;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 
Index: tmp/org.txm.links.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.links.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.links.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -24,7 +24,7 @@
  rt,org.txm.statsengine.r.rcp;bundle-version="1.0.0";visibility:=reexp
  ort,org.txm.index.rcp;visibility:=reexport,org.txm.progression.rcp;vi
  sibility:=reexport,org.txm.lexicaltable.rcp;visibility:=reexport,org.
- txm.libs.batik;visibility:=reexport,org.txm.synopticeditor.rcp;bundle
+ txm.libs.batik;visibility:=reexport,org.txm.edition.rcp;bundle
  -version="1.0.0";visibility:=reexport
 Export-Package: org.txm.links.rcp,org.txm.rcp.commands.link
 Bundle-Vendor: Textometrie.org
Index: tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/editors/ReferencerEditor.java
===================================================================
--- tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/editors/ReferencerEditor.java	(revision 835)
+++ tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/editors/ReferencerEditor.java	(revision 836)
@@ -139,18 +139,15 @@
 
 	
 	@Override
-	public void _createPartControl(Composite parent) {
+	public void _createPartControl() {
 		
-		
 		this.referencer = ((Referencer) this.getResult());
 		this.corpus = referencer.getCorpus();
 
 		// Computing listener
 		ComputeSelectionListener computeSelectionListener = new ComputeSelectionListener(this);
 		ComputeKeyListener computeKeyListener = new ComputeKeyListener(this);
-
 		
-		parent.setLayout(new GridLayout(1,true));
 		Composite paramArea = getExtendedParametersComposite();
 		paramArea.setLayout(new GridLayout(3, false));
 		
Index: tmp/org.txm.queryindex.rcp/src/org/txm/rcp/editors/queryindex/QueryIndexEditor.java
===================================================================
--- tmp/org.txm.queryindex.rcp/src/org/txm/rcp/editors/queryindex/QueryIndexEditor.java	(revision 835)
+++ tmp/org.txm.queryindex.rcp/src/org/txm/rcp/editors/queryindex/QueryIndexEditor.java	(revision 836)
@@ -40,9 +40,6 @@
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.viewers.TableViewer;
 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;
@@ -51,9 +48,7 @@
 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;
@@ -70,9 +65,8 @@
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
 import org.txm.core.messages.TXMCoreMessages;
-import org.txm.core.results.TXMResult;
+import org.txm.functions.queryindex.Messages;
 import org.txm.functions.queryindex.QueryIndex;
 import org.txm.functions.queryindex.QueryIndexLine;
 import org.txm.index.core.functions.LineComparator.SortMode;
@@ -81,6 +75,7 @@
 import org.txm.rcp.StatusLine;
 import org.txm.rcp.editors.TXMEditor;
 import org.txm.rcp.editors.TableKeyListener;
+import org.txm.rcp.editors.input.QueryIndexEditorInput;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.swt.dialog.LastOpened;
 import org.txm.rcp.swt.widget.NamedAssistedQueryWidget;
@@ -88,7 +83,6 @@
 import org.txm.rcp.utils.JobHandler;
 import org.txm.rcp.views.QueriesView;
 import org.txm.rcp.views.corpora.CorporaView;
-import org.txm.rcp.editors.input.QueryIndexEditorInput;
 import org.txm.searchengine.cqp.CQPSearchEngine;
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
 import org.txm.searchengine.cqp.corpus.Corpus;
@@ -97,7 +91,6 @@
 import org.txm.searchengine.cqp.corpus.query.Query;
 import org.txm.statsengine.r.rcp.views.RVariablesView;
 import org.txm.utils.logger.Log;
-import org.txm.functions.queryindex.*;
 
 /**
  * display the query index parameters and result.
@@ -170,12 +163,12 @@
 	/** The nblinesmax. */
 	protected int nblinesmax;
 
-	/** The scroll composite. */
-	private ScrolledComposite scrollComposite;
+//	/** The scroll composite. */
+//	private ScrolledComposite scrollComposite;
+//
+//	/** The head composite. */
+//	private Composite headComposite;
 
-	/** The head composite. */
-	private Composite headComposite;
-
 	/** The title. */
 	String title;
 
@@ -400,47 +393,40 @@
 	 * @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);
+	public void _createPartControl() {
 
 		// 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());
+//		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));
+//			}
+//		});
 
-		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());
+		final Composite paramArea = getExtendedParametersComposite();
 
-		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();
@@ -449,13 +435,7 @@
 		// 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);
+		Composite resultArea = getResultArea();
 
 		// compose paramArea
 		FormLayout paramLayout = new FormLayout();
@@ -513,7 +493,7 @@
 				if (LastOpened.getFile(ID) != null)
 					propFile = new File(LastOpened.getFolder(ID));
 
-				FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);
+				FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
 				String[] exts = { "*.properties" }; //$NON-NLS
 				dialog.setFilterExtensions(exts);
 				if (propFile != null) {
Index: tmp/org.txm.cql2lsa.rcp/META-INF/MANIFEST.MF
===================================================================
--- tmp/org.txm.cql2lsa.rcp/META-INF/MANIFEST.MF	(revision 835)
+++ tmp/org.txm.cql2lsa.rcp/META-INF/MANIFEST.MF	(revision 836)
@@ -12,9 +12,9 @@
 Bundle-Vendor: Textometrie.org
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 1.0.0.qualifier
-Bundle-Name: CQL2LSA
+Bundle-Name: org.txm.cql2lsa.rcp
 Bundle-ManifestVersion: 2
 Bundle-Activator: cql2lsarcp.Activator
-Bundle-SymbolicName: CQL2LSA;singleton:=true
+Bundle-SymbolicName: org.txm.cql2lsa.rcp;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 
