Revision: 1112
Author:   ge0ffrey
Date:     2006-05-05 08:28:48 -0700 (Fri, 05 May 2006)
ViewCVS:  http://svn.sourceforge.net/spring-rich-c/?rev=1112&view=rev

Log Message:
-----------
RCP-319 ApplicationDialog shouln't handle exceptions + default exception 
handler should also show exceptions

Modified Paths:
--------------
    
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/config/ApplicationLifecycleAdvisor.java
    
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/dialog/ApplicationDialog.java
Modified: 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/config/ApplicationLifecycleAdvisor.java
===================================================================
--- 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/config/ApplicationLifecycleAdvisor.java
    2006-05-04 16:29:35 UTC (rev 1111)
+++ 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/application/config/ApplicationLifecycleAdvisor.java
    2006-05-05 15:28:48 UTC (rev 1112)
@@ -25,8 +25,16 @@
 import 
org.springframework.richclient.application.support.ApplicationWindowCommandManager;
 import org.springframework.richclient.command.CommandGroup;
 import org.springframework.richclient.progress.StatusBarCommandGroup;
+import org.springframework.richclient.core.Message;
+import org.springframework.richclient.dialog.MessageDialog;
 import org.springframework.util.Assert;
+import org.springframework.util.StringUtils;
+import org.springframework.context.MessageSourceResolvable;
+import org.springframework.binding.validation.Severity;
 
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+
 /**
  * @author Keith Donald
  * @author Jim Moore
@@ -93,7 +101,7 @@
     }
 
     public void onPreInitialize(Application application) {
-        
+
     }
 
     public void onPreStartup() {
@@ -103,7 +111,7 @@
     public void onPostStartup() {
 
     }
-    
+
     public void setOpeningWindow(ApplicationWindow window) {
        this.openingWindow = window;
     }
@@ -168,6 +176,23 @@
     public static class DefaultEventExceptionHandler {
         public void handle(Throwable t) {
             
LogFactory.getLog(ApplicationLifecycleAdvisor.class).error(t.getMessage(), t);
+            String exceptionMessage;
+            if (t instanceof MessageSourceResolvable) {
+                exceptionMessage = 
Application.instance().getServices().getMessages()
+                        .getMessage((MessageSourceResolvable) t);
+            } else {
+                exceptionMessage = t.getLocalizedMessage();
+            }
+            if (!StringUtils.hasText(exceptionMessage)) {
+                String defaultMessage = "An application exception 
occurred.\nPlease contact your administrator.";
+                exceptionMessage = 
Application.instance().getServices().getMessages()
+                        .getMessage("applicationDialog.defaultException", 
defaultMessage);
+            }
+
+            Message message = new Message(exceptionMessage, Severity.ERROR);
+            ApplicationWindow activeWindow = 
Application.instance().getActiveWindow();
+            JFrame parentFrame = (activeWindow == null) ? null : 
activeWindow.getControl();
+            JOptionPane.showMessageDialog(parentFrame, message.getText(), 
"Error", JOptionPane.ERROR_MESSAGE);
         }
     }
 

Modified: 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/dialog/ApplicationDialog.java
===================================================================
--- 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/dialog/ApplicationDialog.java
  2006-05-04 16:29:35 UTC (rev 1111)
+++ 
trunk/spring-richclient/support/src/main/java/org/springframework/richclient/dialog/ApplicationDialog.java
  2006-05-05 15:28:48 UTC (rev 1112)
@@ -337,21 +337,14 @@
 
     private void initStandardCommands() {
         finishCommand = new ActionCommand(getFinishCommandId()) {
-
             public void doExecuteCommand() {
-                try {
-                    boolean result = onFinish();
-                    if (result) {
-                        if (getDisplayFinishSuccessMessage()) {
-                            showFinishSuccessMessageDialog();
-                        }
-                        executeCloseAction();
+                boolean result = onFinish();
+                if (result) {
+                    if (getDisplayFinishSuccessMessage()) {
+                        showFinishSuccessMessageDialog();
                     }
+                    executeCloseAction();
                 }
-                catch (RuntimeException e) {
-                    logger.warn("Exception occurred executing dialog finish 
command.", e);
-                    onFinishException(e);
-                }
             }
         };
         finishCommand.setSecurityControllerId(getFinishSecurityControllerId());
@@ -438,24 +431,6 @@
         return getCallingCommand() != null ? getCallingCommand().getText() : 
null;
     }
 
-    protected void onFinishException(Exception e) {
-        String exceptionMessage;
-        if (e instanceof MessageSourceResolvable) {
-            exceptionMessage = 
getMessages().getMessage((MessageSourceResolvable)e);
-        }
-        else {
-            exceptionMessage = e.getLocalizedMessage();
-        }
-        if (!StringUtils.hasText(exceptionMessage)) {
-            String defaultMessage = "Unable to finish; an application 
exception occurred.\nPlease contact your administrator.";
-            exceptionMessage = 
getMessages().getMessage("applicationDialog.defaultFinishException", 
defaultMessage);
-        }
-       
-               Message message = new Message(exceptionMessage, Severity.ERROR);
-               MessageDialog messageDialog = new 
MessageDialog(getApplicationName(), getDialog(), message);
-               messageDialog.showDialog();
-    }
-
     protected String getCancelCommandId() {
         return DEFAULT_CANCEL_COMMAND_ID;
     }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
spring-rich-c-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/spring-rich-c-cvs

Reply via email to