Index: src/org/openide/explorer/propertysheet/PropertyPanel.java =================================================================== RCS file: /cvs/openide/src/org/openide/explorer/propertysheet/PropertyPanel.java,v retrieving revision 1.118 diff -u -r1.118 PropertyPanel.java --- src/org/openide/explorer/propertysheet/PropertyPanel.java 30 Aug 2002 11:15:29 -0000 1.118 +++ src/org/openide/explorer/propertysheet/PropertyPanel.java 9 Sep 2002 15:39:18 -0000 @@ -1280,7 +1280,7 @@ "FMT_ErrorSettingProperty", userMessage, propertyName )); - em.notify (ErrorManager.USER, e); + em.notify (extractSeverity (e), e); } else { em.notify (ErrorManager.INFORMATIONAL, e); } @@ -1309,6 +1309,26 @@ } return message; } + + private static int extractSeverity (Throwable t) { + ErrorManager em = ErrorManager.getDefault (); + + ErrorManager.Annotation[] an = em.findAnnotations (t); + int userSeverity = ErrorManager.UNKNOWN; + if (an != null) { + for (int i = 0; i < an.length; i++) { + int severity = an[i].getSeverity (); + // PENDING + // select highest severity of the annotations + // or select lowlest? + // or use severity of annotation on the top? + if (severity > userSeverity) { + userSeverity = severity; + } + } + } + return userSeverity; + } /** Processes Throwable thrown from setAsText * or setValue call on editor. Helper method. */ @@ -1480,7 +1500,9 @@ if(exception instanceof InvocationTargetException) { return (InvocationTargetException)exception; } else { - return new InvocationTargetException(exception); + InvocationTargetException ite = new InvocationTargetException(exception); + ErrorManager.Annotation[] arr = ErrorManager.getDefault ().findAnnotations (exception); + return (InvocationTargetException)ErrorManager.getDefault ().attachAnnotations (ite, arr); } }