Index: SRC/src/fr/triangle/hyperalign/gui/annot/EquivalencePane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/EquivalencePane.java	(revision 18)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/EquivalencePane.java	(revision 19)
@@ -3,7 +3,6 @@
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.Dimension;
-import java.awt.Font;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
 import java.awt.GridLayout;
@@ -14,6 +13,7 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
+import java.net.URL;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Observable;
@@ -35,9 +35,11 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JRadioButton;
 import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
 import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.JTextField;
+import javax.swing.JToolBar;
 import javax.swing.KeyStroke;
 import javax.swing.SwingConstants;
 import javax.swing.SwingUtilities;
@@ -51,7 +53,7 @@
 import org.jfree.chart.plot.PiePlot;
 import org.jfree.data.general.DefaultPieDataset;
 
-import fr.triangle.hyperalign.gui.HMManager;
+import fr.triangle.hyperalign.gui.HMController;
 import fr.triangle.hyperalign.gui.Hypermachiavel;
 import fr.triangle.hyperalign.gui.concord.ResultTableModel;
 import fr.triangle.hyperalign.gui.graph.EquivalenceGraph;
@@ -87,66 +89,86 @@
 	private String iconPath = "fr/triangle/hyperalign/gui/icons";
 	//private HashMap<HyperalignText, OccurrenceSet> elements; //key = text name ; value = 
 
+	private JButton addSeeCommentButton;
+	private JButton addButton;
+	private JButton removeButton;
+	private JButton okButton;
+	private JButton deleteButton;
+	private JButton cancelButton;
+	private HyperalignText currentText;
 	private JTable listEquiTable;
+	private JScrollPane scrollEquiTable;
 	private EquivalenceElement equiEl;
 	private EquivalenceManager tradManager;
-	private HMManager manager;
+	private HMController manager;
+	private Vector<ConceptEquivalenceElement> equisForTerminoEls;
 
 	private Dictionary sourceLang;
 	private Dictionary targetLang;
-	private String type = "";
+	//private String type = "";
 	private DictionaryElement sourceElement;
+	private ConceptEquivalenceElement sourceTerminoElement;
 	private Vector<ConceptEquivalenceElement> conceptEquivalenceElements;
 
-	private Vector <HyperalignText> authorsSelected;
-	
-	private JLabel labelOccSource;
+	private JComboBox labelOccSource;
 	private JButton searchButton;
 	private JButton showOccButton;
+	private JButton showOccAuthorButton;
 	private JButton exportButton;
+	private JButton infoButton;
 	private JButton graphButton;
 	private JComboBox boxLang;
 	private JComboBox levelBox;
+	private JComboBox boxAuthor;
 	private JComboBox boxWidth;
+	private HyperalignText selectedAuthor;
 
-	private String level;
 	private String [] columnNames ;
 	private JTable listResultTable;
 	private TableRowSorter<ResultTableModel> sorter;
 	private ResultTableModel resultTableModel;
 	private JScrollPane scrollResult;
-
+	private JScrollPane scrollPieChart;
+	
+	private ResultTableModel resultTableNoTranslation;
+	private JTable listNoTranslationTable;
+	private JScrollPane scrollNoTranslation;
+	
 	private String [] columnNamesAuthor ;
 	private JTable listResultTableAuthor;
 	private ResultTableModel resultTableModelAuthor;
 	private JScrollPane scrollResultAuthor;
 	
-	private JPanel conceptPanel;
-	private JPanel conceptByAuthorPanel;
-	private JScrollPane scrollResultPie;
-	
 	private JScrollPane scrollResultAuthorPie;
-	
-	private JTabbedPane tabPaneTable;
-	private JTabbedPane tabPanePieChart;
-
 	private JTabbedPane tabPane;
-	private HashMap<ConceptEquivalenceElement,Object> selectedEquivalences;
+	private JTabbedPane tabPaneForGraphView;
+	private JTabbedPane tabPaneForTableView;
+	private JTabbedPane tabPaneForPieChartView;
+	private HashMap<ConceptEquivalenceElement,Vector<Object>> selectedEquivalences;
 	private Vector<EquivalenceElement> selectedTargetEquivalences;
 	private String neighbourhoodWidth = "1";
 	private int nbOccSourceInEqui;
 
+	private JTextField commentField;
 	private EquivalenceGraph graph;
+	private EquivalenceGraph graphByAuthor;
 	private boolean withSizes = false;
 	private JCheckBox graphSizeBox;
 	private int editEquivalence;
-	private JComboBox authorGraphBox;
 	private HyperalignText author;
-	private boolean exportOcc;
+	private String level;
+	private HyperalignText selectedText;
+	private String export;
 	public final static String EXPORT_AUTHOR = "exportAuthor";
 	public final static String EXPORT_OCC = "exportOccurrences";
-
-	public EquivalencePane(HMManager manager){
+	public final static String EXPORT_IMAGE = "exportImageGraphe";
+	public HashMap<JCheckBox, HyperalignText> checkboxForTexts ;
+	public Vector<HyperalignText> selectedAuthors;
+	
+	private HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor;
+	private Vector<HyperalignText> textsForTargetLang ;
+	
+	public EquivalencePane(HMController manager){
 		this.res = HyperalignData.getInstance().getResourceBundle();
 		this.manager = manager;
 		tradManager = manager.getDataManager().getEquivalenceManager();
@@ -157,10 +179,14 @@
 
 	public void initGui(boolean reinit){
 		editEquivalence = tradManager.getEditingEquivalence();
+		if(reinit){
+			this.removeAll();
+		}
 		switch (editEquivalence){
 		case EquivalenceManager.EQUIVALENCE_OCCURRENCE :
-			AnnotEquiPane annotEqui = new AnnotEquiPane(manager);
-			this.add(annotEqui,BorderLayout.CENTER);
+			AnnotEquiPane annotEqui  = new AnnotEquiPane(manager);
+			
+			this.add(annotEqui, BorderLayout.CENTER);
 			break;
 		case EquivalenceManager.EQUIVALENCE_CONCEPT :
 			initTable(reinit);
@@ -171,23 +197,25 @@
 
 
 	
-
 	
 
+
 	private void initTable(boolean reinit){
 		this.targetLang = tradManager.getTargetLangForGraph();
 		this.sourceLang = tradManager.getSourceLangForGraph();
 		this.sourceElement = tradManager.getSourceElement();
+		
 		String name = "";
 		if(sourceElement!=null){
 			name = sourceElement.getName();
 		}else {
 			name = tradManager.getSourceString();
 		}
+		this.sourceTerminoElement = new ConceptEquivalenceElement(name, "CEQS");
 		if(sourceElement==null){
-			System.out.println("AnnotEquiPane.initTable() ---- NOT TERMINO ELEMENT TO TAKE IN CONSIDERATION !");
+			System.out.println("EquivalencePane.initTable() ---- NOT TERMINO ELEMENT TO TAKE IN CONSIDERATION !");
 		}else {
-			System.out.println("AnnotEquiPane.initTable() ---- for "+sourceElement+" in LANG [TARGET="+targetLang+"]-[SOURCE="+sourceLang+"]");
+			System.out.println("EquivalencePane.initTable() ---- for "+sourceElement+" in LANG [TARGET="+targetLang+"]-[SOURCE="+sourceLang+"]");
 		}
 
 
@@ -201,7 +229,194 @@
 		}
 	}
 
+	private JToolBar initTriPanel(Dictionary[] targetLangs){
+		JToolBar triPanel = new JToolBar();
+		
+		///LABEL 
+		JPanel aboutSourcePanel = new JPanel();
+		JLabel aboutSource;
+		int nbOccSource = 0;
+		System.out.println("EquivalencePane.initTriPanel() - SOURCE ELEMENT (type = "+sourceElement.getReference()+")");
+		if(sourceElement.getReference().equals(Dictionary.DICO_LEMME)){
+			Vector<DictionaryElement> lemmesInEquivalence = tradManager.getLemmesInEquivalence(sourceLang);
+			System.out.println("EquivalencePane.initTriPanel() - HOW MANY LEMMES IN EQUIVALENCE ? "+lemmesInEquivalence.size());
+			if (lemmesInEquivalence.size()>0){
+				labelOccSource = new JComboBox(lemmesInEquivalence);
+				labelOccSource.setPreferredSize(new Dimension(80,20));
+				labelOccSource.setSelectedItem(sourceElement);
+				
+				nbOccSource = sourceLang.getOccurrencesForLemme(sourceElement).size();
+				aboutSourcePanel.add(labelOccSource);
+			}
+			aboutSource = new JLabel(nbOccSource+" "+res.getString("I18N_EQUIVALENCEPANE_LABEL_2"));		
+			
+		}else {
+			aboutSource = new JLabel(sourceElement.getName());
+		}
+		aboutSourcePanel.add(aboutSource);
+		triPanel.add(aboutSourcePanel);
+		
+		Object[] authorsText = new Object[textsForTargetLang.size()+1];
+		for(int i = 0 ; i < textsForTargetLang.size() ; ++i) {
+			authorsText[i] = textsForTargetLang.get(i);
+		}
+		
+		//Choix dans le graphe des �quivalences
+		authorsText[textsForTargetLang.size()] = res.getString("I18N_EQUIVALENCEPANE_LABEL_ALLAUTHORS_GRAPH");
+		boxAuthor = new JComboBox(authorsText);
+		boxAuthor.setPreferredSize(new Dimension(100,25));
+		if(selectedAuthor!=null){
+			boxAuthor.setSelectedItem(selectedAuthor);
+		}else {
+			boxAuthor.setSelectedItem(res.getString("I18N_EQUIVALENCEPANE_LABEL_ALLAUTHORS_GRAPH"));
+		}
+		boxAuthor.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ae){	
+				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
+				if(o.toString().equals(res.getString("I18N_EQUIVALENCEPANE_LABEL_ALLAUTHORS_GRAPH"))){
+					selectedAuthor = null;
+					selectedAuthors = null;
+				}else {
+					selectedAuthor = (HyperalignText) o;	
+					selectedAuthors = new Vector<HyperalignText>();
+					selectedAuthors.add(selectedAuthor);
+				}
+				boxAuthor.setSelectedItem(o);
+				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, false, selectedAuthors);
+				initGuiWithTable();
+			}
+		});
+		triPanel.add(boxAuthor);
+		
+		boxLang = new JComboBox(targetLangs);
+		boxLang.setPreferredSize(new Dimension(100,25));
+		if(targetLang!=null){
+			boxLang.setSelectedItem(targetLang);
+		}
+		boxLang.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ae){	
+				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
+				targetLang = (Dictionary)o;	
+				boxLang.setSelectedItem(o);
+				initTable(true); 
+			}
+		});
+		triPanel.add(boxLang);
+	
+		/*String [] levels = {Dictionary.DICO_LEMME, Dictionary.DICO_FORM, Dictionary.DICO_OCC};
+		levelBox = new JComboBox(levels);
+		levelBox.setPreferredSize(new Dimension(100,25));
+		levelBox.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ae){	
+				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
+				level = (String)o;	
+				levelBox.setSelectedItem(o);
+				//initTable(true); 
+				System.out.println("EquivalencePane - levelBox - TO DO !!!!!!!!!!!!!!!!!!!");
+			}
+		});
+		triPanel.add(levelBox);*/
+	
+		String [] widths = {"1","2","3","4","5","6","7","8","9","10","infinite"};
+		boxWidth = new JComboBox(widths);
+		boxWidth.setPreferredSize(new Dimension(100,25));
+		boxWidth.setSelectedItem(neighbourhoodWidth);
+	
+		boxWidth.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent ae){	
+				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
+				neighbourhoodWidth = (String)o;	
+				boxWidth.setSelectedItem(o);
+				initGuiWithTable();
+			}
+		});
+		triPanel.add(boxWidth);
+	
+		graphSizeBox = new JCheckBox(res.getString("I18N_EQUIVALENCEPANE_GRAPHSIZE_OPTION"));
+		graphSizeBox.setSelected(withSizes);
+		graphSizeBox.addItemListener(this);
+		triPanel.add(graphSizeBox);
+	
+		
+		ImageIcon graphButt = ImageConfigure.createImageIcon(iconPath+"/Graph.gif");
+		graphButton = new JButton(graphButt);
+		graphButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_GRAPH"));
+		triPanel.add(graphButton);
+	
+		/*
+		 ///SHOW EQUIVALENCE BUTTON
+		ImageIcon displayButt = ImageConfigure.createImageIcon(iconPath+"/Column.gif");
+		showOccButton = new JButton(displayButt);
+		showOccButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCC"));
+		triPanel.add(showOccButton);
+	
+		///SHOW EQUIVALENCE AUTHOR BUTTON
+		ImageIcon displayAuthorButt = ImageConfigure.createImageIcon(iconPath+"/ColumnAuthor.gif");
+		showOccAuthorButton = new JButton(displayButt);
+		showOccAuthorButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCCAUTHOR"));
+		triPanel.add(showOccAuthorButton);
+	
+		///SEARCH BUTTON
+		ImageIcon searchButt = ImageConfigure.createImageIcon(iconPath+"/Search.gif");
+		searchButton = new JButton(searchButt);
+		searchButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_DOUBLESEARCH"));
+		triPanel.add(searchButton);
+	
+		///EXPORT BUTTON
+		ImageIcon exportButt = ImageConfigure.createImageIcon(iconPath+"/Save.gif");
+		exportButton = new JButton(exportButt);
+		exportButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_EXPORT"));
+		triPanel.add(exportButton);
+	
+		
+		//ACTIONS ---------
+		showOccButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				showEquivalences();
+			}
+		});
+		
+		showOccAuthorButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				showEquivalencesByAuthor();
+			}
+		});
+	
+		searchButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				searchForEquivalences();
+			}
+		});
+	
+		exportButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				export();
+			}
+		});
+	
+		infoButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				ResultTableModel tableModel = prepareTableByAuthor();
+				EquiTextPane textPane = new EquiTextPane(tableModel);
+				textPane.setLocationRelativeTo(Hyperalign.getInstance());
+				textPane.setAlwaysOnTop(true);
+			}
+		});*/
+	
+		graphButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				showGraphByAuthor();
+			}
+		});
+	
+	
+		return triPanel;
+	}
+
+
+
 	private void initGuiWithTable(){
+		
 		//at first, we must select a target lang to get the table of target equivalences
 		HashMap<Dictionary, Vector<HyperalignText>> langs = tradManager.getDictionaryAndTextForEquivalences();
 		Set<Dictionary> langKeys = langs.keySet();
@@ -217,193 +432,134 @@
 			}
 		}
 
+		textsForTargetLang = langs.get(targetLang);
 		/////////////////// BUILD INFO for TABLE ////////////////
 		if(targetLang!=null){
 			DictionaryElement el = null;
 
 			if(neighbourhoodWidth.equals("infinite")){
 				el = sourceLang.getRoot();
-				tradManager.buildInfoForGraph(el, targetLang, neighbourhoodWidth, false, null);				
+				tradManager.buildInfoForGraph(el, targetLang, neighbourhoodWidth, false, selectedAuthors);				
 				manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
 			}else {
 				el = sourceElement;
-				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, false, null);
+				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, false, selectedAuthors);
 			}
 			conceptEquivalenceElements = tradManager.buildConceptEquivalenceElements(el, targetLang);
 		}
 		//////////////////////////////////////////////////////
-
+		equivalencesByAuthor = tradManager.showEquivalencesByAuthor(conceptEquivalenceElements, targetLang);
+		
 		this.removeAll();	
 
 		//PARAM PANEL 	
-		JPanel panelParams = initTriPanel(targetLangs);	
+		JToolBar panelParams = initTriPanel(targetLangs);	
 		this.setLayout(new BorderLayout());
 		this.add(panelParams, BorderLayout.NORTH);
 
 		/////////////////////////////////////////////
-		//GRAPHS, TABLES or PIE CHARTS		
+		//JPanel graphPanel = new JPanel();
+		//graphPanel.setLayout(new GridLayout(1,2));
+
+		tradManager.setGraphSizeOption(withSizes);
 		tabPane = new JTabbedPane();
 		
-		///// GRAPHS 
-		tradManager.setGraphSizeOption(withSizes);
+		tabPaneForGraphView = buildGraphView();
+		tabPane.add(res.getString("I18N_EQUIVALENCEPANE_TAB_GRAPH"), tabPaneForGraphView);
+		tabPaneForTableView = buildTableView();
+		tabPane.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TABLE"), tabPaneForTableView);
+		tabPaneForPieChartView = buildPieChartView();
+		tabPane.add(res.getString("I18N_EQUIVALENCEPANE_TAB_PIECHART"), tabPaneForPieChartView);
+		
+	
+		//JSplitPane splitVerticalPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, graph, tabPane);
+		//splitVerticalPane.setOneTouchExpandable(true);
+		//splitVerticalPane.setDividerLocation(500);
+		//this.add(splitVerticalPane,BorderLayout.CENTER);
+		this.add(tabPane, BorderLayout.CENTER);
+	}
+
+	private JTabbedPane buildGraphView(){
+		tabPaneForGraphView = new JTabbedPane();
 		graph = new EquivalenceGraph(manager, tradManager.getCurrentGraphUrls(), tradManager.getGraphAllConceptOption(), withSizes);
+		tabPaneForGraphView.add(res.getString("I18N_EQUIVALENCEPANE_GRAPH_ALL"), graph);
+		
+		//Graph By Author
+		Vector<HyperalignText> selectionOfAuthors = new Vector<HyperalignText>();
+		if(textsForTargetLang.size()>4){
+			for(int i = 0 ; i < 4 ; ++i) {
+				HyperalignText text = textsForTargetLang.get(i);
+				selectionOfAuthors.add(text);
+			}
+		}else {
+			selectionOfAuthors = textsForTargetLang;
+		}
+		System.out.println("EquivalencePane.buildGraphView ----- Graphe avec "+selectionOfAuthors.size()+" auteurs");
+		tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, true, selectionOfAuthors);
+		URL[] urlsEquivalence = tradManager.getCurrentGraphUrls(); 
+		boolean withSizes = tradManager.getGraphSizeOption();
+		boolean withAllConcepts = tradManager.getGraphAllConceptOption();
+		graphByAuthor = new EquivalenceGraph(manager, urlsEquivalence, withAllConcepts, withSizes);
+		tabPaneForGraphView.add(res.getString("I18N_EQUIVALENCEPANE_GRAPH_BYAUTHOR"), graphByAuthor);
+		
+		return tabPaneForGraphView;
+	}
 	
+	private JTabbedPane buildTableView(){
+		tabPaneForTableView = new JTabbedPane();
+		initConceptTable();
+		tabPaneForTableView.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE1"), scrollResult);
 		
-		///// TABLES Tabbedpane
-		tabPaneTable = new JTabbedPane();
+		initConceptByAuthorTable();
+		tabPaneForTableView.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE2"), scrollResultAuthor);
 		
-		initConceptTablePie();//initConceptTable();
-		tabPaneTable.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE1"), conceptPanel);//scrollResult
-
-		initConceptByAuthorTablePie();//initConceptByAuthorTable();
-		tabPaneTable.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE2"), conceptByAuthorPanel);//scrollResultAuthor
-		tabPaneTable.setSelectedComponent(conceptPanel);
-
-		///// PIE CHARTS Tabbedpane
-		tabPanePieChart = new JTabbedPane();
-		buildConceptPieChart();
-		tabPanePieChart.add("Concept cibles", scrollResultPie);
-
-		buildConceptByAuthorPieChart();
-		tabPanePieChart.add("Concept cibles par auteur", scrollResultAuthorPie);
-
-		tabPane.add("Graphes", graph);
-		tabPane.add("Tableaux-Camemberts", tabPaneTable);
-		tabPane.add("Camemberts", tabPanePieChart);
-		tabPane.setSelectedComponent(graph);
+		//"Absences de traduction"
+		initMissingEquivalencesTable();
+		tabPaneForTableView.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE3"), scrollNoTranslation);
+		tabPaneForTableView.setSelectedComponent(scrollResult);
 		
-		this.add(tabPane,BorderLayout.CENTER);
+		return tabPaneForTableView;
 	}
-
-	private void buildConceptPieChart(){
-		if( conceptEquivalenceElements.size()>0) {
-			DefaultPieDataset dataset = new DefaultPieDataset();
-
-			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
-			HashMap<Object, Vector<OccurrenceSet>> occsByConcept = conceptEquiEl.getOccurrences();
-			Set keys = occsByConcept.keySet();
-			Iterator itC = keys.iterator();
-			while(itC.hasNext()){
-				Object obj = itC.next();
-
-				if(obj instanceof DictionaryElement){
-					DictionaryElement element = (DictionaryElement) obj;
-					dataset.setValue(element.getName(), occsByConcept.get(obj).size());
-				}else {
-					String element = (String) obj;
-					dataset.setValue(element, occsByConcept.get(obj).size());
-				}				
-			}
-
-			JFreeChart conceptChart = ChartFactory.createPieChart(
-					conceptEquiEl.getName(),  // chart title
-					dataset,             // data
-					true,               // include legend
-					true,
-					false
-					);
-
-			PiePlot plot = (PiePlot) conceptChart.getPlot();
-			plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
-			plot.setNoDataMessage("No data available");
-			plot.setCircular(false);
-			plot.setLabelGap(0.02);
-			JPanel conceptChartPanel =   new ChartPanel(conceptChart);
-			scrollResultPie = new JScrollPane(conceptChartPanel);
-			scrollResultPie.setPreferredSize(new Dimension(400,400));	
-		}
+	
+	private JTabbedPane buildPieChartView(){
+		tabPaneForPieChartView = new JTabbedPane();
+		initConceptPieChart();
+		tabPaneForPieChartView.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE1"), scrollPieChart);
+		initConceptByAuthorPieChart();
+		tabPaneForPieChartView.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE2"), scrollResultAuthorPie);
+	
+		return tabPaneForPieChartView;
 	}
-
-	private void buildConceptByAuthorPieChart(){
-		JPanel conceptByAuthorChartPanel = new JPanel();
+	
+	private void initMissingEquivalencesTable(){
+		Vector<HyperalignText> texts = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
+		columnNames = new String[2];
+		columnNames[0] = "Text";
+		columnNames[1] = "Nb absence";
 		
-		if(conceptEquivalenceElements.size()>0){
-			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
-
-			HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor = tradManager.showEquivalencesByAuthor(conceptEquivalenceElements, targetLang);
-			Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-			HashMap<HyperalignText, DefaultPieDataset> piePerText = new HashMap<HyperalignText, DefaultPieDataset>();
-			for(HyperalignText t : textsForTargetLang){
-				if(author!=null){
-					if(t== author){
-						DefaultPieDataset dataset = new DefaultPieDataset();
-						piePerText.put(t, dataset);
-					}
-				}else{
-					DefaultPieDataset dataset = new DefaultPieDataset();
-					piePerText.put(t, dataset);
-				}
-
-			}
-
-			Set<DictionaryElement> keys = equivalencesByAuthor.keySet();
-			Iterator<DictionaryElement> it = keys.iterator();
-			while (it.hasNext()) {
-				DictionaryElement conceptTarget = it.next();
-				HashMap<HyperalignText, Integer> nbByAuthor = equivalencesByAuthor.get(conceptTarget);
-				for(int j = 0 ; j < textsForTargetLang.size(); ++j){
-					
-					HyperalignText text = textsForTargetLang.get(j);
-					if(author!=null){
-						if(text== author){
-							DefaultPieDataset dataset = piePerText.get(text);
-							Integer nb = nbByAuthor.get(text);
-							dataset.setValue(conceptTarget.getName(), nb);
-							
-						}
-					}else {
-						DefaultPieDataset dataset = piePerText.get(text);
-						Integer nb = nbByAuthor.get(text);
-						dataset.setValue(conceptTarget.getName(), nb);
-					}
-					
-				}
-			}
-
-			if(author==null){
-				conceptByAuthorChartPanel.setLayout(new GridLayout(2,2));
-			}
-				
-			for(HyperalignText t : piePerText.keySet()){
-				DefaultPieDataset dataset = piePerText.get(t);
-				JFreeChart conceptChart = ChartFactory.createPieChart(t.getName(), dataset, true, true, false);
-				PiePlot plot = (PiePlot) conceptChart.getPlot();
-				plot.setLabelFont(new Font("SansSerif", Font.PLAIN, 12));
-				plot.setNoDataMessage("No data available");
-				plot.setCircular(false);
-				plot.setLabelGap(0.02);
-				
-				JPanel panel =   new ChartPanel(conceptChart);
-				conceptByAuthorChartPanel.add(panel);
-			}	
-
+		resultTableNoTranslation = new ResultTableModel(columnNames, texts.size());	
+		int i = 0;
+		int nbNoEquivalence = 0;
+		for(HyperalignText t : texts){
+			resultTableNoTranslation.setValueAt(t.getName(),i,0);
+			nbNoEquivalence = tradManager.findMissingEquivalences(sourceElement, t);
+			resultTableNoTranslation.setValueAt(nbNoEquivalence,i,1);
+			++i;
 		}
-		scrollResultAuthorPie = new JScrollPane(conceptByAuthorChartPanel);
-		//scrollResultAuthorPie.setPreferredSize(new Dimension(400,400));	
+		
+		//findMissingEquivalences();
+		//Boucle sur toutes les occurrences du concept source, dans le fichier des �quivalences, voir les fois o� celles-ci ne sont pas traduites 
+		//Une colonne avec le nombre manquant (non traduction) par auteur
+		//Introduire ce r�sultat dans PieChart par auteur (pour une meilleur repr�sentativit�)
+		sorter = new TableRowSorter<ResultTableModel>(resultTableNoTranslation);
+		listNoTranslationTable = new JTable(resultTableNoTranslation);
+		listNoTranslationTable.setRowSorter(sorter);
+		listNoTranslationTable.addMouseListener(this);
+		scrollNoTranslation = new JScrollPane(listNoTranslationTable);
+		scrollNoTranslation.setPreferredSize(new Dimension(400,400));	
 	}
-
-
-private void initConceptTablePie(){
-	conceptPanel = new JPanel();
-	conceptPanel.setLayout(new GridLayout(1,2));
-	buildConceptTable();
-	buildConceptPieChart();
-	conceptPanel.add(scrollResult);
-	conceptPanel.add(scrollResultPie);
 	
-}
-
-private void initConceptByAuthorTablePie(){
-	conceptByAuthorPanel = new JPanel();
-	conceptByAuthorPanel.setLayout(new GridLayout(1,2));
-	buildConceptByAuthorTable();
-	buildConceptByAuthorPieChart();
-	conceptByAuthorPanel.add(scrollResultAuthor);
-	conceptByAuthorPanel.add(scrollResultAuthorPie);
-	
-}
-	private void buildConceptTable(){
-		
+	private void initConceptTable(){
 		columnNames = new String[3];	
 		columnNames[0] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTSOURCE");
 		columnNames[1] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTTARGET")+" ("+targetLang+")";
@@ -416,7 +572,7 @@
 		}
 
 		resultTableModel = new ResultTableModel(columnNames, nbLines);	
-
+		
 		int index = 0;
 		for (int i = 0; i < conceptEquivalenceElements.size(); i++) {
 			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(i);
@@ -439,20 +595,17 @@
 
 		}
 
-		System.out.println("Equivalence.initGuiWithTable() = nb TABLE RESULTS #"+resultTableModel.getRowCount()+" for element -> "+sourceElement);
+		System.out.println("EquivalencePane.initGuiWithTable() = nb TABLE RESULTS #"+resultTableModel.getRowCount()+" for element -> "+sourceElement);
 		sorter = new TableRowSorter<ResultTableModel>(resultTableModel);
 		listResultTable = new JTable(resultTableModel);
 		listResultTable.setRowSorter(sorter);
 		listResultTable.addMouseListener(this);
 		scrollResult = new JScrollPane(listResultTable);
-		//scrollResult.setPreferredSize(new Dimension(400,400));	
+		scrollResult.setPreferredSize(new Dimension(400,400));	
+	}
+	
+	private void initConceptByAuthorTable(){
 		
-	}
-
-	private void buildConceptByAuthorTable(){
-		HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor = tradManager.showEquivalencesByAuthor(conceptEquivalenceElements, targetLang);
-		Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-
 		//COLUMNS ////////////////////
 		columnNamesAuthor = new String[textsForTargetLang.size()+1];
 		columnNamesAuthor[0] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTTARGET");
@@ -461,10 +614,10 @@
 			columnNamesAuthor[j+1] = text.getName();
 		}
 		//////////////////
-
+	
 		int nbLines = equivalencesByAuthor.size();
 		resultTableModelAuthor = new ResultTableModel(columnNamesAuthor, nbLines);	
-
+	
 		//System.out.println("NB LINES ? "+nbLines);
 		Set<DictionaryElement> keys = equivalencesByAuthor.keySet();
 		Iterator<DictionaryElement> it = keys.iterator();
@@ -486,180 +639,153 @@
 				}
 			}
 		}
-
+	
 		listResultTableAuthor = new JTable(resultTableModelAuthor);
 		listResultTableAuthor.addMouseListener(this);
 		scrollResultAuthor = new JScrollPane(listResultTableAuthor);
 		scrollResultAuthor.setPreferredSize(new Dimension(400,400));	
 	}
 
-	private JPanel initTriPanel(Dictionary[] targetLangs){
-		JPanel triPanel = new JPanel();
 
-		//Choix dans le graphe des �quivalences
-		Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-		authorGraphBox = new JComboBox(textsForTargetLang);
-		authorGraphBox.setPreferredSize(new Dimension(100,25));
-		if(author!=null){
-			authorGraphBox.setSelectedItem(author);
-		}
-		authorGraphBox.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				author = (HyperalignText)o;	
-				authorGraphBox.setSelectedItem(o);
-				initGuiWithTable();
-			}
-		});
-		triPanel.add(authorGraphBox);
 
-		///LABEL about the Equivalences
-		labelOccSource = new JLabel();
-		System.out.println("AnnotEquiPane.initTriPanel() - LABEL OCC SOURCE type = "+type);
-		if(type.equals(Dictionary.DICO_LEMME)){
-			int nbOccSource = sourceLang.getOccurrencesForLemme(sourceElement).size();
-			//int nbOccSourceInEqui = tradManager.getCurrentEquivalenceElements().size();
-			labelOccSource = new JLabel(/*nbOccSourceInEqui+" "+*/res.getString("I18N_EQUIVALENCEPANE_LABEL_1")+" "+
-					sourceElement.getName()+" / "+nbOccSource+" "+res.getString("I18N_EQUIVALENCEPANE_LABEL_2"));
-			System.out.println("   -   "+res.getString("I18N_EQUIVALENCEPANE_LABEL_1")+" "+
-					sourceElement.getName()+" / "+nbOccSource+" "+res.getString("I18N_EQUIVALENCEPANE_LABEL_2"));
-		}
-		triPanel.add(labelOccSource);
-
-		boxLang = new JComboBox(targetLangs);
-		boxLang.setPreferredSize(new Dimension(100,25));
-		if(targetLang!=null){
-			boxLang.setSelectedItem(targetLang);
-		}
-		boxLang.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				targetLang = (Dictionary)o;	
-				boxLang.setSelectedItem(o);
-				initTable(true); 
+	private void initConceptByAuthorPieChart(){
+		JPanel conceptByAuthorChartPanel = new JPanel();
+		
+		if(conceptEquivalenceElements.size()>0){
+			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
+			
+			HashMap<HyperalignText, DefaultPieDataset> piePerText = new HashMap<HyperalignText, DefaultPieDataset>();
+			for(HyperalignText t : textsForTargetLang){
+				if(author!=null){
+					if(t== author){
+						DefaultPieDataset dataset = new DefaultPieDataset();
+						piePerText.put(t, dataset);
+	                   }	
+				}else{
+					DefaultPieDataset dataset = new DefaultPieDataset();
+					piePerText.put(t, dataset);
+				}
+	        }
+	
+			Set<DictionaryElement> keys = equivalencesByAuthor.keySet();
+			Iterator<DictionaryElement> it = keys.iterator();
+			while (it.hasNext()) {
+				DictionaryElement conceptTarget = it.next();
+				HashMap<HyperalignText, Integer> nbByAuthor = equivalencesByAuthor.get(conceptTarget);
+				for(int j = 0 ; j < textsForTargetLang.size(); ++j){
+					
+					HyperalignText text = textsForTargetLang.get(j);
+					if(author!=null){
+						if(text== author){
+							DefaultPieDataset dataset = piePerText.get(text);
+							Integer nb = nbByAuthor.get(text);
+							dataset.setValue(conceptTarget.getName()+" : "+nb, nb);
+						}	
+					}else {
+						DefaultPieDataset dataset = piePerText.get(text);
+						Integer nb = nbByAuthor.get(text);
+						dataset.setValue(conceptTarget.getName()+" : "+nb, nb);
+					}
+				}
+				for(int j = 0 ; j < textsForTargetLang.size(); ++j){
+					HyperalignText text = textsForTargetLang.get(j);
+					DefaultPieDataset dataset = piePerText.get(text);
+					int nbNoEquivalence = tradManager.findMissingEquivalences(sourceElement, text);
+					dataset.setValue("No Translation : "+nbNoEquivalence, nbNoEquivalence);
+				}
 			}
-		});
-		triPanel.add(boxLang);
-
-		String [] levels = {Dictionary.DICO_LEMME, Dictionary.DICO_FORM, Dictionary.DICO_OCC};
-		levelBox = new JComboBox(levels);
-		levelBox.setPreferredSize(new Dimension(100,25));
-		levelBox.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				level = (String)o;	
-				levelBox.setSelectedItem(o);
-				//initTable(true); 
-				System.out.println("AnnotEquiPane - levelBox - TO DO !!!!!!!!!!!!!!!!!!!");
+	
+			if(author==null){
+				conceptByAuthorChartPanel.setLayout(new GridLayout(2,2));
 			}
-		});
-		triPanel.add(levelBox);
+	
+			for(HyperalignText t : piePerText.keySet()){
+				DefaultPieDataset dataset = piePerText.get(t);
+				JFreeChart conceptChart = ChartFactory.createPieChart(t.getName(), dataset, true, true, false);
+				JPanel panel =   new ChartPanel(conceptChart);
+				//DEFAULT_WIDTH and DEFAULT_HEIGHT: 680 x 420.
+				panel.setPreferredSize(new Dimension(200,200));
+				conceptByAuthorChartPanel.add(panel);
+			}	
+	
+		}
+		scrollResultAuthorPie = new JScrollPane(conceptByAuthorChartPanel);
+		//scrollResultAuthorPie.setPreferredSize(new Dimension(400,400));
+	}
 
-		String [] widths = {"1","2","3","4","5","6","7","8","9","10","infinite"};
-		boxWidth = new JComboBox(widths);
-		boxWidth.setPreferredSize(new Dimension(100,25));
-		boxWidth.setSelectedItem(neighbourhoodWidth);
 
-		boxWidth.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				neighbourhoodWidth = (String)o;	
-				boxWidth.setSelectedItem(o);
-				initGuiWithTable();
-			}
-		});
-		triPanel.add(boxWidth);
 
-		graphSizeBox = new JCheckBox(res.getString("I18N_EQUIVALENCEPANE_GRAPHSIZE_OPTION"));
-		graphSizeBox.setSelected(withSizes);
-		graphSizeBox.addItemListener(this);
-		triPanel.add(graphSizeBox);
-
-		///SHOW EQUIVALENCE BUTTON
-		ImageIcon displayButt = ImageConfigure.createImageIcon(iconPath+"/Column.gif");
-		showOccButton = new JButton(displayButt);
-		showOccButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCC"));
-		triPanel.add(showOccButton);
-
-		///SHOW EQUIVALENCE AUTHOR BUTTON
-		/*ImageIcon displayAuthorButt = ImageConfigure.createImageIcon(iconPath+"/ColumnAuthor.gif");
-		showOccAuthorButton = new JButton(displayButt);
-		showOccAuthorButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCCAUTHOR"));
-		triPanel.add(showOccAuthorButton);*/
-
-		///SEARCH BUTTON
-		ImageIcon searchButt = ImageConfigure.createImageIcon(iconPath+"/Search.gif");
-		searchButton = new JButton(searchButt);
-		searchButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_DOUBLESEARCH"));
-		triPanel.add(searchButton);
-
-		///EXPORT BUTTON
-		ImageIcon exportButt = ImageConfigure.createImageIcon(iconPath+"/Save.gif");
-		exportButton = new JButton(exportButt);
-		exportButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_EXPORT"));
-		triPanel.add(exportButton);
-
-		ImageIcon graphButt = ImageConfigure.createImageIcon(iconPath+"/Graph.gif");
-		graphButton = new JButton(graphButt);
-		graphButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_GRAPH"));
-		triPanel.add(graphButton);
-
-		//ACTIONS ---------
-		showOccButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showEquivalences();
+	private void initConceptPieChart(){	
+		JPanel panelPieChart = new JPanel();
+		DefaultPieDataset pieDataset = new DefaultPieDataset(); 
+		DefaultPieDataset pieDataset2 = new DefaultPieDataset(); 
+		Vector<ChartPanel> cPanels = new Vector<ChartPanel>();
+		
+		if(conceptEquivalenceElements.size()>=1){
+			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
+			int sizeConceptSource = conceptEquiEl.getOccurrences().size();
+			JFreeChart pieChart = ChartFactory.createPieChart(conceptEquiEl.getName()+" - All ("+sizeConceptSource+" occs)", pieDataset, true, true, true); 
+			ChartPanel cPanel = new ChartPanel(pieChart); 
+			cPanels.add(cPanel);
+			if(selectedAuthors != null){//When it is all the texts 		
+				JFreeChart pieChart2 = ChartFactory.createPieChart(conceptEquiEl.getName()+" - "+selectedAuthors.get(0).getName(), pieDataset2, true, true, true); 	
+				cPanel = new ChartPanel(pieChart2); 
+				cPanels.add(cPanel);
 			}
-		});
-
-		/*showOccAuthorButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showEquivalencesByAuthor();
+			
+			HashMap<Object, Vector<OccurrenceSet>> occsByConcept = conceptEquiEl.getOccurrences();
+			Set keys = occsByConcept.keySet();
+			Iterator itC = keys.iterator();
+			while(itC.hasNext()){
+				Object obj = itC.next();
+				int sizeConceptTarget = occsByConcept.get(obj).size();
+				System.out.println("EquivalencePane.initConceptPieChart() - sizeConceptTarget = "+sizeConceptTarget);
+				if(obj instanceof DictionaryElement){
+					DictionaryElement element = (DictionaryElement) obj;
+					if(sizeConceptTarget > 0 ){
+						pieDataset.setValue(element.getName()+" : "+sizeConceptTarget, new Integer(sizeConceptTarget)); 
+					}
+				}else {
+					String element = (String) obj;
+					if(sizeConceptTarget > 0 ){
+						pieDataset.setValue(element+" : "+sizeConceptTarget, new Integer(sizeConceptTarget)); 
+					}
+				}
 			}
-		});*/
-
-		searchButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				searchForEquivalences();
+			int nbNoEquivalence = 0;
+			for(HyperalignText textForTarget : textsForTargetLang){
+				 nbNoEquivalence += tradManager.findMissingEquivalences(sourceElement, textForTarget);
+				pieDataset.setValue("No Translation : "+nbNoEquivalence, nbNoEquivalence);
 			}
-		});
-
-		exportButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				export();
+			if(selectedAuthors != null){
+				Set<DictionaryElement> keys2 = equivalencesByAuthor.keySet();
+				Iterator<DictionaryElement> it = keys2.iterator();
+				while (it.hasNext()) {
+					DictionaryElement conceptTarget = it.next();
+					HashMap<HyperalignText, Integer> nbByAuthor = equivalencesByAuthor.get(conceptTarget);
+					for(int j = 0 ; j < textsForTargetLang.size(); ++j){
+						HyperalignText text = textsForTargetLang.get(j);
+						if(selectedAuthors.get(0) == text){
+								Integer nb = nbByAuthor.get(text);
+								pieDataset2.setValue(conceptTarget.getName()+" : "+nb, nb);
+						}
+					}
+				}
+				nbNoEquivalence = tradManager.findMissingEquivalences(sourceElement, selectedAuthors.get(0));
+				pieDataset2.setValue("No Translation : "+nbNoEquivalence, nbNoEquivalence);
 			}
-		});
-
-		/*infoButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				ResultTableModel tableModel = prepareTableByAuthor();
-				EquiTextPane textPane = new EquiTextPane(tableModel);
-				textPane.setLocationRelativeTo(Hyperalign.getInstance());
-				textPane.setAlwaysOnTop(true);
-			}
-		});*/
-
-		graphButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showGraphByAuthor();
-			}
-		});
-
-
-		return triPanel;
+			
+			
+		}
+		panelPieChart.setLayout(new GridLayout(1,cPanels.size()));
+		for(ChartPanel cPanel : cPanels){
+			 panelPieChart.add(cPanel);
+			 cPanel.setPreferredSize(new Dimension(400,400/cPanels.size()));
+		}
+	    scrollPieChart = new JScrollPane(panelPieChart);
+	    scrollPieChart.setPreferredSize(new Dimension(400,400));	
 	}
-
-
-	private void delete(){
-		//int n2 = JOptionPane.showConfirmDialog(this, "Voulez-vous gardez les annotations même lors de la suppression de l'équivalence", "Information sur les annotations", JOptionPane.YES_NO_OPTION);  
-		//if(n2==JOptionPane.NO_OPTION){
-		tradManager.deleteEquivalence(equiEl, false);	
-		//}
-		//if(n2==JOptionPane.YES_OPTION){
-		//	tradManager.deleteEquivalence(equiEl, true);	
-		//}
-		manager.reinitHyperalignPane(true, HyperalignData.DATA_EQUIVALENCE, true);
-	}
-
+	
 	private void export(){
 		JRadioButton exportOccButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_1"));
 		exportOccButton.setActionCommand(EquivalencePane.EXPORT_OCC);
@@ -668,52 +794,74 @@
 		JRadioButton exportAuthButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_2"));
 		exportAuthButton.setActionCommand(EquivalencePane.EXPORT_AUTHOR);
 
+		JRadioButton exportImageButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_3"));
+		exportImageButton.setActionCommand(EquivalencePane.EXPORT_IMAGE);
+
 		//Group the radio buttons.
 		ButtonGroup group = new ButtonGroup();
 		group.add(exportOccButton);
 		group.add(exportAuthButton);
+		group.add(exportImageButton);
 
 		//Register a listener for the radio buttons.
 		exportOccButton.addActionListener(this);
 		exportAuthButton.addActionListener(this);
+		exportImageButton.addActionListener(this);
 
 		String message = res.getString("I18N_EQUIVALENCEPANE_EXPORT_MESSAGE");  
-		Object[] params = {message, exportOccButton, exportAuthButton};  
+		Object[] params = {message, exportOccButton, exportAuthButton, exportImageButton};  
 		int n = JOptionPane.showConfirmDialog(this, params, res.getString("I18N_EQUIVALENCEPANE_EXPORT_TITLE"), JOptionPane.YES_NO_OPTION);  
-
-		if(exportOcc){
-			exportEquivalences();
-		}else {
-			exportEquivalencesByAuthor();
+		if(n==0) {
+			if(export.equals(EquivalencePane.EXPORT_AUTHOR)){
+				exportEquivalencesByAuthor();
+			}
+			if(export.equals(EquivalencePane.EXPORT_OCC)){
+				exportEquivalences();
+			}
+			if(export.equals(EquivalencePane.EXPORT_IMAGE)){
+				exportImage();
+			}
+			
 		}
+		
 	}
 
 	/*
 	 * Sort equivalence elements by text (author) 
 	 */
+	
 
-
 	private void showGraphByAuthor(){
-		Vector <HyperalignText> authors = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-		//authorOptionDialog(authors);
-		authorsSelected = authors;
-		tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, true, authorsSelected);
-		manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
+		//faire une s�lection
+		if(selectedAuthor==null){
+			Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
+			JPanel checkPanel = new JPanel(new GridLayout(0, 1));
+			checkboxForTexts = new HashMap<JCheckBox,HyperalignText>();
+			selectedAuthors = new Vector<HyperalignText>();
+	        for(HyperalignText text : textsForTargetLang){
+				JCheckBox check = new JCheckBox(text.getName());
+				check.setSelected(true);
+				check.addItemListener(this);
+				checkPanel.add(check);
+				checkboxForTexts.put(check, text);
+				selectedAuthors.add(text);
+			}
+	        
+	        //JLabel message = new JLabel("message");
+			Object[] params = {/*message,*/ checkPanel};
+			int confirm = JOptionPane.showConfirmDialog(this, params, res.getString("I18N_HYPERMACHIAVEL_CONFIRMEDIT_SELECTEDAUTHORS_GRAPH"), JOptionPane.YES_NO_OPTION);  
+			if (confirm == JOptionPane.YES_OPTION) {
+				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, true, selectedAuthors);
+				manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
+			}
+		}else {
+			tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, true, selectedAuthors);
+			manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
+		}
+		
 	}
 
-	private void authorOptionDialog(Vector <HyperalignText> authors){
-		JLabel message = new JLabel("Choisir 4 textes parmi la liste");
-		
-		Object[] params = new Object[authors.size()+1];
-		params[0] = message;
-		int i = 1;
-		for(HyperalignText t : authors){
-			JCheckBox checkbox = new JCheckBox(t.getName());
-			params[i] = checkbox;
-			++i;
-		} 
-		int n = JOptionPane.showConfirmDialog(this, params, "Choisir les textes de l'affichage", JOptionPane.YES_NO_OPTION);  
-	}
+	
 	/*private HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> showEquivalencesByAuthor(){
 		HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor = new HashMap<DictionaryElement, HashMap<HyperalignText,Integer>>();
 		if(conceptEquivalenceElements!=null){
@@ -735,20 +883,22 @@
 					}else {
 						String element = (String) obj;
 					}
-
-
+					
+					
 				}
-
+				
 			}
 		}
 		return equivalencesByAuthor;
 	}*/
 
-
-
-
-
-
+	
+	private void exportImage(){
+		graph.exportImage();
+		//manager.sendMessage();
+		
+	}
+	
 	private void exportEquivalences(){
 		String csvLine = "";
 		int nbCols = resultTableModel.getColumnCount();
@@ -772,15 +922,15 @@
 		}
 		manager.saveWork(csvLine);
 	}
-
+	
 	private void exportEquivalencesByAuthor(){
 		if(conceptEquivalenceElements!=null){
 			if(conceptEquivalenceElements.size()>=1){
 				ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
 				String csvLine = "";
 				csvLine += res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL1")+conceptEquiEl.getName()+
-						" ["+sourceLang.getName()+"] "+
-						nbOccSourceInEqui+" "+res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL2")+";";
+				" ["+sourceLang.getName()+"] "+
+				nbOccSourceInEqui+" "+res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL2")+";";
 				csvLine = tradManager.exportEquivalencesByAuthor(sourceElement, conceptEquivalenceElements, csvLine, targetLang);
 				manager.saveWork(csvLine);
 			}
@@ -811,6 +961,7 @@
 		Vector<String> words = new Vector<String>();
 		Vector<String> wordsTarget = new Vector<String>();
 
+		System.out.println("SearchForEquivalences() - "+selectedEquivalences.size()+" NB equivalences !");
 		Set<ConceptEquivalenceElement> keys = selectedEquivalences.keySet();
 		Iterator<ConceptEquivalenceElement> it = keys.iterator();
 		while(it.hasNext()){
@@ -819,7 +970,7 @@
 			//SOURCE ELEMENT
 			if(conceptSource.getDictionaryElement()!=null){
 				DictionaryElement concept = conceptSource.getDictionaryElement();
-				Vector<DictionaryElement> terms = concept.children();
+				Vector<DictionaryElement> terms = concept.childrenVect();
 				for (int j = 0; j < terms.size(); j++) {
 					DictionaryElement term = terms.get(j);
 					words.add(term.getName());
@@ -829,17 +980,20 @@
 			}
 
 			//TARGET ELEMENT
-			Object obj = selectedEquivalences.get(conceptSource);
-			if(obj instanceof DictionaryElement){
-				DictionaryElement concept = (DictionaryElement) obj;
-				Vector<DictionaryElement> terms = concept.children();
-				for (int j = 0; j < terms.size(); j++) {
-					DictionaryElement term = terms.get(j);
-					wordsTarget.add(term.getName());
-				}	
-			}else {
-				wordsTarget.add((String) obj);
+			Vector<Object> objs = selectedEquivalences.get(conceptSource);
+			for(Object obj : objs){
+				if(obj instanceof DictionaryElement){
+					DictionaryElement conceptTarget = (DictionaryElement) obj;
+					Vector<DictionaryElement> terms = conceptTarget.childrenVect();
+					for (int j = 0; j < terms.size(); j++) {
+						DictionaryElement term = terms.get(j);
+						wordsTarget.add(term.getName());
+					}	
+				}else {
+					wordsTarget.add((String) obj);
+				}
 			}
+			
 		}
 
 		String [] wordsS = new String[words.size()];
@@ -852,7 +1006,7 @@
 		}
 		doubleWords.put(source, wordsS);
 		doubleWords.put(target, wordsT);
-		manager.getSearchManager().searchEquiWords(sourceTexts, targetTexts, doubleLang, 
+		manager.getSearchController().searchEquiWords(sourceTexts, targetTexts, doubleLang, 
 				doubleWords, doubleTexts);
 
 		//manager.getSearchManager().searchEquiTerms(sourceTexts, targetTexts, querySourceTerms, sourceLang, queryTargetTerms, targetLang);
@@ -872,23 +1026,34 @@
 
 	private void showEquivalences(){
 		selectedTargetEquivalences = new Vector<EquivalenceElement>();
+		System.out.println("ShowEquivalences() - "+selectedEquivalences.size()+" NB equivalences !");
+		
 		if(selectedEquivalences.size()!=0){
 			Set<ConceptEquivalenceElement> keys = selectedEquivalences.keySet();
 			Iterator<ConceptEquivalenceElement> it = keys.iterator();
 			while(it.hasNext()){
 				ConceptEquivalenceElement concept = it.next();
+				System.out.println("-----ConceptEquivalenceElement = "+concept.getName()+" = "+concept.getOccurrences().size()+" nb occs !");
 				HashMap<Object, Vector<OccurrenceSet>> occs = concept.getOccurrences();
-				Object obj = selectedEquivalences.get(concept);
-				Vector<OccurrenceSet> occSets = occs.get(obj);
-				for (int j = 0; j < occSets.size(); j++) {
-					OccurrenceSet occSet = occSets.get(j);
-					EquivalenceElement equiEl = occSet.getEquivalence();
-					if(!selectedTargetEquivalences.contains(equiEl)){
-						selectedTargetEquivalences.add(equiEl);						
-					}
-				}				
+				
+				Vector<Object> objs = selectedEquivalences.get(concept);
+				for(Object obj : objs){
+					System.out.println("----------Object = "+obj.toString());
+					
+					Vector<OccurrenceSet> occSets = occs.get(obj);
+					for (int j = 0; j < occSets.size(); j++) {
+						OccurrenceSet occSet = occSets.get(j);
+						System.out.println("----------------OccurrenceSet = "+occSet.getValue());
+						
+						EquivalenceElement equiEl = occSet.getEquivalence();
+						if(!selectedTargetEquivalences.contains(equiEl)){
+							selectedTargetEquivalences.add(equiEl);						
+						}
+					}	
+				}
+							
 			}
-			manager.showEquiElements(selectedTargetEquivalences, targetLang, sourceLang);
+			manager.getTranslationController().showEquiElements(selectedTargetEquivalences, targetLang, sourceLang);
 		}
 	}
 
@@ -898,12 +1063,7 @@
 	@Override
 	public void actionPerformed(ActionEvent e) {
 		String cmd = e.getActionCommand();
-		if(cmd.equals(EquivalencePane.EXPORT_AUTHOR)){
-			exportOcc = false;
-		}
-		if(cmd.equals(EquivalencePane.EXPORT_OCC)){
-			exportOcc = true;
-		}
+		export = cmd;
 	}
 
 	/** This method clears the dialog and hides it. */
@@ -934,31 +1094,46 @@
 	@Override
 	public void mouseClicked(MouseEvent e) {
 
-		
+		if(e.getSource().equals(listEquiTable)){
+			int row = listEquiTable.getSelectedRow();
+			Object obj = listEquiTable.getValueAt(row, 0);
+			if(obj instanceof HyperalignText){
+				selectedText = (HyperalignText) obj;
+				Object obj2 = listEquiTable.getValueAt(row, 1);
+				if(obj2 instanceof OccurrenceSet){
+					OccurrenceSet occ = (OccurrenceSet) obj2;
+					DictionaryElement dicoEl = occ.getDictionaryElement();
+					if(dicoEl!=null) {
+						manager.getCorpusController().displayTextWithHighlightsForDictionary(dicoEl, selectedText);
+					}
+				}
+			}
+		}
 		if(e.getSource().equals(listResultTable)){
 			if (e.getClickCount() == 2 || e.getClickCount() == 1){
-				
 				int [] rows = listResultTable.getSelectedRows();
-				selectedEquivalences = new HashMap<ConceptEquivalenceElement,Object>();
-				System.out.println("AnnotEquiPane.mouseClicked() "+rows.length+" rows"); 
-
+				selectedEquivalences = new HashMap<ConceptEquivalenceElement,Vector<Object>>();
+				System.out.println("EquivalencePane.mouseClicked() "+rows.length+" rows"); 
+				Vector<Object> objsTarget = new Vector<Object>();
+				ConceptEquivalenceElement concept = null;
 				for(int i = 0 ; i < rows.length;++i){
 					int row = rows[i];
 
-					ConceptEquivalenceElement concept = (ConceptEquivalenceElement) resultTableModel.getValueAt(row, 0);
+					concept = (ConceptEquivalenceElement) resultTableModel.getValueAt(row, 0);
 					Object obj = (Object) resultTableModel.getValueAt(row, 1);
 					if(obj instanceof DictionaryElement){
 						DictionaryElement target = (DictionaryElement) obj;
-						selectedEquivalences.put(concept, target);
-						System.out.println("AnnotEquiPane.mouseClicked() at row "+row+" ["+concept.getName()+"] with Dico El - "+target.getName()+" - "); 
+						objsTarget.add(target);
+						System.out.println("EquivalencePane.mouseClicked() at row "+row+" ["+concept.getName()+"] with Dico El - "+target.getName()+" - "); 
 
 					}else {
-						selectedEquivalences.put(concept, (String) obj);
-						System.out.println("AnnotEquiPane.mouseClicked() at row "+row+" ["+concept.getName()+"] with String - "+(String) obj+" - "); 
+						objsTarget.add((String) obj);
+						System.out.println("EquivalencePane.mouseClicked() at row "+row+" ["+concept.getName()+"] with String - "+(String) obj+" - "); 
 
 					}
 					graph.highlightTarget(concept);
 				}
+				selectedEquivalences.put(concept, objsTarget);
 			}
 		}
 	}
@@ -976,50 +1151,121 @@
 	@Override
 	public void mousePressed(MouseEvent e) {
 		if(e.getButton() == MouseEvent.BUTTON3){
+			System.out.println("EquivalencePane.mousePressed() - click right"); 
+			
 			//POPUP Menu on right click
 			JPopupMenu jpm = new JPopupMenu();
-
+			
 			//EQUIVALENCE
-			Icon equalIcon = ImageConfigure.createImageIcon(iconPath+"/Equal.gif");
+			Icon equalIcon = ImageConfigure.createImageIcon(iconPath+"/Column.gif");
 			JMenuItem equalMenu = new JMenuItem(res.getString("I18N_TREEPANE_SHOWEQUIVALENCE"), equalIcon);
 			equalMenu.setMnemonic(KeyEvent.VK_E);
 			equalMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
 			equalMenu.getAccessibleContext().setAccessibleDescription(res.getString("I18N_TREEPANE_SHOWEQUIVALENCE"));
-
+			
 			equalMenu.addActionListener(new ActionListener(){
 				@Override
 				public void actionPerformed(ActionEvent e) {
-					showEquivalences();
+					if(tabPane.getSelectedComponent().equals(tabPaneForTableView)){
+						if(tabPaneForTableView.getSelectedComponent().equals(scrollResult)){
+							showEquivalences();
+						}
+					}
 				}
 			});
-			jpm.add(equalMenu);
+			
+			//SEARCH
+			Icon searchIcon = ImageConfigure.createImageIcon(iconPath+"/SearchMini.gif");
+			JMenuItem searchMenu = new JMenuItem(res.getString("I18N_TREEPANE_SEARCHEQUIVALENCE"), searchIcon);
+			searchMenu.setMnemonic(KeyEvent.VK_E);
+			searchMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
+			searchMenu.getAccessibleContext().setAccessibleDescription(res.getString("I18N_TREEPANE_SEARCHEQUIVALENCE"));
+			
+			searchMenu.addActionListener(new ActionListener(){
+				@Override
+				public void actionPerformed(ActionEvent e) {
+					if(tabPane.getSelectedComponent().equals(tabPaneForTableView)){
+						if(tabPaneForTableView.getSelectedComponent().equals(scrollResult)){
+							searchForEquivalences();
+						}
+					}
+				}
+			});
+			
+			
+			///EXPORT BUTTON
+			ImageIcon exportIcon = ImageConfigure.createImageIcon(iconPath+"/Save.gif");
+			JMenuItem exportMenu = new JMenuItem(res.getString("I18N_TREEPANE_EXPORTEQUIVALENCE"), exportIcon);
+			exportMenu.setMnemonic(KeyEvent.VK_E);
+			exportMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, ActionEvent.CTRL_MASK));
+			exportMenu.getAccessibleContext().setAccessibleDescription(res.getString("I18N_TREEPANE_EXPORTEQUIVALENCE"));
+			
+			exportMenu.addActionListener(new ActionListener(){
+				@Override
+				public void actionPerformed(ActionEvent e) {
+					if(tabPane.getSelectedComponent().equals(tabPaneForTableView)){
+						if(tabPaneForTableView.getSelectedComponent().equals(scrollResult)){
+							exportEquivalences();
+						}
+						if(tabPaneForTableView.getSelectedComponent().equals(scrollResultAuthor)){
+							exportEquivalencesByAuthor();
+						}
+					}
+					if(tabPane.getSelectedComponent().equals(tabPaneForGraphView)){
+						exportImage();
+					}
+						
+					
+				}
+			});
+			
+			if(tabPane.getSelectedComponent().equals(tabPaneForTableView)){
+				if(tabPaneForTableView.getSelectedComponent().equals(scrollResult)){
+					jpm.add(equalMenu);
+					jpm.add(searchMenu);
+				}
+				jpm.add(exportMenu);
+			}
+			if(tabPane.getSelectedComponent().equals(tabPaneForGraphView)){
+				jpm.add(exportMenu);
+			}
+
+			
+			if(e.getSource().equals(listResultTable)){
+				jpm.show(listResultTable, e.getX(), e.getY());
+			}else {
+				jpm.show(this, e.getX(), e.getY());
+			}
+			//show(tree, event.getX(), event.getY());
 		}
 		if(e.getSource().equals(listResultTable)){
 			if (e.getClickCount() == 2 || e.getClickCount() == 1){
-				
 				int [] rows = listResultTable.getSelectedRows();
-				selectedEquivalences = new HashMap<ConceptEquivalenceElement,Object>();
-				System.out.println("AnnotEquiPane.mouseClicked() "+rows.length+" rows"); 
-
+				selectedEquivalences = new HashMap<ConceptEquivalenceElement,Vector<Object>>();
+				System.out.println("EquivalencePane.mousePressed() "+rows.length+" rows"); 
+				Vector<Object> objsTarget = new Vector<Object>();
+				ConceptEquivalenceElement concept = null;
 				for(int i = 0 ; i < rows.length;++i){
 					int row = rows[i];
 
-					ConceptEquivalenceElement concept = (ConceptEquivalenceElement) resultTableModel.getValueAt(row, 0);
+					concept = (ConceptEquivalenceElement) resultTableModel.getValueAt(row, 0);
 					Object obj = (Object) resultTableModel.getValueAt(row, 1);
 					if(obj instanceof DictionaryElement){
 						DictionaryElement target = (DictionaryElement) obj;
-						selectedEquivalences.put(concept, target);
-						System.out.println("Equivalence.mousePressed() at row "+row+" ["+concept.getName()+"] with Dico El - "+target.getName()+" - "); 
+						objsTarget.add(target);
+						System.out.println("EquivalencePane.mousePressed() at row "+row+" ["+concept.getName()+"] with Dico El - "+target.getName()+" - "); 
 
 					}else {
-						selectedEquivalences.put(concept, (String) obj);
-						System.out.println("Equivalence.mousePressed() at row "+row+" ["+concept.getName()+"] with String - "+(String) obj+" - "); 
+						objsTarget.add((String) obj);
+						System.out.println("EquivalencePane.mousePressed() at row "+row+" ["+concept.getName()+"] with String - "+(String) obj+" - "); 
 
 					}
 					graph.highlightTarget(concept);
 				}
+				selectedEquivalences.put(concept, objsTarget);
 			}
 		}
+				
 	}
 
 	@Override
@@ -1037,12 +1283,39 @@
 			}
 			if (e.getStateChange() == ItemEvent.SELECTED){
 				withSizes = true;
-
 			}
 			initGuiWithTable();
-
+		}else {
+			Set<JCheckBox> keys = checkboxForTexts.keySet();
+			Iterator<JCheckBox> it = keys.iterator();
+		
+			while(it.hasNext()) {
+				JCheckBox checkbox = it.next();
+				if(source == checkbox){
+					if (e.getStateChange() == ItemEvent.DESELECTED){
+						HyperalignText author = checkboxForTexts.get(checkbox);
+						if(selectedAuthors != null){
+							if(selectedAuthors.contains(author))
+								selectedAuthors.remove(author);
+						}
+					}
+					if (e.getStateChange() == ItemEvent.SELECTED){
+						if(selectedAuthors == null){
+							selectedAuthors = new Vector<HyperalignText>();
+							selectedAuthors.add(author);
+						}else{
+							if(!selectedAuthors.contains(author))
+								selectedAuthors.add(author);
+						}
+					}
+					break;
+				}
+			}
+			System.out.println(">>>>>> NB selected authors ? "+selectedAuthors.size());
 		}
+		
 
 	}
 
 }
+
Index: SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java	(revision 18)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/AnnotEquiPane.java	(revision 19)
@@ -2,6 +2,7 @@
 
 import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Desktop.Action;
 import java.awt.Dimension;
 import java.awt.GridBagConstraints;
 import java.awt.GridBagLayout;
@@ -20,6 +21,7 @@
 import java.util.Set;
 import java.util.Vector;
 
+import javax.swing.AbstractAction;
 import javax.swing.ButtonGroup;
 import javax.swing.Icon;
 import javax.swing.ImageIcon;
@@ -35,13 +37,19 @@
 import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.JTextField;
+import javax.swing.JToolBar;
 import javax.swing.SwingConstants;
 import javax.swing.SwingUtilities;
 import javax.swing.table.TableCellRenderer;
 import javax.swing.table.TableColumnModel;
 import javax.swing.table.TableRowSorter;
 
-import fr.triangle.hyperalign.gui.HMManager;
+import org.jfree.chart.ChartFactory;
+import org.jfree.chart.ChartPanel;
+import org.jfree.chart.JFreeChart;
+import org.jfree.data.general.DefaultPieDataset;
+
+import fr.triangle.hyperalign.gui.HMController;
 import fr.triangle.hyperalign.gui.Hypermachiavel;
 import fr.triangle.hyperalign.gui.concord.ResultTableModel;
 import fr.triangle.hyperalign.gui.graph.EquivalenceGraph;
@@ -67,7 +75,7 @@
  * @author sgedzelm
  * @version 1.0
  */
-public class AnnotEquiPane extends JPanel implements Observer, MouseListener, ActionListener, ItemListener {
+public class AnnotEquiPane extends JPanel implements Observer, MouseListener, ActionListener {
 
 	/**
 	 * 
@@ -77,101 +85,45 @@
 	private String iconPath = "fr/triangle/hyperalign/gui/icons";
 	//private HashMap<HyperalignText, OccurrenceSet> elements; //key = text name ; value = 
 
-	private JButton addSeeCommentButton;
 	private JButton addButton;
+	private JButton addCommentButton;
 	private JButton removeButton;
 	private JButton okButton;
 	private JButton deleteButton;
 	private JButton cancelButton;
 	private HyperalignText currentText;
+	private String currentComment ;
 	private JTable listEquiTable;
 	private JScrollPane scrollEquiTable;
 	private EquivalenceElement equiEl;
 	private EquivalenceManager tradManager;
-	private HMManager manager;
+	private HMController manager;
 	private Vector<ConceptEquivalenceElement> equisForTerminoEls;
 
-	private Dictionary sourceLang;
-	private Dictionary targetLang;
-	//private String type = "";
-	private DictionaryElement sourceElement;
-	private ConceptEquivalenceElement sourceTerminoElement;
-	private Vector<ConceptEquivalenceElement> conceptEquivalenceElements;
 
-	private JLabel labelOccSource;
-	private JButton searchButton;
-	private JButton showOccButton;
-	private JButton showOccAuthorButton;
-	private JButton exportButton;
-	private JButton infoButton;
-	private JButton graphButton;
-	private JComboBox boxLang;
-	private JComboBox levelBox;
-	private JComboBox boxAuthor;
-	private JComboBox boxWidth;
-	private HyperalignText selectedAuthor;
+	private HashMap<ConceptEquivalenceElement,Vector<Object>> selectedEquivalences;
 
-	private String [] columnNames ;
-	private JTable listResultTable;
-	private TableRowSorter<ResultTableModel> sorter;
-	private ResultTableModel resultTableModel;
-	private JScrollPane scrollResult;
-	
-	private String [] columnNamesAuthor ;
-	private JTable listResultTableAuthor;
-	private ResultTableModel resultTableModelAuthor;
-	private JScrollPane scrollResultAuthor;
-	
-	private JTabbedPane tabPane;
-	private HashMap<ConceptEquivalenceElement,Object> selectedEquivalences;
-	private Vector<EquivalenceElement> selectedTargetEquivalences;
-	private String neighbourhoodWidth = "1";
-	private int nbOccSourceInEqui;
-
 	private JTextField commentField;
-	private EquivalenceGraph graph;
-	private boolean withSizes = false;
-	private JCheckBox graphSizeBox;
-	private int editEquivalence;
-	private JComboBox authorGraphBox;
-	private HyperalignText author;
-	private String level;
 	private HyperalignText selectedText;
-	private String export;
-	public final static String EXPORT_AUTHOR = "exportAuthor";
-	public final static String EXPORT_OCC = "exportOccurrences";
-	public final static String EXPORT_IMAGE = "exportImageGraphe";
-
-	public AnnotEquiPane(HMManager manager){
+	public HashMap<JCheckBox, HyperalignText> checkboxForTexts ;
+	public Vector<HyperalignText> selectedAuthors;
+	public Icon openCommentIcon;
+	
+	public AnnotEquiPane(HMController manager){
 		this.res = HyperalignData.getInstance().getResourceBundle();
 		this.manager = manager;
 		tradManager = manager.getDataManager().getEquivalenceManager();
+		openCommentIcon = ImageConfigure.createImageIcon(iconPath+"/Annotate.gif"); 
 		initGui(false);
 	}
 
 
 
 	public void initGui(boolean reinit){
-		editEquivalence = tradManager.getEditingEquivalence();
-		switch (editEquivalence){
-		case EquivalenceManager.EQUIVALENCE_OCCURRENCE :
-			init(reinit);
-			break;
-		case EquivalenceManager.EQUIVALENCE_CONCEPT :
-			initTable(reinit);
-			break;
-		default : break;
-		}
-	}
-
-
-	private void init(boolean reinit){
 		this.setLayout(new GridBagLayout());
 
 		//INITIALIZATION
 		this.equiEl = tradManager.getEquivalenceElement();
-		//System.out.println("AnnotEquiPane.init() - EQUI = "+equiEl);
-		//this.elements = equiSet.getElements();
 		if (reinit){
 			this.removeAll();
 		}
@@ -183,49 +135,84 @@
 		Vector<HyperalignText> textsFromEqui = tradManager.getEquivalenceTexts();
 		if(textsFromEqui!=null){
 			TableCellRenderer defaultRenderer;
-			Object[][] rows = new Object[textsFromEqui.size()][2];
+			Object[][] rows = new Object[textsFromEqui.size()][3];//[4];
 
 			for (int i = 0 ; i < textsFromEqui.size() ; ++i){
 				HyperalignText text = textsFromEqui.get(i);
 				String textValue = "";
 				OccurrenceSet equiValue = null;
+				String commentValue = "";
 				if(equiEl!=null){
 					equiValue = equiEl.getElement(text);
+					commentValue = equiEl.getElementComment(text);
 					//System.out.println("\tEQUI n°"+equiEl.getId()+" - word /"+equiValue+"/ from text "+text.getId());
 					if(equiValue!=null){
 						textValue = equiValue.getValue();
 						currentText = text;
-						//color = new Color(0,250,0);
 					}else{
-						//color = new Color(0,100,100);	
 					}
-					//rows[i][0] = text;
-					//rows[i][1] = equiValue;
 				}
 				//else {
 				if(equiValue!=null){
 					rows[i][0] = text;
 					rows[i][1] = equiValue;
+					rows[i][2] = commentValue;
+					//rows[i][3] = openCommentIcon;
+							
+					
 				}else {
 					rows[i][0] = text;
 					rows[i][1] = textValue;
+					rows[i][2] = commentValue;
+					//rows[i][3] = openCommentIcon;
 				}
 				//}
 
 			}
 
 			String [] columns = {res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_0"),
-					res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_1")};
+					res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_1"), res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_2")};
+					//,res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_3")};
 
 			listEquiTable = new JTable(new JTableButtonModel(columns, rows));
 			defaultRenderer = listEquiTable.getDefaultRenderer(JButton.class);
+			
 			listEquiTable.setDefaultRenderer(JButton.class,
 					new JTableButtonRenderer(defaultRenderer));
 			listEquiTable.setPreferredScrollableViewportSize(new Dimension(600, 200));
 			listEquiTable.addMouseListener(this);
+			//Dimension tableSize = listEquiTable.getPreferredSize();
+			//System.out.println("TABLE SIZE : w ="+tableSize.getWidth()+" h ="+tableSize.getHeight());
+			//listEquiTable.getColumn(res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_0")).setPreferredWidth(150);
+			//listEquiTable.getColumn(res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_1")).setPreferredWidth(200);
+	        //listEquiTable.getColumn(res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_2")).setPreferredWidth(250);
+	        //listEquiTable.getColumn(res.getString("I18N_EQUIVALENCEPANE_TABLE_COL_3")).setPreferredWidth(50);
 
+	        
 			scrollEquiTable = new JScrollPane(listEquiTable);
 
+			/*AbstractAction addCommentAction = new AbstractAction()
+			{
+			    public void actionPerformed(ActionEvent e)
+			    {
+			    	int row = listEquiTable.getSelectedRow();
+			    	System.out.println("AnnotEquiPane.actionPerformed() !!! "+row);   
+			        Object obj = listEquiTable.getValueAt(row, 0);
+					if(obj instanceof HyperalignText){
+						selectedText = (HyperalignText) obj;
+						Object obj2 = listEquiTable.getValueAt(row, 1);
+						if(obj2 instanceof OccurrenceSet){
+							OccurrenceSet occ = (OccurrenceSet) obj2;
+							String com = equiEl.getElementComment(selectedText);
+							String currentComment = JOptionPane.showInputDialog(null, com, "Cr�er ou modifier un commentaire", JOptionPane.QUESTION_MESSAGE);
+							System.out.println("AnnotEquiPane : addComment !!! "+currentComment);
+						}
+					}
+			    }
+			};
+			ButtonColumn buttonCol = new ButtonColumn(listEquiTable,addCommentAction,3);*/
+			
+		
 			GridBagConstraints c = new GridBagConstraints();
 			c.fill = GridBagConstraints.HORIZONTAL;
 			c.gridx = 0;
@@ -281,13 +268,12 @@
 		JPanel buttPanel = new JPanel();
 
 		Icon addIcon = ImageConfigure.createImageIcon(iconPath+"/Plus.gif"); 
-
 		addButton = new JButton(addIcon);
 		addButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_ADDBUTTON"));
 		addButton.addActionListener(new ActionListener(){
 			public void actionPerformed(ActionEvent e) {
 				EquivalenceElement currentEquivalence = manager.getDataManager().getEquivalenceManager().getEquivalenceElement();
-				manager.completeEquivalenceFromText(currentEquivalence);
+				manager.getAnnotationController().completeEquivalenceFromText(currentEquivalence);
 			}
 		});
 
@@ -297,9 +283,10 @@
 		removeButton.addActionListener(new ActionListener(){
 			public void actionPerformed(ActionEvent e) {
 				EquivalenceElement currentEquivalence = manager.getDataManager().getEquivalenceManager().getEquivalenceElement();
-				manager.removeFromEquivalence(currentEquivalence, selectedText);
+				manager.getTranslationController().removeFromEquivalence(currentEquivalence, selectedText);
 			}
 		});
+		
 		okButton = new JButton(res.getString("I18N_EQUIVALENCEPANE_OKBUTTON"));
 		okButton.addActionListener(new ActionListener(){
 			public void actionPerformed(ActionEvent e) {
@@ -322,384 +309,38 @@
 				clearAndHide();
 			}
 		});
+		addCommentButton = new JButton(openCommentIcon);
+		addCommentButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_ADDCOMMENTBUTTON"));
+		addCommentButton.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				int row = listEquiTable.getSelectedRow();
+		    	 Object obj = listEquiTable.getValueAt(row, 0);
+				if(obj instanceof HyperalignText){
+					selectedText = (HyperalignText) obj;
+					Object obj2 = listEquiTable.getValueAt(row, 1);
+					if(obj2 instanceof OccurrenceSet){
+						String com = equiEl.getElementComment(selectedText);
+						String currentComment = JOptionPane.showInputDialog(res.getString("I18N_EQUIVALENCEPANE_ADDCOMMENT_MESSAGE")+" ("+selectedText+")", com);
+						equiEl.setElementComment(selectedText, currentComment);
+						initGui(true);//Reinitialiser le tableau avec la nouvelle valeur commentaire
+					}
+				}
+			}
+		});
+		
 		buttPanel.add(addButton);
 		buttPanel.add(removeButton);
 		buttPanel.add(okButton);
 		buttPanel.add(deleteButton);
 		buttPanel.add(cancelButton);
-
+		buttPanel.add(addCommentButton);
 		return buttPanel;
 	}
 
-	private void initTable(boolean reinit){
-		this.targetLang = tradManager.getTargetLangForGraph();
-		this.sourceLang = tradManager.getSourceLangForGraph();
-		this.sourceElement = tradManager.getSourceElement();
-		String name = "";
-		if(sourceElement!=null){
-			name = sourceElement.getName();
-		}else {
-			name = tradManager.getSourceString();
-		}
-		this.sourceTerminoElement = new ConceptEquivalenceElement(name, "CEQS");
-		if(sourceElement==null){
-			System.out.println("AnnotEquiPane.initTable() ---- NOT TERMINO ELEMENT TO TAKE IN CONSIDERATION !");
-		}else {
-			System.out.println("AnnotEquiPane.initTable() ---- for "+sourceElement+" in LANG [TARGET="+targetLang+"]-[SOURCE="+sourceLang+"]");
-		}
-
-
-		if(reinit){
-			this.removeAll();
-		}
-		initGuiWithTable();
-		if(reinit){
-			this.repaint();
-			this.validate();
-		}
-	}
-
-	private void initGuiWithTable(){
-		//at first, we must select a target lang to get the table of target equivalences
-		HashMap<Dictionary, Vector<HyperalignText>> langs = tradManager.getDictionaryAndTextForEquivalences();
-		Vector<HyperalignText> authors = new Vector<HyperalignText>();
-		Set<Dictionary> langKeys = langs.keySet();
-		Iterator<Dictionary> it = langKeys.iterator();
-		Dictionary[] targetLangs = new Dictionary[langs.size()-1];
-		int j = 0 ;
-		while(it.hasNext()){
-			Dictionary termino = it.next();
-			if(termino!=sourceLang){
-				targetLangs[j] = termino;
-				targetLang = termino;
-				++j;
-			}
-		}
-
-		authors = langs.get(targetLang);
-		/////////////////// BUILD INFO for TABLE ////////////////
-		if(targetLang!=null){
-			DictionaryElement el = null;
-
-			if(neighbourhoodWidth.equals("infinite")){
-				el = sourceLang.getRoot();
-				tradManager.buildInfoForGraph(el, targetLang, neighbourhoodWidth, false, selectedAuthor);				
-				manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
-			}else {
-				el = sourceElement;
-				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, false, selectedAuthor);
-			}
-			conceptEquivalenceElements = tradManager.buildConceptEquivalenceElements(el, targetLang);
-		}
-		//////////////////////////////////////////////////////
-
-		this.removeAll();	
-
-		//PARAM PANEL 	
-		JPanel panelParams = initTriPanel(targetLangs, authors);	
-		this.setLayout(new BorderLayout());
-		this.add(panelParams, BorderLayout.NORTH);
-
-		/////////////////////////////////////////////
-		//JPanel graphPanel = new JPanel();
-		//graphPanel.setLayout(new GridLayout(1,2));
-
-		//GRAPH on the left
-		tradManager.setGraphSizeOption(withSizes);
-		graph = new EquivalenceGraph(manager, tradManager.getCurrentGraphUrls(), tradManager.getGraphAllConceptOption(), withSizes);
-		//graphPanel.add(graph);
-
-		//TABLES on the right		
-		tabPane = new JTabbedPane();
-		initConceptTable();
-		tabPane.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE1"), scrollResult);
-		
-		initConceptByAuthorTable();
-		tabPane.add(res.getString("I18N_EQUIVALENCEPANE_TAB_TITLE2"), scrollResultAuthor);
-		tabPane.setSelectedComponent(scrollResult);
-		//graphPanel.add(tabPane);
-		//this.add(graphPanel,BorderLayout.CENTER);
-		
-		JSplitPane splitVerticalPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, graph, tabPane);
-		splitVerticalPane.setOneTouchExpandable(true);
-		splitVerticalPane.setDividerLocation(500);
-		this.add(splitVerticalPane,BorderLayout.CENTER);
-	}
-
-
-	private void initConceptTable(){
-		columnNames = new String[3];	
-		columnNames[0] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTSOURCE");
-		columnNames[1] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTTARGET")+" ("+targetLang+")";
-		columnNames[2] = res.getString("I18N_EQUIVALENCEPANE_COL2");
-
-		int nbLines = 0;
-		for (int i = 0; i < conceptEquivalenceElements.size(); i++) {
-			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(i);
-			nbLines += conceptEquiEl.getOccurrences().size();
-		}
-
-		resultTableModel = new ResultTableModel(columnNames, nbLines);	
-		
-		int index = 0;
-		for (int i = 0; i < conceptEquivalenceElements.size(); i++) {
-			ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(i);
-			HashMap<Object, Vector<OccurrenceSet>> occsByConcept = conceptEquiEl.getOccurrences();
-			Set keys = occsByConcept.keySet();
-			Iterator itC = keys.iterator();
-			while(itC.hasNext()){
-				Object obj = itC.next();
-				resultTableModel.setValueAt(conceptEquiEl, index, 0);
-				if(obj instanceof DictionaryElement){
-					DictionaryElement element = (DictionaryElement) obj;
-					resultTableModel.setValueAt(element, index, 1);
-				}else {
-					String element = (String) obj;
-					resultTableModel.setValueAt(element, index, 1);
-				}
-				resultTableModel.setValueAt(occsByConcept.get(obj).size(), index, 2);
-				++index;
-			}
-
-		}
-
-		System.out.println("AnnotEquiPane.initGuiWithTable() = nb TABLE RESULTS #"+resultTableModel.getRowCount()+" for element -> "+sourceElement);
-		sorter = new TableRowSorter<ResultTableModel>(resultTableModel);
-		listResultTable = new JTable(resultTableModel);
-		listResultTable.setRowSorter(sorter);
-		listResultTable.addMouseListener(this);
-		scrollResult = new JScrollPane(listResultTable);
-		scrollResult.setPreferredSize(new Dimension(400,400));	
-	}
 	
-	private void initConceptByAuthorTable(){
-		HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor = tradManager.showEquivalencesByAuthor(conceptEquivalenceElements, targetLang);
-		Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
 	
-		//COLUMNS ////////////////////
-		columnNamesAuthor = new String[textsForTargetLang.size()+1];
-		columnNamesAuthor[0] = res.getString("I18N_EQUIVALENCEPANE_CONCEPTTARGET");
-		for(int j = 0 ; j < textsForTargetLang.size(); ++j){
-			HyperalignText text = textsForTargetLang.get(j);
-			columnNamesAuthor[j+1] = text.getName();
-		}
-		//////////////////
-	
-		int nbLines = equivalencesByAuthor.size();
-		resultTableModelAuthor = new ResultTableModel(columnNamesAuthor, nbLines);	
 
-		//System.out.println("NB LINES ? "+nbLines);
-		Set<DictionaryElement> keys = equivalencesByAuthor.keySet();
-		Iterator<DictionaryElement> it = keys.iterator();
-		for (int i = 0; it.hasNext(); i++) {
-			//System.out.println("LINE "+i+"-------------------");
-			DictionaryElement conceptTarget = it.next();
-			//System.out.println("col ["+i+"-0] => "+conceptTarget.getName());
-			resultTableModelAuthor.setValueAt(conceptTarget.getName(), i, 0);
-			HashMap<HyperalignText, Integer> nbByAuthor = equivalencesByAuthor.get(conceptTarget);
-			for(int j = 0 ; j < textsForTargetLang.size(); ++j){
-				HyperalignText text = textsForTargetLang.get(j);
-				Integer nb = nbByAuthor.get(text);
-				//int k = j+1;
-				//System.out.println("col ["+i+"-"+k+"] => "+nb);
-				if(nb==null){
-					resultTableModelAuthor.setValueAt("", i, j+1);
-				}else {
-					resultTableModelAuthor.setValueAt(nb, i, j+1);
-				}
-			}
-		}
 
-		listResultTableAuthor = new JTable(resultTableModelAuthor);
-		listResultTableAuthor.addMouseListener(this);
-		scrollResultAuthor = new JScrollPane(listResultTableAuthor);
-		scrollResultAuthor.setPreferredSize(new Dimension(400,400));	
-	}
-	
-	private JPanel initTriPanel(Dictionary[] targetLangs, Vector<HyperalignText> authors){
-		JPanel triPanel = new JPanel();
-
-		//Choix dans le graphe des �quivalences
-		Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-		authorGraphBox = new JComboBox(textsForTargetLang);
-		authorGraphBox.setPreferredSize(new Dimension(100,25));
-		if(author!=null){
-			authorGraphBox.setSelectedItem(author);
-		}
-		authorGraphBox.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				author = (HyperalignText)o;	
-				authorGraphBox.setSelectedItem(o);
-				exportEquivalencesByAuthor();
-				initGuiWithTable();
-			}
-		});
-		triPanel.add(authorGraphBox);
-		
-		///LABEL about the Equivalences
-		labelOccSource = new JLabel();
-		System.out.println("AnnotEquiPane.initTriPanel() - SOURCE ELEMENT (type = "+sourceElement.getReference()+")");
-		if(sourceElement.getReference().equals(Dictionary.DICO_LEMME)){
-			int nbOccSource = sourceLang.getOccurrencesForLemme(sourceElement).size();
-			//int nbOccSourceInEqui = tradManager.getCurrentEquivalenceElements().size();
-			//res.getString("I18N_EQUIVALENCEPANE_LABEL_1")
-			int indexTiret = sourceElement.getReference().indexOf("_");
-			String str = sourceElement.getReference().substring(indexTiret+1, sourceElement.getReference().length());
-			labelOccSource = new JLabel(/*str+" : "+*/sourceElement.getName()+" ("+nbOccSource+" "+res.getString("I18N_EQUIVALENCEPANE_LABEL_2")+")");
-		}
-		triPanel.add(labelOccSource);
-		Object[] authorsText = new Object[authors.size()+1];
-		
-		for(int i = 0 ; i < authors.size() ; ++i) {
-			authorsText[i] = authors.get(i);
-		}
-		authorsText[authors.size()] = "All";
-		boxAuthor = new JComboBox(authorsText);
-		boxAuthor.setPreferredSize(new Dimension(100,25));
-		if(selectedAuthor!=null){
-			boxAuthor.setSelectedItem(selectedAuthor);
-		}else {
-			boxAuthor.setSelectedItem("All");
-		}
-		boxAuthor.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				if(o.toString().equals("All")){
-					selectedAuthor = null;
-				}else {
-					selectedAuthor = (HyperalignText) o;	
-				}
-				boxAuthor.setSelectedItem(o);
-				tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, false, selectedAuthor);
-				initGuiWithTable();
-			}
-		});
-		triPanel.add(boxAuthor);
-		
-		boxLang = new JComboBox(targetLangs);
-		boxLang.setPreferredSize(new Dimension(100,25));
-		if(targetLang!=null){
-			boxLang.setSelectedItem(targetLang);
-		}
-		boxLang.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				targetLang = (Dictionary)o;	
-				boxLang.setSelectedItem(o);
-				initTable(true); 
-			}
-		});
-		triPanel.add(boxLang);
-
-		String [] levels = {Dictionary.DICO_LEMME, Dictionary.DICO_FORM, Dictionary.DICO_OCC};
-		levelBox = new JComboBox(levels);
-		levelBox.setPreferredSize(new Dimension(100,25));
-		levelBox.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				level = (String)o;	
-				levelBox.setSelectedItem(o);
-				//initTable(true); 
-				System.out.println("AnnotEquiPane - levelBox - TO DO !!!!!!!!!!!!!!!!!!!");
-			}
-		});
-		triPanel.add(levelBox);
-
-		String [] widths = {"1","2","3","4","5","6","7","8","9","10","infinite"};
-		boxWidth = new JComboBox(widths);
-		boxWidth.setPreferredSize(new Dimension(100,25));
-		boxWidth.setSelectedItem(neighbourhoodWidth);
-
-		boxWidth.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent ae){	
-				Object o = ((JComboBox)ae.getSource()).getSelectedItem();
-				neighbourhoodWidth = (String)o;	
-				boxWidth.setSelectedItem(o);
-				initGuiWithTable();
-			}
-		});
-		triPanel.add(boxWidth);
-
-		graphSizeBox = new JCheckBox(res.getString("I18N_EQUIVALENCEPANE_GRAPHSIZE_OPTION"));
-		graphSizeBox.setSelected(withSizes);
-		graphSizeBox.addItemListener(this);
-		triPanel.add(graphSizeBox);
-
-		///SHOW EQUIVALENCE BUTTON
-		ImageIcon displayButt = ImageConfigure.createImageIcon(iconPath+"/Column.gif");
-		showOccButton = new JButton(displayButt);
-		showOccButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCC"));
-		triPanel.add(showOccButton);
-
-		///SHOW EQUIVALENCE AUTHOR BUTTON
-		/*ImageIcon displayAuthorButt = ImageConfigure.createImageIcon(iconPath+"/ColumnAuthor.gif");
-		showOccAuthorButton = new JButton(displayButt);
-		showOccAuthorButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_SEARCHOCCAUTHOR"));
-		triPanel.add(showOccAuthorButton);*/
-
-		///SEARCH BUTTON
-		ImageIcon searchButt = ImageConfigure.createImageIcon(iconPath+"/Search.gif");
-		searchButton = new JButton(searchButt);
-		searchButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_DOUBLESEARCH"));
-		triPanel.add(searchButton);
-
-		///EXPORT BUTTON
-		ImageIcon exportButt = ImageConfigure.createImageIcon(iconPath+"/Save.gif");
-		exportButton = new JButton(exportButt);
-		exportButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_EXPORT"));
-		triPanel.add(exportButton);
-
-		ImageIcon graphButt = ImageConfigure.createImageIcon(iconPath+"/Graph.gif");
-		graphButton = new JButton(graphButt);
-		graphButton.setToolTipText(res.getString("I18N_EQUIVALENCEPANE_GRAPH"));
-		triPanel.add(graphButton);
-
-		//ACTIONS ---------
-		showOccButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showEquivalences();
-			}
-		});
-		
-		/*showOccAuthorButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showEquivalencesByAuthor();
-			}
-		});*/
-
-		searchButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				searchForEquivalences();
-			}
-		});
-
-		exportButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				export();
-			}
-		});
-
-		/*infoButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				ResultTableModel tableModel = prepareTableByAuthor();
-				EquiTextPane textPane = new EquiTextPane(tableModel);
-				textPane.setLocationRelativeTo(Hyperalign.getInstance());
-				textPane.setAlwaysOnTop(true);
-			}
-		});*/
-
-		graphButton.addActionListener(new ActionListener(){
-			public void actionPerformed(ActionEvent e) {
-				showGraphByAuthor();
-			}
-		});
-
-
-		return triPanel;
-	}
-
-
 	private void delete(){
 		//int n2 = JOptionPane.showConfirmDialog(this, "Voulez-vous gardez les annotations même lors de la suppression de l'équivalence", "Information sur les annotations", JOptionPane.YES_NO_OPTION);  
 		//if(n2==JOptionPane.NO_OPTION){
@@ -711,244 +352,13 @@
 		manager.reinitHyperalignPane(true, HyperalignData.DATA_EQUIVALENCE, true);
 	}
 
-	private void export(){
-		JRadioButton exportOccButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_1"));
-		exportOccButton.setActionCommand(AnnotEquiPane.EXPORT_OCC);
-		exportOccButton.setSelected(true);
 
-		JRadioButton exportAuthButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_2"));
-		exportAuthButton.setActionCommand(AnnotEquiPane.EXPORT_AUTHOR);
 
-		JRadioButton exportImageButton = new JRadioButton(res.getString("I18N_EQUIVALENCEPANE_EXPORT_CHOICE_3"));
-		exportImageButton.setActionCommand(AnnotEquiPane.EXPORT_IMAGE);
 
-		//Group the radio buttons.
-		ButtonGroup group = new ButtonGroup();
-		group.add(exportOccButton);
-		group.add(exportAuthButton);
-		group.add(exportImageButton);
 
-		//Register a listener for the radio buttons.
-		exportOccButton.addActionListener(this);
-		exportAuthButton.addActionListener(this);
-		exportImageButton.addActionListener(this);
-
-		String message = res.getString("I18N_EQUIVALENCEPANE_EXPORT_MESSAGE");  
-		Object[] params = {message, exportOccButton, exportAuthButton, exportImageButton};  
-		int n = JOptionPane.showConfirmDialog(this, params, res.getString("I18N_EQUIVALENCEPANE_EXPORT_TITLE"), JOptionPane.YES_NO_OPTION);  
-		if(n==0) {
-			if(export.equals(AnnotEquiPane.EXPORT_AUTHOR)){
-				exportEquivalencesByAuthor();
-			}
-			if(export.equals(AnnotEquiPane.EXPORT_OCC)){
-				exportEquivalences();
-			}
-			if(export.equals(AnnotEquiPane.EXPORT_IMAGE)){
-				exportImage();
-			}
-			
-		}
-		
-	}
-
-	/*
-	 * Sort equivalence elements by text (author) 
-	 */
-
-
-	private void showGraphByAuthor(){
-		tradManager.buildInfoForGraph(sourceElement, targetLang, neighbourhoodWidth, true, selectedAuthor);
-		manager.reinitHyperalignPane(Hypermachiavel.EQUIGRAPH_TAB, true, true);
-	}
-
-	
-	/*private HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> showEquivalencesByAuthor(){
-		HashMap<DictionaryElement, HashMap<HyperalignText, Integer>> equivalencesByAuthor = new HashMap<DictionaryElement, HashMap<HyperalignText,Integer>>();
-		if(conceptEquivalenceElements!=null){
-			if(conceptEquivalenceElements.size()>=1){
-				ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
-				Vector<HyperalignText> textsForTargetLang = tradManager.getDictionaryAndTextForEquivalences().get(targetLang);
-
-				HashMap<Object, Vector<OccurrenceSet>> occsByConcept = conceptEquiEl.getOccurrences();
-				Set keys = occsByConcept.keySet();
-				Iterator itC = keys.iterator();
-				while(itC.hasNext()){
-					Object obj = itC.next();
-					Vector<OccurrenceSet> occs = occsByConcept.get(obj);
-					if(obj instanceof DictionaryElement){
-						DictionaryElement element = (DictionaryElement) obj;
-						//DATA, one line per concept
-						HashMap<HyperalignText, Integer> equivalences = addOccsByText(occs, textsForTargetLang);
-						equivalencesByAuthor.put(element, equivalences);
-					}else {
-						String element = (String) obj;
-					}
-					
-					
-				}
-				
-			}
-		}
-		return equivalencesByAuthor;
-	}*/
-
-	
-	private void exportImage(){
-		graph.exportImage();
-		manager.sendMessage();
-		
-	}
-	
-	private void exportEquivalences(){
-		String csvLine = "";
-		int nbCols = resultTableModel.getColumnCount();
-		for(int col = 0 ; col < nbCols ; ++col){
-			csvLine+= resultTableModel.getColumnName(col);
-			if(col!=nbCols-1){
-				csvLine+=";";
-			}
-		}
-		csvLine+="\n";
-		int nbRows = resultTableModel.getRowCount();
-		for(int row = 0 ; row < nbRows; ++row){
-			nbCols = resultTableModel.getColumnCount();
-			for(int col = 0 ; col < nbCols ; ++col){
-				csvLine+= resultTableModel.getValueAt(row, col);
-				if(col!=nbCols-1){
-					csvLine+=";";
-				}
-			}
-			csvLine+="\n";
-		}
-		manager.saveWork(csvLine);
-	}
-	
-	private void exportEquivalencesByAuthor(){
-		if(conceptEquivalenceElements!=null){
-			if(conceptEquivalenceElements.size()>=1){
-				ConceptEquivalenceElement conceptEquiEl = conceptEquivalenceElements.get(0);
-				String csvLine = "";
-				csvLine += res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL1")+conceptEquiEl.getName()+
-				" ["+sourceLang.getName()+"] "+
-				nbOccSourceInEqui+" "+res.getString("I18N_EQUIVALENCEPANE_EXPORTAUTHOR_LABEL2")+";";
-				csvLine = tradManager.exportEquivalencesByAuthor(sourceElement, conceptEquivalenceElements, csvLine, targetLang);
-				manager.saveWork(csvLine);
-			}
-		}
-	}
-
-	private void searchForEquivalences(){
-		///////////////// PREPARE SOURCE TEXTS ////////////
-		HashMap<Dictionary, Vector<HyperalignText>> textsAndTerminos = tradManager.getDictionaryAndTextForEquivalences();
-		Vector<HyperalignText> sourceTexts = textsAndTerminos.get(sourceLang);
-		Vector<HyperalignText> targetTexts = textsAndTerminos.get(targetLang);
-
-		HashMap<String, Dictionary> doubleLang = new HashMap<String, Dictionary>();
-		HashMap<String, Vector<HyperalignText>> doubleTexts = new HashMap<String, Vector<HyperalignText>>();
-		HashMap<String, String[]> doubleWords = new HashMap<String, String[]>();
-
-		String source = ResultManager.SOURCE_SEARCH;
-		String target = ResultManager.TARGET_SEARCH;
-		//LANGS 
-		doubleLang.put(source, sourceLang);
-		doubleLang.put(target, targetLang);
-
-		//TEXTS
-		doubleTexts.put(source, sourceTexts);
-		doubleTexts.put(target, targetTexts);
-
-		//WORDS
-		Vector<String> words = new Vector<String>();
-		Vector<String> wordsTarget = new Vector<String>();
-
-		Set<ConceptEquivalenceElement> keys = selectedEquivalences.keySet();
-		Iterator<ConceptEquivalenceElement> it = keys.iterator();
-		while(it.hasNext()){
-			ConceptEquivalenceElement conceptSource = (ConceptEquivalenceElement) it.next();
-
-			//SOURCE ELEMENT
-			if(conceptSource.getDictionaryElement()!=null){
-				DictionaryElement concept = conceptSource.getDictionaryElement();
-				Vector<DictionaryElement> terms = concept.children();
-				for (int j = 0; j < terms.size(); j++) {
-					DictionaryElement term = terms.get(j);
-					words.add(term.getName());
-				}				
-			}else {
-				words.add(conceptSource.getName());
-			}
-
-			//TARGET ELEMENT
-			Object obj = selectedEquivalences.get(conceptSource);
-			if(obj instanceof DictionaryElement){
-				DictionaryElement concept = (DictionaryElement) obj;
-				Vector<DictionaryElement> terms = concept.children();
-				for (int j = 0; j < terms.size(); j++) {
-					DictionaryElement term = terms.get(j);
-					wordsTarget.add(term.getName());
-				}	
-			}else {
-				wordsTarget.add((String) obj);
-			}
-		}
-
-		String [] wordsS = new String[words.size()];
-		for (int i = 0; i < words.size(); i++) {
-			wordsS[i] = words.get(i);
-		}
-		String [] wordsT = new String[wordsTarget.size()];
-		for (int i = 0; i < wordsTarget.size(); i++) {
-			wordsT[i] = wordsTarget.get(i);
-		}
-		doubleWords.put(source, wordsS);
-		doubleWords.put(target, wordsT);
-		manager.getSearchManager().searchEquiWords(sourceTexts, targetTexts, doubleLang, 
-				doubleWords, doubleTexts);
-
-		//manager.getSearchManager().searchEquiTerms(sourceTexts, targetTexts, querySourceTerms, sourceLang, queryTargetTerms, targetLang);
-	}
-
-	private void showInfoAboutTarget(){
-		System.out.println("EquivalencePane.showInfoAboutTarget() TO REDO !!!");
-		//recuperer la ligne avec le concept source et target
-		/*if(selectedTerminoEquivalences.size()!=0){
-			TerminologyElement[] setTerminoEqui = selectedTerminoEquivalences.get(0);
-			TerminologyElement source = setTerminoEqui[0];
-			TerminologyElement target = setTerminoEqui[1];
-			EquiInfoPane infoPane = new EquiInfoPane(source, target);
-			infoPane.setAlwaysOnTop(true);	
-		}*/
-	}
-
-	private void showEquivalences(){
-		selectedTargetEquivalences = new Vector<EquivalenceElement>();
-		if(selectedEquivalences.size()!=0){
-			Set<ConceptEquivalenceElement> keys = selectedEquivalences.keySet();
-			Iterator<ConceptEquivalenceElement> it = keys.iterator();
-			while(it.hasNext()){
-				ConceptEquivalenceElement concept = it.next();
-				HashMap<Object, Vector<OccurrenceSet>> occs = concept.getOccurrences();
-				Object obj = selectedEquivalences.get(concept);
-				Vector<OccurrenceSet> occSets = occs.get(obj);
-				for (int j = 0; j < occSets.size(); j++) {
-					OccurrenceSet occSet = occSets.get(j);
-					EquivalenceElement equiEl = occSet.getEquivalence();
-					if(!selectedTargetEquivalences.contains(equiEl)){
-						selectedTargetEquivalences.add(equiEl);						
-					}
-				}				
-			}
-			manager.showEquiElements(selectedTargetEquivalences, targetLang, sourceLang);
-		}
-	}
-
-
-
-
 	@Override
 	public void actionPerformed(ActionEvent e) {
 		String cmd = e.getActionCommand();
-		export = cmd;
 	}
 
 	/** This method clears the dialog and hides it. */
@@ -989,36 +399,12 @@
 					OccurrenceSet occ = (OccurrenceSet) obj2;
 					DictionaryElement dicoEl = occ.getDictionaryElement();
 					if(dicoEl!=null) {
-						manager.displayTextWithHighlightsForDictionary(dicoEl, selectedText);
+						manager.getCorpusController().displayTextWithHighlightsForDictionary(dicoEl, selectedText);
 					}
 				}
 			}
 		}
-		if(e.getSource().equals(listResultTable)){
-			if (e.getClickCount() == 2 || e.getClickCount() == 1){
-				int [] rows = listResultTable.getSelectedRows();
-				selectedEquivalences = new HashMap<ConceptEquivalenceElement,Object>();
-				System.out.println("AnnotEquiPane.mouseClicked() "+rows.length+" rows"); 
-
-				for(int i = 0 ; i < rows.length;++i){
-					int row = rows[i];
-
-					ConceptEquivalenceElement concept = (ConceptEquivalenceElement) resultTableModel.getValueAt(row, 0);
-					Object obj = (Object) resultTableModel.getValueAt(row, 1);
-					if(obj instanceof DictionaryElement){
-						DictionaryElement target = (DictionaryElement) obj;
-						selectedEquivalences.put(concept, target);
-						System.out.println("AnnotEquiPane.mouseClicked() at row "+row+" ["+concept.getName()+"] with Dico El - "+target.getName()+" - "); 
-
-					}else {
-						selectedEquivalences.put(concept, (String) obj);
-						System.out.println("AnnotEquiPane.mouseClicked() at row "+row+" ["+concept.getName()+"] with String - "+(String) obj+" - "); 
-
-					}
-					graph.highlightTarget(concept);
-				}
-			}
-		}
+	
 	}
 
 	@Override
@@ -1041,22 +427,5 @@
 		// forwardEventToButton(e);
 	}
 
-	@Override
-	public void itemStateChanged(ItemEvent e) {
-		Object source = e.getItemSelectable();
 
-		if (source == graphSizeBox) {
-			if (e.getStateChange() == ItemEvent.DESELECTED){
-				withSizes = false;
-			}
-			if (e.getStateChange() == ItemEvent.SELECTED){
-				withSizes = true;
-				
-			}
-			initGuiWithTable();
-
-		}
-
-	}
-
 }
Index: SRC/src/fr/triangle/hyperalign/gui/annot/ButtonColumn.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/ButtonColumn.java	(revision 0)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/ButtonColumn.java	(revision 19)
@@ -0,0 +1,225 @@
+package fr.triangle.hyperalign.gui.annot;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.border.*;
+import javax.swing.table.*;
+
+/**
+ *  The ButtonColumn class provides a renderer and an editor that looks like a
+ *  JButton. The renderer and editor will then be used for a specified column
+ *  in the table. The TableModel will contain the String to be displayed on
+ *  the button.
+ *
+ *  The button can be invoked by a mouse click or by pressing the space bar
+ *  when the cell has focus. Optionally a mnemonic can be set to invoke the
+ *  button. When the button is invoked the provided Action is invoked. The
+ *  source of the Action will be the table. The action command will contain
+ *  the model row number of the button that was clicked.
+ *
+ */
+public class ButtonColumn extends AbstractCellEditor
+	implements TableCellRenderer, TableCellEditor, ActionListener, MouseListener
+{
+	private JTable table;
+	private Action action;
+	private int mnemonic;
+	private Border originalBorder;
+	private Border focusBorder;
+
+	private JButton renderButton;
+	private JButton editButton;
+	private Object editorValue;
+	private boolean isButtonColumnEditor;
+
+	/**
+	 *  Create the ButtonColumn to be used as a renderer and editor. The
+	 *  renderer and editor will automatically be installed on the TableColumn
+	 *  of the specified column.
+	 *
+	 *  @param table the table containing the button renderer/editor
+	 *  @param action the Action to be invoked when the button is invoked
+	 *  @param column the column to which the button renderer/editor is added
+	 */
+	public ButtonColumn(JTable table, Action action, int column)
+	{
+		this.table = table;
+		this.action = action;
+
+		renderButton = new JButton();
+		editButton = new JButton();
+		editButton.setFocusPainted( false );
+		editButton.addActionListener( this );
+		originalBorder = editButton.getBorder();
+		setFocusBorder( new LineBorder(Color.BLUE) );
+
+		TableColumnModel columnModel = table.getColumnModel();
+		columnModel.getColumn(column).setCellRenderer( this );
+		columnModel.getColumn(column).setCellEditor( this );
+		table.addMouseListener( this );
+	}
+
+
+	/**
+	 *  Get foreground color of the button when the cell has focus
+	 *
+	 *  @return the foreground color
+	 */
+	public Border getFocusBorder()
+	{
+		return focusBorder;
+	}
+
+	/**
+	 *  The foreground color of the button when the cell has focus
+	 *
+	 *  @param focusBorder the foreground color
+	 */
+	public void setFocusBorder(Border focusBorder)
+	{
+		this.focusBorder = focusBorder;
+		editButton.setBorder( focusBorder );
+	}
+
+	public int getMnemonic()
+	{
+		return mnemonic;
+	}
+
+	/**
+	 *  The mnemonic to activate the button when the cell has focus
+	 *
+	 *  @param mnemonic the mnemonic
+	 */
+	public void setMnemonic(int mnemonic)
+	{
+		this.mnemonic = mnemonic;
+		renderButton.setMnemonic(mnemonic);
+		editButton.setMnemonic(mnemonic);
+	}
+
+	@Override
+	public Component getTableCellEditorComponent(
+		JTable table, Object value, boolean isSelected, int row, int column)
+	{
+		if (value == null)
+		{
+			editButton.setText( "" );
+			editButton.setIcon( null );
+		}
+		else if (value instanceof Icon)
+		{
+			editButton.setText( "" );
+			editButton.setIcon( (Icon)value );
+		}
+		else
+		{
+			editButton.setText( value.toString() );
+			editButton.setIcon( null );
+		}
+
+		this.editorValue = value;
+		return editButton;
+	}
+
+	@Override
+	public Object getCellEditorValue()
+	{
+		return editorValue;
+	}
+
+//
+//  Implement TableCellRenderer interface
+//
+	public Component getTableCellRendererComponent(
+		JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
+	{
+		if (isSelected)
+		{
+			renderButton.setForeground(table.getSelectionForeground());
+	 		renderButton.setBackground(table.getSelectionBackground());
+		}
+		else
+		{
+			renderButton.setForeground(table.getForeground());
+			renderButton.setBackground(UIManager.getColor("Button.background"));
+		}
+
+		if (hasFocus)
+		{
+			renderButton.setBorder( focusBorder );
+		}
+		else
+		{
+			renderButton.setBorder( originalBorder );
+		}
+
+//		renderButton.setText( (value == null) ? "" : value.toString() );
+		if (value == null)
+		{
+			renderButton.setText( "" );
+			renderButton.setIcon( null );
+		}
+		else if (value instanceof Icon)
+		{
+			renderButton.setText( "" );
+			renderButton.setIcon( (Icon)value );
+		}
+		else
+		{
+			renderButton.setText( value.toString() );
+			renderButton.setIcon( null );
+		}
+
+		return renderButton;
+	}
+
+//
+//  Implement ActionListener interface
+//
+	/*
+	 *	The button has been pressed. Stop editing and invoke the custom Action
+	 */
+	public void actionPerformed(ActionEvent e)
+	{
+		int row = table.convertRowIndexToModel( table.getEditingRow() );
+		fireEditingStopped();
+
+		//  Invoke the Action
+
+		ActionEvent event = new ActionEvent(
+			table,
+			ActionEvent.ACTION_PERFORMED,
+			"" + row);
+		action.actionPerformed(event);
+	}
+
+//
+//  Implement MouseListener interface
+//
+	/*
+	 *  When the mouse is pressed the editor is invoked. If you then then drag
+	 *  the mouse to another cell before releasing it, the editor is still
+	 *  active. Make sure editing is stopped when the mouse is released.
+	 */
+    public void mousePressed(MouseEvent e)
+    {
+    	if (table.isEditing()
+		&&  table.getCellEditor() == this)
+			isButtonColumnEditor = true;
+    }
+
+    public void mouseReleased(MouseEvent e)
+    {
+    	if (isButtonColumnEditor
+    	&&  table.isEditing())
+    		table.getCellEditor().stopCellEditing();
+
+		isButtonColumnEditor = false;
+    }
+
+    public void mouseClicked(MouseEvent e) {}
+	public void mouseEntered(MouseEvent e) {}
+    public void mouseExited(MouseEvent e) {}
+}
Index: SRC/src/fr/triangle/hyperalign/gui/annot/DictionaryPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/DictionaryPane.java	(revision 18)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/DictionaryPane.java	(revision 19)
@@ -40,7 +40,7 @@
 import javax.swing.JScrollPane;
 import javax.swing.JTextField;
 
-import fr.triangle.hyperalign.gui.HMManager;
+import fr.triangle.hyperalign.gui.HMController;
 import fr.triangle.hyperalign.gui.Hypermachiavel;
 import fr.triangle.hyperalign.kernel.DataManager.DictionaryManager;
 import fr.triangle.hyperalign.kernel.DisplayData;
@@ -70,7 +70,7 @@
 	private String iconPath = "fr/triangle/hyperalign/gui/icons";
 	private DictionaryParameters parameters;
 	private Vector results;
-	private HMManager manager;
+	private HMController manager;
 	private DictionaryManager dicoManager;
 	
 	private boolean searchForAllConcepts;
@@ -125,9 +125,9 @@
 	private JButton addOccsButt;
 	private boolean hasResults = false;
 
-	public DictionaryPane(HMManager manager){
+	public DictionaryPane(HMController manager){
 		this.manager = manager;
-		this.parameters = manager.getDictionaryParameters();
+		this.parameters = manager.getDictionaryController().getDictionaryParameters();
 		this.dicoManager = manager.getDataManager().getDictionaryManager();
 		this.results = new Vector();	
 		this.res = HyperalignData.getInstance().getResourceBundle();
@@ -419,7 +419,7 @@
 			if(parameters.getOption(DictionaryParameters.DICO_EDITINFO)){
 				textField = dicoElement.getName();
 				if(!parameters.getAnnotationType().equals(Dictionary.DICO_OCC)){
-					nbChildren = ((DictionaryElement) parameters.getAnnotationElement()).children().size()+"";
+					nbChildren = ((DictionaryElement) parameters.getAnnotationElement()).childrenVect().size()+"";
 					if(parameters.getAnnotationType().equals(Dictionary.DICO_DICO)){
 						///TERMINOLOGY
 						titleChildren = res.getString("I18N_ANNOTPANE_CONCEPTS");
Index: SRC/src/fr/triangle/hyperalign/gui/annot/AnnotationPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/AnnotationPane.java	(revision 18)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/AnnotationPane.java	(revision 19)
@@ -17,6 +17,7 @@
 import java.awt.event.WindowEvent;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Observable;
@@ -39,7 +40,7 @@
 import javax.swing.JScrollPane;
 import javax.swing.JTextField;
 
-import fr.triangle.hyperalign.gui.HMManager;
+import fr.triangle.hyperalign.gui.HMController;
 import fr.triangle.hyperalign.gui.Hypermachiavel;
 import fr.triangle.hyperalign.kernel.DataManager.DictionaryManager;
 import fr.triangle.hyperalign.kernel.DisplayData;
@@ -73,7 +74,7 @@
 	private String iconPath = "fr/triangle/hyperalign/gui/icons";
 	private AnnotationParameters parameters;
 	private Vector results;
-	private HMManager manager;
+	private HMController manager;
 	private TerminologyManager terminoManager;
 	
 	private boolean searchForAllConcepts;
@@ -139,9 +140,9 @@
 	private JButton addOccsButt;
 	private boolean hasResults = false;
 
-	public AnnotationPane(HMManager manager){
+	public AnnotationPane(HMController manager){
 		this.manager = manager;
-		this.parameters = manager.getAnnotationParameters();
+		this.parameters = manager.getAnnotationController().getAnnotationParameters();
 		this.terminoManager = manager.getDataManager().getTerminologyManager();
 		this.results = new Vector();	
 		this.res = HyperalignData.getInstance().getResourceBundle();
@@ -595,7 +596,7 @@
 			if(parameters.getOption(AnnotationParameters.ANNOTATION_EDITINFO)){
 				textField = terminoElement.getName();
 				if(!parameters.getAnnotationType().equals(Terminology.TERMINOLOGY_OCC)){
-					nbChildren = ((TerminologyElement) parameters.getAnnotationElement()).children().size()+"";
+					nbChildren = ((TerminologyElement) parameters.getAnnotationElement()).childrenVect().size()+"";
 					if(parameters.getAnnotationType().equals(Dictionary.DICO_DICO)){
 						///TERMINOLOGY
 						titleChildren = res.getString("I18N_ANNOTPANE_CONCEPTS");
@@ -1102,7 +1103,7 @@
 		}
 		terms.add(termEl);
 		nbOccsAdded = terminoManager.addOccurrences(occs, terms); //termEl.getTerminology(), 
-		manager.getSearchManager().resetSearchTerminology();
+		manager.getSearchController().resetSearchTerminology();
 		String message = nbOccsAdded+" "+res.getString("I18N_ANNOTPANE_OCCS_DIALOGMESSAGE");
 		return message;
 	}
Index: SRC/src/fr/triangle/hyperalign/gui/annot/EquiInfoPane.java
===================================================================
--- SRC/src/fr/triangle/hyperalign/gui/annot/EquiInfoPane.java	(revision 18)
+++ SRC/src/fr/triangle/hyperalign/gui/annot/EquiInfoPane.java	(revision 19)
@@ -30,6 +30,11 @@
 import fr.triangle.hyperalign.kernel.dico.DictionaryElement;
 import fr.triangle.hyperalign.kernel.termino.TerminologyElement;
 
+/**
+ * OLD CLASS ??
+ * @author gazelledess
+ *
+ */
 
 public class EquiInfoPane extends JDialog implements ActionListener, MouseListener, PropertyChangeListener, Observer {
 		
@@ -87,11 +92,7 @@
 			
 			columnNames[0] = res.getString("I18N_EQUIVALENCEINFOPANE_COL0");//Type of Information 
 			columnNames[1] = res.getString("I18N_EQUIVALENCEINFOPANE_COL1");//Nb
-			
-				
-			
 			resultTableModel = new ResultTableModel(columnNames, 4);
-				
 			resultTableModel.setValueAt(res.getString("I18N_EQUIVALENCEINFOPANE_LINE0"), 0, 0); //Nb occurrences (vocabulary) 
 			resultTableModel.setValueAt(res.getString("I18N_EQUIVALENCEINFOPANE_LINE1"), 1, 0); //Nb occurrences (terminology) 
 			resultTableModel.setValueAt(res.getString("I18N_EQUIVALENCEINFOPANE_LINE2")+" "+source, 2, 0); //Nb occurrences (terminology) in equivalence with Imperio
