Author: chatellier Date: 2010-12-02 10:52:31 +0000 (Thu, 02 Dec 2010) New Revision: 331 Log: Changement du curseur sur les actions longues. Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-12-02 10:34:35 UTC (rev 330) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-12-02 10:52:31 UTC (rev 331) @@ -92,7 +92,7 @@ log.error("Global application exception", ex); } ErrorHelper errorHelper = new ErrorHelper(coserConfig); - errorHelper.showErrorDialog(null, "Global application exception", ex); + errorHelper.showErrorDialog(null, ex.getMessage(), ex); } }); } Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx 2010-12-02 10:34:35 UTC (rev 330) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx 2010-12-02 10:52:31 UTC (rev 331) @@ -39,10 +39,10 @@ <JMenuItem text="coser.ui.mainframe.menu.quit" onActionPerformed="getHandler().quit()"/> </JMenu> - <JMenu id='menuWindow' text="coser.ui.mainframe.menu.data" enabled="false"> + <JMenu id='menuWindow' text="coser.ui.mainframe.menu.data" enabled="{getProject() != null}"> <JMenuItem text="coser.ui.mainframe.menu.data.summary" onActionPerformed="getHandler().showSummaryView()"/> <JMenuItem text="coser.ui.mainframe.menu.data.control" onActionPerformed="getHandler().showControlView()"/> - <SelectionsListMenuItem id="menuWindowSelectionMenuItem" + <SelectionsListMenuItem id="menuWindowSelectionMenuItem" project="{getProject()}" text="coser.ui.mainframe.menu.data.selections" constructorParams="this" /> </JMenu> Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-12-02 10:34:35 UTC (rev 330) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-12-02 10:52:31 UTC (rev 331) @@ -27,6 +27,7 @@ import java.awt.BorderLayout; import java.awt.Component; +import java.awt.Cursor; import java.beans.PropertyChangeEvent; import java.io.File; import java.net.URL; @@ -89,6 +90,20 @@ } /** + * Install le curseur sablier. + */ + protected void setWaitCursor() { + view.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + } + + /** + * Repositionne le curseur a sa valeur par defaut. + */ + protected void setDefaultCursor() { + view.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + + /** * Switch application locale. * * @param frame frame @@ -190,6 +205,10 @@ dialogUI.setVisible(true); } + /** + * Affiche la fenetre de configuration des validateurs personnel de + * l'utilisateur. + */ public void showValidatorsConfiguration() { ValidatorDialog validatorDialog = new ValidatorDialog(view); URL sample = Catch.class.getResource("Catch-error-validation.xml"); @@ -203,7 +222,7 @@ * Retourne une unique instance du file chooser pour conserver * le répertoire de sélection d'un appel sur l'autre. * - * @return + * @return l'unique instance de file chooser */ protected JFileChooser getFileChooser() { if (fileChooser == null) { @@ -288,6 +307,7 @@ // disable create button projectView.getCreateProjectButton().setEnabled(false); + setWaitCursor(); SwingWorker<Project, Void> task = new SwingWorker<Project, Void>() { long before = System.currentTimeMillis(); @@ -323,6 +343,7 @@ } catch (Exception ex) { throw new CoserException("Can't create project", ex); } + setDefaultCursor(); } }; task.execute(); @@ -336,6 +357,7 @@ public void saveProject(ProjectEditView view) { Project project = view.getProject(); ProjectService projectService = view.getContextValue(ProjectService.class); + setWaitCursor(); try { projectService.saveProject(project); showSummaryView(); @@ -343,6 +365,9 @@ catch (CoserBusinessException ex) { throw new CoserException("Can't save project", ex); } + finally { + setDefaultCursor(); + } } /** @@ -354,6 +379,8 @@ final String projectName = (String)projectView.getProjectsComboBox().getSelectedItem(); ProjectService projectService = projectView.getContextValue(ProjectService.class); + + setWaitCursor(); try { Project project = projectService.openProject(projectName); projectLoaded(project); @@ -365,6 +392,7 @@ JOptionPane.showMessageDialog(projectView, ex.getMessage(), _("coser.ui.project.openError"), JOptionPane.ERROR_MESSAGE); } + setDefaultCursor(); } /** @@ -381,8 +409,6 @@ protected void projectLoaded(Project project) { view.setProject(project); view.setContextValue(project); - view.getMenuWindow().setEnabled(true); - view.getMenuWindowSelectionMenuItem().setProject(project); } /** @@ -415,8 +441,10 @@ // load control ProjectService projectService = view.getContextValue(ProjectService.class); Project project = view.getContextValue(Project.class); + + setWaitCursor(); try { - + if (reloadData) { project = projectService.loadControlData(project); } @@ -433,6 +461,9 @@ } catch (CoserBusinessException ex) { throw new CoserException("Can't load control data", ex); } + finally { + setDefaultCursor(); + } } /** @@ -443,6 +474,8 @@ // create new selection ProjectService projectService = view.getContextValue(ProjectService.class); Project project = view.getContextValue(Project.class); + + setWaitCursor(); try { Selection selection = projectService.initProjectSelection(project); view.setContextValue(selection); @@ -474,6 +507,9 @@ JOptionPane.ERROR_MESSAGE); throw new CoserException("Can't create new selection", ex); } + finally { + setDefaultCursor(); + } } /** @@ -486,6 +522,8 @@ ProjectService projectService = view.getContextValue(ProjectService.class); Project project = view.getContextValue(Project.class); Selection selection = project.getSelections().get(selectionName); + + setWaitCursor(); try { project = projectService.loadSelectionData(project, selection); view.setContextValue(selection); @@ -515,6 +553,9 @@ } catch (CoserBusinessException ex) { throw new CoserException("Can't reload selection data", ex); } + finally { + setDefaultCursor(); + } } /** Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java 2010-12-02 10:34:35 UTC (rev 330) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/SelectionsListMenuItem.java 2010-12-02 10:52:31 UTC (rev 331) @@ -36,7 +36,6 @@ import javax.swing.JMenuItem; import javax.swing.JSeparator; -import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -80,8 +79,10 @@ this.project.getControl().removePropertyChangeListener(Control.PROPERTY_VALIDATED, this); } this.project = project; - this.project.addPropertyChangeListener(Project.PROPERTY_SELECTIONS, this); - this.project.getControl().addPropertyChangeListener(Control.PROPERTY_VALIDATED, this); + if (this.project != null) { + this.project.addPropertyChangeListener(Project.PROPERTY_SELECTIONS, this); + this.project.getControl().addPropertyChangeListener(Control.PROPERTY_VALIDATED, this); + } updateMenuContent(); }