Index: SRC/src/fr/triangle/hyperalign/kernel/HyperalignData.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/kernel/HyperalignData.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/kernel/HyperalignData.java	(revision 13)
@@ -65,6 +65,7 @@
 	static final public String SHOW_EQUIVALENCES = "showequivalences";
 	static final public String HELP_ABOUT = "helpabout";
 	static final public String HELP_GUIDE = "helpguide";
+	static final public String HELP_GUIDE_REGEXP = "helpguideregexp";
 	
 	static final public String ANNOTATE = "annotate";
 	static final public String EQUAL = "equal";
Index: SRC/src/fr/triangle/hyperalign/kernel/util/StringOperation.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/kernel/util/StringOperation.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/kernel/util/StringOperation.java	(revision 13)
@@ -142,6 +142,18 @@
 }*/
 	
 	
+	public String multiWordsToString(String [] words){
+		String str = "";
+		for(int i = 0 ; i< words.length; ++i){
+			if(i!=0){
+				str += ", "+words[i];
+			}else {
+				str = words[i];
+			}
+		}
+		return str;
+	}
+	
 	//Vérifie que cette chaine est bien un mot isolé et non une sous-chaine dans un mot !!!
 	public boolean isWord(String word, String text, int indexOfWord){
 		boolean isWord = true;
Index: SRC/src/fr/triangle/hyperalign/kernel/DataManager.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/kernel/DataManager.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/kernel/DataManager.java	(revision 13)
@@ -2481,6 +2481,7 @@
 							DictionaryElement element = (DictionaryElement) obj;
 							//DATA, one line per concept
 							csvLine += element.getName()+";";
+							//System.out.println("exportEquivalencesByAuthor (CSV) : "+element.getName());
 
 						}else {
 							String element = (String) obj;
@@ -2508,6 +2509,8 @@
 				}else{
 					csvLine += countOccs+";";
 				}
+				//System.out.println("countOccsByText (CSV) : "+countOccs);
+
 			}
 			return csvLine;
 		}
@@ -2844,7 +2847,7 @@
 			if(!allLemmes){
 				HashMap<Object,Integer> results = new HashMap<Object, Integer>();
 				HashMap<Object, Integer> equivalences = findEquivalences(lemmeElement, targetLang, results);
-				manager.writeToDebug("EquivalenceManager.computeGraphEquivalences() - 2 - for LANG : "+targetLang+" NB TARGETS > "+equivalences.size());
+				System.out.println("EquivalenceManager.computeGraphEquivalences() - 2 - for LANG : "+targetLang+" NB TARGETS > "+equivalences.size());
 				
 				HashMap<Object,HashMap<Object, Integer>> equivalencesByLemme = new HashMap<Object, HashMap<Object,Integer>>();
 				equivalencesByLemme.put(lemmeElement, equivalences);
@@ -2854,7 +2857,7 @@
 			}else {
 				HashMap<Object, HashMap<Object,Integer>> results = new HashMap<Object, HashMap<Object,Integer>>();
 				HashMap<Object, HashMap<Object,Integer>> equivalencesByLemme = groupEquivalencesByLemme(lemmeElement, targetLang, results);
-				manager.writeToDebug("EquivalenceManager.computeGraphEquivalences() - 1 - for ALL in : "+targetLang+" NB LEMMES > "+equivalencesByLemme.size());
+				System.out.println("EquivalenceManager.computeGraphEquivalences() - 1 - for ALL in : "+targetLang+" NB LEMMES > "+equivalencesByLemme.size());
 				
 				Integer level = new Integer(neighbourhWidth);
 				EquivalenceGraphWriter writer = new EquivalenceGraphWriter(this, equivalencesByLemme, level, null);	
@@ -2958,7 +2961,7 @@
 					computeGraphEquivalences(element, targetLang, "1", true);
 					//computeGraphEquivalences(sourceElements, targetElements, neighbourhoodWidth, filterByAuthor);	
 				}else {
-					manager.writeToDebug("EquivalenceManager.buildInfoForGraph() - FOR "+element+" [level "+element.getReference()+"]");		
+					System.out.println("EquivalenceManager.buildInfoForGraph() - FOR "+element+" [level "+element.getReference()+"]");		
 					computeGraphEquivalences(element, targetLang, neighbourhoodWidth, false);	
 				}
 			}
@@ -3105,20 +3108,20 @@
 
 			if(str instanceof DictionaryElement){
 				DictionaryElement el = (DictionaryElement) str;
-				manager.writeToDebug("EquivalenceManager.findEquivalences() FOR "+el.getName()+" Level ("+el.getReference()+") in TARGET LANG "+dicoTarget);
+				System.out.println("EquivalenceManager.findEquivalences() FOR "+el.getName()+" Level ("+el.getReference()+") in TARGET LANG "+dicoTarget);
 				
 
 				if(el.getReference().equals(Dictionary.DICO_OCC)){
 					OccurrenceSet occ = el.getOccurrence();
 					EquivalenceElement equivalence = occ.getEquivalence();
 					if(equivalence!=null){
-						HyperalignText text = occ.getDivision().getText();
+						//peralignText text = occ.getDivision().getText();
 						HashMap<HyperalignText, OccurrenceSet> elements = equivalence.getElements();
 						Set<HyperalignText> keys = elements.keySet();
 						Iterator<HyperalignText> it = keys.iterator();
 						while(it.hasNext()){
 							HyperalignText textOcc = it.next();
-							manager.writeToDebug("\tfindEquivalences ony occs from target lang => "+textOcc.getMainLang());
+							System.out.println("\tfindEquivalences only occs from target lang => "+textOcc.getMainLang());
 							
 							if(textOcc.getMainLang().equals(dicoTarget.getName())){
 								OccurrenceSet occEqui = elements.get(textOcc);
@@ -3128,14 +3131,15 @@
 										if(results.containsKey(lemme)){
 											Integer nbOccs = results.get(lemme);
 											nbOccs = new Integer(nbOccs.intValue()+1);
+											results.put(lemme, nbOccs);
 										}else {
 											results.put(lemme, new Integer(1));
-											manager.writeToDebug("\tPUT LEMME > "+lemme+ " from "+textOcc.getMainLang());										
+											System.out.println("\tPUT LEMME > "+lemme+ " from "+textOcc.getMainLang());										
 										
 										}
 										//PUT FORM TO THE EQUIVALENCE
 									}else {
-										manager.writeToDebug("\tPUT STRING > "+occEqui.getValue()+ " from "+textOcc.getMainLang());
+										System.out.println("\tPUT STRING > "+occEqui.getValue()+ " from "+textOcc.getMainLang());
 										
 										results.put(occEqui.getValue(), new Integer(1));
 									}
@@ -3184,6 +3188,7 @@
 											if(resultsByAuthor.containsKey(lemme)){
 												Integer nbOccs = resultsByAuthor.get(lemme);
 												nbOccs = new Integer(nbOccs.intValue()+1);
+												resultsByAuthor.put(lemme, nbOccs);
 											}else{
 												resultsByAuthor.put(lemme, new Integer(1));
 											}												
Index: SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java	(revision 13)
@@ -762,7 +762,7 @@
 				csvLine += res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL1")+conceptEquiEl.getName()+
 				" ["+sourceLang.getName()+"] "+
 				nbOccSourceInEqui+" "+res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL2")+";";
-				tradManager.exportEquivalencesByAuthor(sourceElement, conceptEquivalenceElements, csvLine, targetLang);
+				csvLine = tradManager.exportEquivalencesByAuthor(sourceElement, conceptEquivalenceElements, csvLine, targetLang);
 				manager.saveWork(csvLine);
 			}
 		}
@@ -987,7 +987,9 @@
 			}
 			if (e.getStateChange() == ItemEvent.SELECTED){
 				withSizes = true;
+				
 			}
+			initGuiWithTable();
 
 		}
 
Index: SRC/src/fr/triangle/hyperalign/gui/HMManager.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/HMManager.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/gui/HMManager.java	(revision 13)
@@ -1155,6 +1155,7 @@
 		return null;
 	}
 
+	
 
 	public boolean setNameForText(){
 		boolean uploadedText = false;
@@ -2279,7 +2280,7 @@
 			Vector<OccurrenceSet> results = searcher.search(selectedTexts);
 			resultManager.setSearcher(searcher);
 			resultManager.setResults(results);
-
+			resultManager.setMessage(StringOperation.getInstance().multiWordsToString(words));	
 			if(results.size()!=0){ 
 				mainFrame.reinitCenterPane(Hypermachiavel.RESULT_TAB, true);
 				return true;
@@ -2341,6 +2342,7 @@
 			resultManager.setSearcher(searcher);
 			resultManager.setResults(results);
 			resultManager.showMerge(false);
+			resultManager.setMessage(StringOperation.getInstance().multiWordsToString(words));	
 			if(results.size()!=0){ 
 				mainFrame.reinitCenterPane(Hypermachiavel.RESULT_TAB, true);
 				return true;
@@ -2449,6 +2451,7 @@
 			resultManager.setColumns(columnNames);
 			resultManager.setBilingualSearcher(bilingualSearcher);
 			resultManager.setEquivalenceResults(results);
+			resultManager.setMessage("? sourceElements <=> ? targetElements ");
 
 			if(results.size()!=0){ 
 				mainFrame.reinitCenterPane(Hypermachiavel.RESULT_TAB, true);
Index: SRC/src/fr/triangle/hyperalign/gui/HMMenuBar.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/HMMenuBar.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/gui/HMMenuBar.java	(revision 13)
@@ -147,6 +147,8 @@
 		makeMenuItem(menuHelp, HyperalignData.HELP_ABOUT, res.getString("I18N_MENU_HELP_ABOUT"),  KeyEvent.VK_T, null);
 		//------ GUIDE
 		makeMenuItem(menuHelp, HyperalignData.HELP_GUIDE, res.getString("I18N_MENU_HELP_GUIDE"),  KeyEvent.VK_T, null);
+		//------ GUIDE REGEXP
+		makeMenuItem(menuHelp, HyperalignData.HELP_GUIDE_REGEXP, res.getString("I18N_MENU_HELP_GUIDE_REGEXP"),  KeyEvent.VK_T, null);
 	}
 
 	private void createEditionMenu(){
@@ -675,6 +677,10 @@
 			manager.getSearchManager().doubleSearchWithIndex(false, Terminology.CONCEPT);
 		}else if (HyperalignData.HELP_ABOUT.equals(cmd)){
 			about(res.getString("I18N_MENU_HELP_ABOUT_VERSION"), res.getString("I18N_MENU_HELP_ABOUT_TITLE"));
+		}else if (HyperalignData.HELP_GUIDE_REGEXP.equals(cmd)){
+			HelpPane helpPane = new HelpPane(HyperalignData.HELP_GUIDE_REGEXP);
+			helpPane.setLocationRelativeTo(Hypermachiavel.getInstance());
+			helpPane.setAlwaysOnTop(true);
 		}else if (HyperalignData.HELP_GUIDE.equals(cmd)){
 			/*HelpSet helpset = null; 
 			ClassLoader loader = null;
@@ -689,7 +695,10 @@
 				System.err.println("Error loading > Help Guide : "+he);
 				return;
 			}*/
-			Hypermachiavel.getInstance().functionInProgress();
+			HelpPane helpPane = new HelpPane(HyperalignData.HELP_GUIDE);
+			helpPane.setLocationRelativeTo(Hypermachiavel.getInstance());
+			helpPane.setAlwaysOnTop(true);
+			//Hypermachiavel.getInstance().functionInProgress();
 		}else if (HyperalignData.CREATE_DICO.equals(cmd)){
 			manager.buildDictionaryFromCorpus();
 		}
Index: SRC/src/fr/triangle/hyperalign/gui/graph/EquivalenceGraph.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/graph/EquivalenceGraph.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/gui/graph/EquivalenceGraph.java	(revision 13)
@@ -23,6 +23,7 @@
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
 import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTextArea;
@@ -72,13 +73,13 @@
 	private void initGui(){
 		//this.setLayout(new GridLayout(1,urlsEquivalence.length));
 		
-		//JPanel northPanel = new JPanel();
-		JToolBar northPanel = new JToolBar();
+		JPanel northPanel = new JPanel();
+		//JToolBar northPanel = new JToolBar();
 		if(urlsEquivalence.length>1){
 			//LABEL about Concept, Lang and Level
 			URL urlEqui = urlsEquivalence[0];
 			initParams(urlEqui);
-			JLabel textLabelConceptLevel = new JLabel(concept+", "+res.getString("I18N_EQUIVALENCEGRAPH_LEVEL")+level);
+			JLabel textLabelConceptLevel = new JLabel(res.getString("I18N_EQUIVALENCEGRAPH_LANGUAGE")+lang+", "+res.getString("I18N_EQUIVALENCEGRAPH_CONCEPT")+concept+", "+res.getString("I18N_EQUIVALENCEGRAPH_LEVEL")+level);
 			textLabelConceptLevel.setPreferredSize(new Dimension(400,20));
 			
 			northPanel.add(textLabelConceptLevel);
@@ -86,7 +87,6 @@
 			//PROPORTION NODE SIZE
 			graphSizeBox = new JCheckBox(res.getString("I18N_EQUIVALENCEPANE_GRAPHSIZE_OPTION"));
 			graphSizeBox.setSelected(withSizes);
-			//graphSizeBox.setPreferredSize(new Dimension(100,10));
 			graphSizeBox.addItemListener(this);
 			northPanel.add(graphSizeBox);
 		
@@ -207,20 +207,21 @@
 		String path = urlEquivalence.getPath();
 		int index = path.lastIndexOf("/");
 		path = path.substring(index+1,path.length());
+		System.out.println("INIT PATH : "+path);
 		
 		index = path.indexOf("_");
 		if(index!=-1){
 			//GESTION DE LA LANGUE :
-			lang += path.substring(0,index);
+			lang = path.substring(0,index);
 			path = path.substring(index+1,path.length());
 			index = path.indexOf("_");
-		
+			System.out.println("AFTER REMOVE LANG : "+path+" / index @"+index);
 			if(index!=-1){
 				//GESTION CONCEPT
 				concept = path.substring(0,index);				
 				path = path.substring(index+1,path.length());
 				index = path.indexOf("_");
-				
+				System.out.println("AFTER REMOVE CONCEPT : "+path+" / index @"+index);
 				if(urlsEquivalence.length>1){
 					if(index!=-1){
 						//GESTION TEXTE
@@ -228,11 +229,10 @@
 						path = path.substring(index+1,path.length());
 						index = path.indexOf("_");
 						author = manager.getDataManager().getCorpusManager().getCorpus().getTextById(author).getName();
-						
-						if(index!=-1){
+						System.out.println("AFTER REMOVE AUTHOR : "+path+" / index @"+index);
+						if(index==-1){
 							//GESTION LEVEL
-							level = path.substring(0,index);				
-							path = path.substring(index+1,path.length());
+							level = path.substring(0,1);				
 						}
 					}
 				}else {
@@ -269,7 +269,7 @@
 			if (e.getStateChange() == ItemEvent.SELECTED){
 				withSizes = true;
 			}
-
+			reinitPane(this.urlsEquivalence, this.withSizes, this.withAllConcepts);
 		}
 		
 	}
Index: SRC/src/fr/triangle/hyperalign/gui/graph/GraphPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/graph/GraphPane.java	(revision 12)
+++ SRC/src/fr/triangle/hyperalign/gui/graph/GraphPane.java	(revision 13)
@@ -150,11 +150,9 @@
 		ColorAction edges = new ColorAction(GraphPane.edges, VisualItem.STROKECOLOR, ColorLib.gray(100));
 		ColorAction edgesText = new ColorAction(GraphPane.edges, VisualItem.TEXTCOLOR, ColorLib.blue(120));
 		
-		//DataSizeAction size = new DataSizeAction(EquivalenceGraph.nodes, "nb", 10, Constants.LOG_SCALE);
-		System.out.println("withSizes ? => "+withSizes);
 		 // 1) the DataSizeAction for the edges based on datafield "weight"
-        Action dataSizeAction = new DataSizeAction(GraphPane.nodes, "nb");  
-       
+		System.out.println("withSizes ? => "+withSizes+" >>> "+Constants.LOG_SCALE);
+		Action dataSizeAction = new DataSizeAction(GraphPane.nodes, "nb", 10, Constants.LOG_SCALE);  
 		//// create an action list containing all color assignments
 		//Constants.QUANTILE_SCALE 
         //Constants.LOG_SCALE 
Index: SRC/src/fr/triangle/hyperalign/gui/HelpPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/HelpPane.java	(revision 0)
+++ SRC/src/fr/triangle/hyperalign/gui/HelpPane.java	(revision 13)
@@ -0,0 +1,45 @@
+package fr.triangle.hyperalign.gui;
+
+import java.awt.Dimension;
+import java.io.IOException;
+
+import javax.swing.JDialog;
+import javax.swing.JEditorPane;
+
+import fr.triangle.hyperalign.kernel.HyperalignData;
+
+public class HelpPane extends JDialog {
+	
+	String type;
+	public HelpPane(String type){
+		this.type = type;
+		initGui();
+	}
+	
+	private void initGui(){
+		JEditorPane editorPane = new JEditorPane();
+		String url="";
+		if(type.equals(HyperalignData.HELP_GUIDE)){
+			url = "http://w6.ens-lyon.fr/devsite/hyperprince/Hypermachiavel_UserGuide_HTML/guideprat.html";    
+		}
+		if(type.equals(HyperalignData.HELP_GUIDE_REGEXP)){
+			url = "http://www.vogella.com/articles/JavaRegularExpressions/article.html#regex_metacharacters";
+		}
+		editorPane.setEditable(false);
+		  try {
+		        editorPane.setPage(url);
+		  } catch (IOException e) {
+		      System.err.println("Attempted to read a bad URL: " + url);
+		  }
+		  this.add(editorPane);
+		  this.setTitle(type);
+		  this.setPreferredSize(new Dimension(600,800));
+		  this.pack();
+		  this.setVisible(true);
+		  	
+	}
+	
+}
+	
+
+
Index: SRC/res/fr/triangle/hyperalign/gui/i18n/LabelsBundle_fr_FR.properties
===================================================================
--- SRC/res/fr/triangle/hyperalign/gui/i18n/LabelsBundle_fr_FR.properties	(revision 12)
+++ SRC/res/fr/triangle/hyperalign/gui/i18n/LabelsBundle_fr_FR.properties	(revision 13)
@@ -207,6 +207,7 @@
 I18N_MENU_HELP_ABOUT_TITLE = A propos
 I18N_MENU_HELP_ABOUT_VERSION = Hypermachiavel (Version 2) \n http://www.projet-plume.org/relier/hypermachiavel\n http://hyperprince.ens-lyon.fr \nd�velopp� par S�verine Gedzelman, ENS de LYON\n financ� dans le cadre d'une ANR 2007-2010\n Licence Cecill-B depuis 2009
 I18N_MENU_HELP_GUIDE = Guide pratique
+I18N_MENU_HELP_GUIDE_REGEXP = Aide sur la syntaxe pour les fonctions de recherche
 
 I18N_MENU_SAVE_MESSAGE_TITLE = Sauvegarde
 
@@ -532,7 +533,9 @@
 I18N_EQUIVALENCEGRAPH_ALLAUTHORS = Tout auteur confondu
 I18N_EQUIVALENCEGRAPH_LANGUAGE = Langue : 
 I18N_EQUIVALENCEGRAPH_BY = chez 
-I18N_EQUIVALENCEGRAPH_LEVEL = niveau 
+I18N_EQUIVALENCEGRAPH_LEVEL = Niveau :
+I18N_EQUIVALENCEGRAPH_CONCEPT = Concept : 
+
 #----------------
 # EQUIVALENCE PANE
 #----------------
Index: SRC/samples/project/Hyperprince_Project_Ch1-Ch10.zip
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
