Revise databinding code
- Replace use of deprecated databinding APIs (untyped
PojoProperties, untyped BeanProperties, untyped WidgetProperties,
ViewerObservables, untyped ViewerProperties)
- Add more nullable annotations
- Rework code for better null analysis
- Fix potential NPE
diff --git a/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RPkgType.java b/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RPkgType.java
index af1e02b..8a274cd 100644
--- a/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RPkgType.java
+++ b/core/org.eclipse.statet.rj.services.core/srcEnv/org/eclipse/statet/rj/renv/core/RPkgType.java
@@ -14,12 +14,15 @@
package org.eclipse.statet.rj.renv.core;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Type ({@link #SOURCE source} or {@link #BINARY binary}) of R packages.
*
* @since de.walware.rj.renv.core 2.0
*/
+@NonNullByDefault
public enum RPkgType {
diff --git a/eclient/org.eclipse.statet.rj.eclient.graphics/META-INF/MANIFEST.MF b/eclient/org.eclipse.statet.rj.eclient.graphics/META-INF/MANIFEST.MF
index c465495..b225437 100644
--- a/eclient/org.eclipse.statet.rj.eclient.graphics/META-INF/MANIFEST.MF
+++ b/eclient/org.eclipse.statet.rj.eclient.graphics/META-INF/MANIFEST.MF
@@ -10,7 +10,7 @@
Require-Bundle: org.eclipse.statet.rj.services.core;bundle-version="[4.1.0,4.2.0)",
org.eclipse.statet.rj.client;bundle-version="[4.1.0,4.2.0)",
org.eclipse.core.runtime;bundle-version="3.16.0",
- org.eclipse.core.databinding;bundle-version="1.7.0",
+ org.eclipse.statet.ecommons.databinding.core;bundle-version="[4.1.0,4.2.0)",
org.eclipse.core.databinding.property,
org.eclipse.ui;bundle-version="3.6.0",
org.eclipse.jface.databinding,
diff --git a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/RGraphicsPreferencePage.java b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/RGraphicsPreferencePage.java
index b0b314f..bbad5ed 100644
--- a/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/RGraphicsPreferencePage.java
+++ b/eclient/org.eclipse.statet.rj.eclient.graphics/src/org/eclipse/statet/rj/eclient/graphics/RGraphicsPreferencePage.java
@@ -24,6 +24,7 @@
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.runtime.IStatus;
@@ -32,7 +33,7 @@
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -60,7 +61,9 @@
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.statet.ecommons.databinding.DecimalValidator;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.DecimalValidator;
import org.eclipse.statet.ecommons.ui.components.StatusInfo;
import org.eclipse.statet.ecommons.ui.dialogs.DialogUtils;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -117,7 +120,7 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (this == obj
|| (obj instanceof FontPref
&& this.prefKey.equals(((FontPref) obj).prefKey) ));
@@ -143,7 +146,7 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (this == obj
|| (obj instanceof Encoding
&& this.prefValue.equals(((Encoding) obj).prefValue) ));
@@ -390,12 +393,15 @@
this.dbc= new DataBindingContext(realm);
addBindings(this.dbc, realm);
- final AggregateValidationStatus validationStatus= new AggregateValidationStatus(this.dbc, AggregateValidationStatus.MAX_SEVERITY);
- validationStatus.addValueChangeListener(
- (final ValueChangeEvent<? extends IStatus> event) -> {
- final IStatus currentStatus= event.diff.getNewValue();
- updateStatus(currentStatus);
- } );
+ final AggregateValidationStatus validationStatus= new AggregateValidationStatus(this.dbc,
+ AggregateValidationStatus.MAX_SEVERITY );
+ validationStatus.addValueChangeListener(new IValueChangeListener<IStatus>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends IStatus> event) {
+ final IStatus currentStatus= event.diff.getNewValue();
+ updateStatus(currentStatus);
+ }
+ });
}
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
@@ -403,30 +409,38 @@
this.customVDpiVisibleValue= new WritableValue<>(realm, 96.0, Double.class);
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.customHDpiControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.customHDpiControl),
this.customHDpiVisibleValue,
- new UpdateValueStrategy().setAfterGetValidator(new DecimalValidator(10.0, 10000.0,
- "The value for Horizontal (x) DPI is invalid (10-10000)." )),
+ new UpdateValueStrategy<String, Double>()
+ .setAfterGetValidator(new DecimalValidator(10.0, 10000.0,
+ "The value for Horizontal (x) DPI is invalid (10-10000)." )),
null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.customVDpiControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.customVDpiControl),
this.customVDpiVisibleValue,
- new UpdateValueStrategy().setAfterGetValidator(new DecimalValidator(10.0, 10000.0,
- "The value for Vertical (x) DPI is invalid (10-10000)." )),
+ new UpdateValueStrategy<String, Double>()
+ .setAfterGetValidator(new DecimalValidator(10.0, 10000.0,
+ "The value for Vertical (x) DPI is invalid (10-10000)." )),
null );
- this.customHDpiVisibleValue.addValueChangeListener(
- (final ValueChangeEvent<? extends Double> event) -> {
- if (RGraphicsPreferencePage.this.customEnabled) {
- RGraphicsPreferencePage.this.customHDpiUserValue= RGraphicsPreferencePage.this.customHDpiVisibleValue.getValue();
- }
- } );
- this.customVDpiVisibleValue.addValueChangeListener(
- (final ValueChangeEvent<? extends Double> event) -> {
- if (RGraphicsPreferencePage.this.customEnabled) {
- RGraphicsPreferencePage.this.customVDpiUserValue= RGraphicsPreferencePage.this.customVDpiVisibleValue.getValue();
- }
- } );
+ this.customHDpiVisibleValue.addValueChangeListener(new IValueChangeListener<Double>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends Double> event) {
+ if (RGraphicsPreferencePage.this.customEnabled) {
+ RGraphicsPreferencePage.this.customHDpiUserValue= RGraphicsPreferencePage.this.customHDpiVisibleValue.getValue();
+ }
+ }
+ });
+ this.customVDpiVisibleValue.addValueChangeListener(new IValueChangeListener<Double>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends Double> event) {
+ if (RGraphicsPreferencePage.this.customEnabled) {
+ RGraphicsPreferencePage.this.customVDpiUserValue= RGraphicsPreferencePage.this.customVDpiVisibleValue.getValue();
+ }
+ }
+ });
}
protected void updateStatus(final IStatus status) {