*** empty log message ***
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/validation/ValidatingEContentAdapter.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/validation/ValidatingEContentAdapter.java
index a0f27b2..3fc2c29 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/validation/ValidatingEContentAdapter.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/validation/ValidatingEContentAdapter.java
@@ -69,21 +69,30 @@
}
private void analyzeDiagnostic(Diagnostic diagnostic, IMessageManager messageManager) {
+ boolean atLeastOneErroneousBinding = false;
for (Object o : _dataBindingContext.getBindings()) {
Binding binding = (Binding) o;
+ IEMFObservable emfObservable = null;
+ ISWTObservable swtObservable = null;
if (binding.getModel() instanceof IEMFObservable && binding.getTarget() instanceof ISWTObservable) {
- checkBinding((IEMFObservable) binding.getModel(), (ISWTObservable) binding.getTarget(), diagnostic, messageManager);
+ emfObservable = (IEMFObservable) binding.getModel();
+ swtObservable = (ISWTObservable) binding.getTarget();
} else if (binding.getTarget() instanceof IEMFObservable && binding.getModel() instanceof ISWTObservable) {
- checkBinding((IEMFObservable) binding.getTarget(), (ISWTObservable) binding.getModel(), diagnostic, messageManager);
- } else {
- // add an error message anyways
- messageManager.addMessage(diagnostic, diagnostic.getMessage(), null, keyMap.getMessageProviderKey(diagnostic.getSeverity()));
-
+ swtObservable = (ISWTObservable) binding.getModel();
+ emfObservable = (IEMFObservable) binding.getTarget();
}
+
+ if (emfObservable != null && swtObservable != null)
+ if (checkBinding(emfObservable, swtObservable, diagnostic, messageManager))
+ atLeastOneErroneousBinding = true;
+ }
+ if (!atLeastOneErroneousBinding) {
+ // add an error message anyways
+ messageManager.addMessage(diagnostic, diagnostic.getMessage(), null, keyMap.getMessageProviderKey(diagnostic.getSeverity()));
}
}
- private void checkBinding(IEMFObservable emfObservable, ISWTObservable swtObservable, Diagnostic diagnostic, IMessageManager messageManager) {
+ private boolean checkBinding(IEMFObservable emfObservable, ISWTObservable swtObservable, Diagnostic diagnostic, IMessageManager messageManager) {
List<?> diagnosticData = diagnostic.getData();
if (diagnosticData.size() >= 2) {
if (diagnosticData.get(0) == emfObservable.getObserved()) {
@@ -91,14 +100,17 @@
if (swtObservable.getWidget() instanceof Control) {
Control control = (Control) swtObservable.getWidget();
- if (true || control.isVisible()) {
+ if (control.isVisible())
messageManager.addMessage(swtObservable, diagnostic.getMessage(), null, keyMap.getMessageProviderKey(diagnostic.getSeverity()), control);
- } else
+ else
messageManager.addMessage(swtObservable, diagnostic.getMessage(), null, keyMap.getMessageProviderKey(diagnostic.getSeverity()));
+
+ return true;
}
}
}
}
+ return false;
}
protected static class KeyMap {