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