public static void handle(Throwable caught) { if (caught instanceof GwtKuraException) { GwtKuraException gee = (GwtKuraException) caught; GwtKuraErrorCode code = gee.getCode(); switch (code) { default: Info.display(CMSGS.error(), caught.getLocalizedMessage()); break; } } else if (caught instanceof StatusCodeException && ((StatusCodeException) caught).getStatusCode() == 0) { // the current operation was interrupted as the user started a new one // or navigated away from the page. // we can ignore this error and do nothing. } else { Info.display(CMSGS.error(), caught.getLocalizedMessage()); caught.printStackTrace(); } }
@SuppressWarnings("unchecked") public static boolean handleFormException(FormPanel form, Throwable caught) { boolean isWarning = false; if (caught instanceof GwtKuraException) { List<Field<?>> fields = form.getFields(); GwtKuraException gee = (GwtKuraException) caught; GwtKuraErrorCode code = gee.getCode(); switch (code) { case DUPLICATE_NAME: boolean fieldFound = false; String duplicateFieldName = gee.getArguments()[0]; for (Field<?> field : fields) { if (duplicateFieldName.equals(field.getName())) { TextField<String> textField = (TextField<String>) field; textField.markInvalid(MSGS.duplicateValue()); fieldFound = true; break; } } if (!fieldFound) { Info.display(CMSGS.error(), caught.getLocalizedMessage()); } break; case ILLEGAL_NULL_ARGUMENT: String invalidFieldName = gee.getArguments()[0]; for (Field<?> field : fields) { if (invalidFieldName.equals(field.getName())) { TextField<String> textField = (TextField<String>) field; textField.markInvalid(MSGS.invalidNullValue()); break; } } break; case ILLEGAL_ARGUMENT: String invalidFieldName1 = gee.getArguments()[0]; for (Field<?> field : fields) { if (invalidFieldName1.equals(field.getName())) { TextField<String> textField = (TextField<String>) field; textField.markInvalid(gee.getCause().getMessage()); break; } } break; case INVALID_RULE_QUERY: for (Field<?> field : fields) { if ("query".equals(field.getName())) { TextArea statement = (TextArea) field; statement.markInvalid(caught.getLocalizedMessage()); break; } } break; case WARNING: isWarning = true; Info.display(CMSGS.warning(), caught.getLocalizedMessage()); break; default: Info.display(CMSGS.error(), caught.getLocalizedMessage()); caught.printStackTrace(); break; } } else { Info.display(CMSGS.error(), caught.getLocalizedMessage()); caught.printStackTrace(); } return isWarning; }