- XXX no answer for exec-reflection
+
+ This module exports an API that allows the UI Gestures Collector module
+ to plug and enhance the behaviour of exception dialog by own buttons.
+ The behaviour is like this: If any of Handler
s of
+ Logger.getLogger("")
implements Callable<JButton>
+ then such button is going to be inserted to the exception dialog and
+ can react and change the behaviour of that dialog. Such a button is
+ going to be a "closing" one - e.g. the dialog will close as soon as
+ the button is pressed.
+
Index: core/nbproject/project.properties
===================================================================
RCS file: /shared/data/ccvs/repository/core/nbproject/project.properties,v
--- core/nbproject/project.properties 19 Nov 2006 13:33:00 -0000 1.29
+++ core/nbproject/project.properties 11 Jan 2007 19:24:45 -0000
@@ -17,7 +17,7 @@
javac.compilerargs=-Xlint:unchecked
javac.source=1.5
-spec.version.base=3.5.0
+spec.version.base=3.6.0
javadoc.arch=${basedir}/arch/arch-core.xml
Index: core/src/org/netbeans/core/NotifyExcPanel.java
===================================================================
RCS file: /shared/data/ccvs/repository/core/src/org/netbeans/core/NotifyExcPanel.java,v
--- core/src/org/netbeans/core/NotifyExcPanel.java 2 Oct 2006 12:51:14 -0000 1.3
+++ core/src/org/netbeans/core/NotifyExcPanel.java 11 Jan 2007 19:02:56 -0000
@@ -30,9 +30,14 @@
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.ResourceBundle;
+import java.util.concurrent.Callable;
+import java.util.logging.Handler;
import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
@@ -47,6 +52,7 @@
import org.openide.DialogDisplayer;
import org.openide.NotifyDescriptor;
import org.openide.awt.Mnemonics;
+import org.openide.util.Exceptions;
import org.openide.util.NbBundle;
import org.openide.util.Utilities;
import org.openide.windows.WindowManager;
@@ -133,11 +139,7 @@
descriptor = new DialogDescriptor ("", ""); // NOI18N
descriptor.setMessageType (DialogDescriptor.ERROR_MESSAGE);
- descriptor.setOptions (new Object[] {
- previous,
- next,
- DialogDescriptor.OK_OPTION
- });
+ descriptor.setOptions (computeOptions(previous, next));
descriptor.setAdditionalOptions (new Object[] {
details
});
@@ -160,6 +162,43 @@
dialog.getAccessibleContext().setAccessibleDescription(bundle.getString("ACD_NotifyExcPanel_Dialog")); // NOI18N
}
+ static Object[] computeOptions(Object previous, Object next) {
+ ArrayList