Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/ConnexionDialog.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/ConnexionDialog.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/ConnexionDialog.java	(revision 10811)
@@ -41,4 +41,5 @@
 import fr.mael.jiwigo.transverse.util.preferences.PreferencesManagement;
 import fr.mael.jiwigo.transverse.util.spring.SpringUtils;
+import fr.mael.jiwigo.ui.mainframe.CursorSetter;
 
 /**
@@ -209,4 +210,5 @@
     @Override
     public void actionPerformed(ActionEvent paramActionEvent) {
+	CursorSetter.setWaitCursor(this);
 	//if one field is empty, an error is displayed
 	if (fieldUrl.getText().equals("") || loginField.getText().equals("") || passwordField.getText().equals("")) {
@@ -295,4 +297,5 @@
 
 	}
+	CursorSetter.setDefaultCursor(this);
     }
 
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/browser/BrowserPanel.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/browser/BrowserPanel.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/browser/BrowserPanel.java	(revision 10811)
@@ -32,4 +32,5 @@
 import fr.mael.jiwigo.transverse.util.Tools;
 import fr.mael.jiwigo.ui.comments.CommentsDialog;
+import fr.mael.jiwigo.ui.mainframe.MainFrame;
 
 /**
@@ -373,4 +374,5 @@
 	    }
 	} else if (e.getSource().equals(next)) {
+	    MainFrame.getInstance().showWaitCursor(true);
 	    imagePanel.setDrawSelection(false);
 	    ImagesManagement.getInstance().next();
@@ -380,6 +382,7 @@
 		LOG.error(Tools.getStackTrace(e1));
 	    }
-
+	    MainFrame.getInstance().showWaitCursor(false);
 	} else if (e.getSource().equals(previous)) {
+	    MainFrame.getInstance().showWaitCursor(true);
 	    imagePanel.setDrawSelection(false);
 	    ImagesManagement.getInstance().previous();
@@ -389,5 +392,5 @@
 		LOG.error(Tools.getStackTrace(e1));
 	    }
-
+	    MainFrame.getInstance().showWaitCursor(false);
 	} else if (e.getSource().equals(rotateLeft)) {
 	    imagePanel.rotationGauche();
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/comments/CommentsDialog.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/comments/CommentsDialog.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/comments/CommentsDialog.java	(revision 10811)
@@ -24,4 +24,5 @@
 import fr.mael.jiwigo.transverse.util.spring.SpringUtils;
 import fr.mael.jiwigo.ui.browser.BrowserPanel;
+import fr.mael.jiwigo.ui.mainframe.CursorSetter;
 import fr.mael.jiwigo.ui.mainframe.MainFrame;
 
@@ -159,4 +160,5 @@
     @Override
     public void actionPerformed(ActionEvent arg0) {
+	CursorSetter.setWaitCursor(this);
 	String text = textArea.getText();
 	//on n'envoie pas de commentaire vide
@@ -180,4 +182,5 @@
 	    }
 	}
+	CursorSetter.setDefaultCursor(this);
 
     }
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java	(revision 10811)
@@ -124,4 +124,5 @@
      */
     public void valueChanged(TreeSelectionEvent e) {
+	MainFrame.getInstance().showWaitCursor(true);
 	DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
 	//
@@ -135,4 +136,5 @@
 	}
 	MainFrame.getInstance().addTabb(new ThumbnailCategoryPanel(category));
+	MainFrame.getInstance().showWaitCursor(false);
     }
 
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CursorSetter.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CursorSetter.java	(revision 10811)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CursorSetter.java	(revision 10811)
@@ -0,0 +1,45 @@
+package fr.mael.jiwigo.ui.mainframe;
+
+import java.awt.Cursor;
+import java.awt.event.MouseAdapter;
+
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+
+public class CursorSetter {
+
+    /**
+     * No constructor : static methods only.
+     */
+    private CursorSetter() {
+    }
+
+    public static void setWaitCursor(JFrame c) {
+	c.getGlassPane().addMouseListener(new MouseAdapter() {
+	});
+	c.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+	c.getGlassPane().setVisible(true);
+    }
+
+    public static void setWaitCursor(JDialog c) {
+	c.getGlassPane().addMouseListener(new MouseAdapter() {
+	});
+	c.getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+	c.getGlassPane().setVisible(true);
+    }
+
+    public static void setDefaultCursor(JFrame c) {
+	c.getGlassPane().addMouseListener(new MouseAdapter() {
+	});
+	c.getGlassPane().setCursor(Cursor.getDefaultCursor());
+	c.getGlassPane().setVisible(false);
+    }
+
+    public static void setDefaultCursor(JDialog c) {
+	c.getGlassPane().addMouseListener(new MouseAdapter() {
+	});
+	c.getGlassPane().setCursor(Cursor.getDefaultCursor());
+	c.getGlassPane().setVisible(false);
+    }
+
+}
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/MainFrame.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/MainFrame.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/MainFrame.java	(revision 10811)
@@ -66,4 +66,5 @@
     public static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory
 	    .getLog(MainFrame.class);
+
     /**
      * the categories tree
@@ -220,4 +221,12 @@
     }
 
+    public void showWaitCursor(boolean enable) {
+	if (enable) {
+	    CursorSetter.setWaitCursor(this);
+	} else {
+	    CursorSetter.setDefaultCursor(this);
+	}
+    }
+
     public void addTabb(IThumbnailPanel panel) {
 	JScrollPane scrollPaneImagesPanel = new JScrollPane((JPanel) panel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
@@ -245,6 +254,6 @@
 	//is the name of the category
 	if (!found && !isSearch) {
-	    tabbedPane.addTab(panel.getCategory().getName(), scrollPaneImagesPanel, new ImageIcon(Tools
-		    .getURL("fr/mael/jiwigo/img/closetab.png")));
+	    tabbedPane.addTab(panel.getCategory().getName(), scrollPaneImagesPanel,
+		    new ImageIcon(Tools.getURL("fr/mael/jiwigo/img/closetab.png")));
 	    //if it's for a research, the title of the tab
 	    //if the query string
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailCategoryPanel.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailCategoryPanel.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailCategoryPanel.java	(revision 10811)
@@ -137,4 +137,5 @@
      */
     public void refresh(Integer categoryId, boolean rafraichir) {
+	MainFrame.getInstance().showWaitCursor(true);
 	this.categoryId = categoryId;
 	try {
@@ -152,4 +153,5 @@
 	    MainFrame.getInstance().setMessage(Messages.getMessage("imagesListingError"));
 	}
+	MainFrame.getInstance().showWaitCursor(false);
     }
 
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailPanel.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailPanel.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/ThumbnailPanel.java	(revision 10811)
@@ -144,4 +144,5 @@
     public void mouseClicked(MouseEvent paramMouseEvent) {
 	// on affiche l'image en grand
+	MainFrame.getInstance().showWaitCursor(true);
 	ImagesManagement.getInstance().setCurrentImage(image);
 	try {
@@ -161,4 +162,5 @@
 	    e.printStackTrace();
 	}
+	MainFrame.getInstance().showWaitCursor(false);
 
     }
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/DialogChooseCategory.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/DialogChooseCategory.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/DialogChooseCategory.java	(revision 10811)
@@ -24,4 +24,5 @@
 import fr.mael.jiwigo.transverse.util.preferences.PreferencesManagement;
 import fr.mael.jiwigo.transverse.util.spring.SpringUtils;
+import fr.mael.jiwigo.ui.mainframe.CursorSetter;
 import fr.mael.jiwigo.ui.mainframe.MainFrame;
 
@@ -156,4 +157,6 @@
     @Override
     public void actionPerformed(ActionEvent arg0) {
+	CursorSetter.setWaitCursor(this);
+	MainFrame.getInstance().showWaitCursor(true);
 	if (arg0.getSource().equals(okButton)) {
 	    Category category = (Category) comboCategories.getSelectedItem();
@@ -228,4 +231,6 @@
 	    this.dispose();
 	}
+	MainFrame.getInstance().showWaitCursor(false);
+	CursorSetter.setDefaultCursor(this);
     }
 }
Index: extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/tree/FileTree.java
===================================================================
--- extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/tree/FileTree.java	(revision 10810)
+++ extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/search/tree/FileTree.java	(revision 10811)
@@ -30,4 +30,5 @@
 import fr.mael.jiwigo.ui.field.HintTextField;
 import fr.mael.jiwigo.ui.mainframe.DialogPrivacyLevel;
+import fr.mael.jiwigo.ui.mainframe.MainFrame;
 import fr.mael.jiwigo.ui.search.DialogChooseCategory;
 import fr.mael.jiwigo.ui.search.File;
@@ -208,4 +209,5 @@
     @Override
     public void mouseClicked(MouseEvent mouseEvent) {
+	MainFrame.getInstance().showWaitCursor(true);
 	if (mouseEvent.getSource().equals(fieldPath)) {
 	    JFileChooser chooser = new JFileChooser();
@@ -236,4 +238,5 @@
 	    popup.show(tree, mouseEvent.getX(), mouseEvent.getY());
 	}
+	MainFrame.getInstance().showWaitCursor(false);
     }
 
