public abstract class FeedbackManager
extends java.lang.Object
See the howto page and an example of the bug produced.
When the user hits an unepected condition, a bomb button appears in the toolbar. This button brings a dialog that shows the details about the exception. The user has the option to report the bug or to clear the error.
If the user reports the bug, the exception is compared with a database bugs that have already been filed. If the exception has never been reported before, a new bug is created.
The FeedbackManager UI will be disabled if you add "-nofeedback"
to the command line.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PROPERTY_EXCEPTIONS |
static java.lang.String |
PROPERTY_INTERNAL |
Constructor and Description |
---|
FeedbackManager() |
Modifier and Type | Method and Description |
---|---|
static void |
addFeedback(java.lang.String message) |
static void |
addFeedback(java.lang.String message,
Context context) |
protected abstract void |
addFeedbackImpl(oracle.ide.feedback.shared.Feedback feedback) |
void |
addPropertyChangeListener(java.beans.PropertyChangeListener listener) |
void |
clearExceptions()
INTERNAL USE!
|
void |
disableFeedbackOnLoggedExceptions(java.util.Collection<java.lang.String> apinames)
Used to selectively (or completely) disable the filing of feedback reports when
an call is made to Logging with an exception.
|
void |
disableFeedbackOnLoggingFromThesePackages(java.util.Set<java.lang.String> packageNames)
Experimental; interface may change if we find that we need greater specificity about
where in the stack trace a package appears
|
void |
enableFeedbackOnLoggedExceptions(java.util.Collection<java.lang.String> apinames)
Allow for re-enabling feedback reporting on an exception.
|
protected void |
firePropertyChange(java.beans.PropertyChangeEvent event) |
protected void |
firePropertyChange(java.lang.String propertyName,
boolean oldValue,
boolean newValue) |
protected void |
firePropertyChange(java.lang.String propertyName,
int oldValue,
int newValue) |
protected void |
firePropertyChange(java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue) |
void |
flush()
INTERNAL USE!
|
protected java.util.Collection<java.lang.String> |
getAPIsToExcludeFromLogHandling() |
static FeedbackManager |
getFeedbackManager() |
java.util.List<FeedbackManagerCallback> |
getFeedbackParticipants() |
java.util.Set<java.lang.String> |
getPackagesToExcludeFromLogHandling() |
boolean |
hasExceptions() |
protected boolean |
isFeedbackLogHandlerDisabled() |
boolean |
isIgnoredLogger(java.lang.String loggerName)
Some third-party loggers log SEVERE log messages that we can't suppress, and that are
already being adequately handled ..
|
static boolean |
isOn() |
void |
registerCallback(FeedbackManagerCallback participant) |
void |
removePropertyChangeListener(java.beans.PropertyChangeListener listener) |
static void |
reportAPIException(java.lang.String message,
java.lang.Throwable exception,
int apiDepth) |
static void |
reportAPIException(java.lang.String message,
java.lang.Throwable exception,
java.lang.String apiName) |
protected abstract void |
reportApiExceptionImpl(java.lang.String message,
java.lang.Throwable exception,
java.lang.String apiName,
boolean printToConsole) |
static void |
reportException(java.lang.String dialogHeader,
java.lang.String message,
java.lang.Throwable exception) |
static void |
reportException(java.lang.String message,
java.lang.Throwable exception) |
static void |
reportException(java.lang.Throwable exception) |
protected abstract void |
reportExceptionImpl(java.lang.String message,
java.lang.Throwable exception,
boolean printToConsole) |
protected abstract void |
reportExceptionImpl(java.lang.String message,
java.lang.Throwable exception,
int apiDepth,
boolean printToConsole) |
protected abstract void |
reportExceptionImpl(java.lang.String message,
java.lang.Throwable exception,
int apiDepth,
boolean printToConsole,
java.lang.String dialogHeader) |
void |
setExceptions(boolean exceptions) |
protected static void |
setFeedbackManager(FeedbackManager feedbackManager)
Publishes the specified FeedbackManager as the active instance in the IDE.
|
void |
setLoggersToIgnore(java.util.List<java.lang.String> loggers) |
void |
showFeedbackDialog(boolean reportEnabled)
INTERNAL USE!
|
void |
unregisterCallback(FeedbackManagerCallback participant) |
public static final java.lang.String PROPERTY_EXCEPTIONS
public static final java.lang.String PROPERTY_INTERNAL
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
protected void firePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
protected void firePropertyChange(java.lang.String propertyName, int oldValue, int newValue)
protected void firePropertyChange(java.lang.String propertyName, boolean oldValue, boolean newValue)
protected void firePropertyChange(java.beans.PropertyChangeEvent event)
protected abstract void addFeedbackImpl(oracle.ide.feedback.shared.Feedback feedback)
protected abstract void reportExceptionImpl(java.lang.String message, java.lang.Throwable exception, boolean printToConsole)
protected abstract void reportExceptionImpl(java.lang.String message, java.lang.Throwable exception, int apiDepth, boolean printToConsole)
protected abstract void reportExceptionImpl(java.lang.String message, java.lang.Throwable exception, int apiDepth, boolean printToConsole, java.lang.String dialogHeader)
protected abstract void reportApiExceptionImpl(java.lang.String message, java.lang.Throwable exception, java.lang.String apiName, boolean printToConsole)
public static void addFeedback(java.lang.String message)
public static void addFeedback(java.lang.String message, Context context)
public static boolean isOn()
public static void reportException(java.lang.String dialogHeader, java.lang.String message, java.lang.Throwable exception)
public static void reportException(java.lang.String message, java.lang.Throwable exception)
public static void reportException(java.lang.Throwable exception)
public static void reportAPIException(java.lang.String message, java.lang.Throwable exception, java.lang.String apiName)
public static void reportAPIException(java.lang.String message, java.lang.Throwable exception, int apiDepth)
public static FeedbackManager getFeedbackManager()
protected static void setFeedbackManager(FeedbackManager feedbackManager)
public boolean hasExceptions()
public void setExceptions(boolean exceptions)
public void disableFeedbackOnLoggedExceptions(java.util.Collection<java.lang.String> apinames)
public void disableFeedbackOnLoggingFromThesePackages(java.util.Set<java.lang.String> packageNames)
public void enableFeedbackOnLoggedExceptions(java.util.Collection<java.lang.String> apinames)
protected boolean isFeedbackLogHandlerDisabled()
protected java.util.Collection<java.lang.String> getAPIsToExcludeFromLogHandling()
public java.util.Set<java.lang.String> getPackagesToExcludeFromLogHandling()
public void registerCallback(FeedbackManagerCallback participant)
public void unregisterCallback(FeedbackManagerCallback participant)
public java.util.List<FeedbackManagerCallback> getFeedbackParticipants()
public boolean isIgnoredLogger(java.lang.String loggerName)
public void setLoggersToIgnore(java.util.List<java.lang.String> loggers)
public void showFeedbackDialog(boolean reportEnabled)
public void flush() throws java.io.IOException
Flush any buffered output.
java.io.IOException
public void clearExceptions()
Clears any recorded exceptions.