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/r/org.eclipse.statet.nico.core/src/org/eclipse/statet/nico/core/util/TrackingConfiguration.java b/r/org.eclipse.statet.nico.core/src/org/eclipse/statet/nico/core/util/TrackingConfiguration.java
index 7b8beb0..28c99a9 100644
--- a/r/org.eclipse.statet.nico.core/src/org/eclipse/statet/nico/core/util/TrackingConfiguration.java
+++ b/r/org.eclipse.statet.nico.core/src/org/eclipse/statet/nico/core/util/TrackingConfiguration.java
@@ -18,58 +18,62 @@
import org.eclipse.core.filesystem.EFS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.models.AbstractSettingsModelObject;
import org.eclipse.statet.nico.core.runtime.SubmitType;
+@NonNullByDefault
public class TrackingConfiguration extends AbstractSettingsModelObject {
- static int DEFAULT_FILE_MODE = EFS.APPEND;
+ static int DEFAULT_FILE_MODE= EFS.APPEND;
- private final String fId;
+ private final String id;
- private String fName;
+ private String name;
- private boolean fTrackStreamInfo;
- private boolean fTrackStreamInput;
- private boolean fTrackStreamInputHistoryOnly;
- private boolean fTrackStreamOutput;
- private boolean fTrackStreamOutputTruncate;
- private int fTrackStreamOutputTruncateLines;
+ private boolean trackStreamInfo;
+ private boolean trackStreamInput;
+ private boolean trackStreamInputHistoryOnly;
+ private boolean trackStreamOutput;
+ private boolean trackStreamOutputTruncate;
+ private int trackStreamOutputTruncateLines;
- private EnumSet<SubmitType> fSubmitTypes;
+ private EnumSet<SubmitType> submitTypes;
private String fFilePath;
private int fFileMode;
- private boolean fPrependTimestamp;
+ private boolean prependTimestamp;
public TrackingConfiguration(final String id) {
- fId = id;
+ this.id= id;
- fName = ""; //$NON-NLS-1$
+ this.name= ""; //$NON-NLS-1$
loadDefaults();
}
public TrackingConfiguration(final String id, final TrackingConfiguration template) {
- fId = id;
+ this.id= id;
- fName = template.fName;
- fTrackStreamInfo = template.fTrackStreamInfo;
- fTrackStreamInput = template.fTrackStreamInput;
- fTrackStreamInputHistoryOnly = template.fTrackStreamInputHistoryOnly;
- fTrackStreamOutput = template.fTrackStreamOutput;
- fTrackStreamOutputTruncate = template.fTrackStreamOutputTruncate;
- fTrackStreamOutputTruncateLines = template.fTrackStreamOutputTruncateLines;
- fSubmitTypes = template.fSubmitTypes;
- fFilePath = template.fFilePath;
- fFileMode = template.fFileMode;
- fPrependTimestamp = template.fPrependTimestamp;
+ this.name= template.name;
+ this.trackStreamInfo= template.trackStreamInfo;
+ this.trackStreamInput= template.trackStreamInput;
+ this.trackStreamInputHistoryOnly= template.trackStreamInputHistoryOnly;
+ this.trackStreamOutput= template.trackStreamOutput;
+ this.trackStreamOutputTruncate= template.trackStreamOutputTruncate;
+ this.trackStreamOutputTruncateLines= template.trackStreamOutputTruncateLines;
+ this.submitTypes= template.submitTypes;
+ this.fFilePath= template.fFilePath;
+ this.fFileMode= template.fFileMode;
+ this.prependTimestamp= template.prependTimestamp;
}
@@ -88,106 +92,106 @@
public String getId() {
- return fId;
+ return this.id;
}
public String getName() {
- return fName;
+ return this.name;
}
public void setName(final String label) {
- final String oldValue = fName;
- fName = label;
+ final String oldValue= this.name;
+ this.name= label;
firePropertyChange("name", oldValue, label);
}
public boolean getTrackStreamInfo() {
- return fTrackStreamInfo;
+ return this.trackStreamInfo;
}
public void setTrackStreamInfo(final boolean enable) {
- final boolean oldValue = fTrackStreamInfo;
- fTrackStreamInfo = enable;
+ final boolean oldValue= this.trackStreamInfo;
+ this.trackStreamInfo= enable;
firePropertyChange("trackStreamInfo", oldValue, enable);
}
public boolean getTrackStreamInput() {
- return fTrackStreamInput;
+ return this.trackStreamInput;
}
public void setTrackStreamInput(final boolean enable) {
- final boolean oldValue = fTrackStreamInput;
- fTrackStreamInput = enable;
+ final boolean oldValue= this.trackStreamInput;
+ this.trackStreamInput= enable;
firePropertyChange("trackStreamInput", oldValue, enable);
}
public boolean getTrackStreamInputHistoryOnly() {
- return fTrackStreamInputHistoryOnly;
+ return this.trackStreamInputHistoryOnly;
}
public void setTrackStreamInputHistoryOnly(final boolean enable) {
- final boolean oldValue = fTrackStreamInputHistoryOnly;
- fTrackStreamInputHistoryOnly = enable;
+ final boolean oldValue= this.trackStreamInputHistoryOnly;
+ this.trackStreamInputHistoryOnly= enable;
firePropertyChange("trackStreamInputHistoryOnly", oldValue, enable);
}
public boolean getTrackStreamOutput() {
- return fTrackStreamOutput;
+ return this.trackStreamOutput;
}
public void setTrackStreamOutput(final boolean enable) {
- final boolean oldValue = fTrackStreamOutput;
- fTrackStreamOutput = enable;
+ final boolean oldValue= this.trackStreamOutput;
+ this.trackStreamOutput= enable;
firePropertyChange("trackStreamOutput", oldValue, enable);
}
public boolean getTrackStreamOutputTruncate() {
- return fTrackStreamOutputTruncate;
+ return this.trackStreamOutputTruncate;
}
public void setTrackStreamOutputTruncate(final boolean enable) {
- final boolean oldValue = fTrackStreamOutputTruncate;
- fTrackStreamOutputTruncate = enable;
+ final boolean oldValue= this.trackStreamOutputTruncate;
+ this.trackStreamOutputTruncate= enable;
firePropertyChange("trackStreamOutputTruncate", oldValue, enable);
}
public int getTrackStreamOutputTruncateLines() {
- return fTrackStreamOutputTruncateLines;
+ return this.trackStreamOutputTruncateLines;
}
public void setTrackStreamOutputTruncateLines(final int lines) {
- final int oldValue = fTrackStreamOutputTruncateLines;
- fTrackStreamOutputTruncateLines = lines;
+ final int oldValue= this.trackStreamOutputTruncateLines;
+ this.trackStreamOutputTruncateLines= lines;
firePropertyChange("trackStreamOutputTruncateLines", oldValue, lines);
}
public EnumSet<SubmitType> getSubmitTypes() {
- return fSubmitTypes;
+ return this.submitTypes;
}
public void setSubmitTypes(final EnumSet<SubmitType> typesToInclude) {
- final EnumSet<SubmitType> oldValue = fSubmitTypes;
- fSubmitTypes = typesToInclude;
+ final EnumSet<SubmitType> oldValue= this.submitTypes;
+ this.submitTypes= typesToInclude;
firePropertyChange("submitTypes", oldValue, typesToInclude);
}
public String getFilePath() {
- return fFilePath;
+ return this.fFilePath;
}
public void setFilePath(final String path) {
- final String oldValue = fFilePath;
- fFilePath = path;
+ final String oldValue= this.fFilePath;
+ this.fFilePath= path;
firePropertyChange("filePath", oldValue, path);
}
public int getFileMode() {
- return fFileMode;
+ return this.fFileMode;
}
public void setFileMode(final int mode) {
- final int oldValue = fFileMode;
- fFileMode = mode;
+ final int oldValue= this.fFileMode;
+ this.fFileMode= mode;
firePropertyChange("fileMode", oldValue, mode);
}
@@ -197,25 +201,25 @@
public boolean getPrependTimestamp() {
- return fPrependTimestamp;
+ return this.prependTimestamp;
}
public void setPrependTimestamp(final boolean enable) {
- final boolean oldValue = fPrependTimestamp;
- fPrependTimestamp = enable;
+ final boolean oldValue= this.prependTimestamp;
+ this.prependTimestamp= enable;
firePropertyChange("prependTimestamp", oldValue, enable);
}
@Override
public int hashCode() {
- return fId.hashCode();
+ return this.id.hashCode();
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (this == obj ||
- (obj instanceof TrackingConfiguration && fId.equals(((TrackingConfiguration) obj).fId)) );
+ (obj instanceof TrackingConfiguration && this.id.equals(((TrackingConfiguration) obj).id)) );
}
}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/Messages.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/Messages.java
index acc47b7..23105e4 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/Messages.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreferencePage.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreferencePage.java
index ae651c8..2562bf8 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreferencePage.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ConsolePreferencePage.java
@@ -20,7 +20,7 @@
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
@@ -28,7 +28,10 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -42,6 +45,7 @@
import org.eclipse.statet.nico.ui.util.SubmitTypeSelectionComposite;
+@NonNullByDefault
public class ConsolePreferencePage extends ConfigurationBlockPreferencePage {
@@ -57,6 +61,7 @@
}
+@NonNullByDefault
class ConsolePreferenceBlock extends ManagedConfigurationBlock {
@@ -66,14 +71,14 @@
private SubmitTypeSelectionComposite outputSubmitTypeControl;
- public ConsolePreferenceBlock(final StatusChangeListener statusListener) {
+ public ConsolePreferenceBlock(final @Nullable StatusChangeListener statusListener) {
super(null, statusListener);
}
@Override
protected void createBlockArea(final Composite pageComposite) {
- final Map<Preference<?>, String> prefs= new HashMap<>();
+ final Map<Preference<?>, @Nullable String> prefs= new HashMap<>();
prefs.put(ConsolePreferences.HISTORYNAVIGATION_SUBMIT_TYPES_PREF, ConsolePreferences.GROUP_ID);
prefs.put(NicoUIPreferences.OUTPUT_CHARLIMIT_PREF, ConsolePreferences.GROUP_ID);
@@ -140,10 +145,12 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.outputCharLimitControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.outputCharLimitControl),
createObservable(NicoUIPreferences.OUTPUT_CHARLIMIT_PREF),
- new UpdateValueStrategy().setAfterGetValidator(
- new IntegerValidator(100000, 1000000000, "Invalid char limit specified (100000, 1000000000).") ),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(100000, 1000000000,
+ "Invalid char limit specified (100000, 1000000000)." )),
null );
db.getContext().bindValue(
this.outputSubmitTypeControl.getObservable(),
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ResourceMappingPreferencePage.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ResourceMappingPreferencePage.java
index 0abcd97..8d704aa 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ResourceMappingPreferencePage.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/internal/nico/ui/preferences/ResourceMappingPreferencePage.java
@@ -23,7 +23,7 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -41,6 +41,9 @@
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.databinding.NotEmptyValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.net.resourcemapping.core.IResourceMapping;
@@ -63,6 +66,7 @@
import org.eclipse.statet.internal.nico.ui.NicoUIPlugin;
+@NonNullByDefault
public class ResourceMappingPreferencePage extends ConfigurationBlockPreferencePage {
@@ -78,6 +82,7 @@
}
+@NonNullByDefault
class ResourceMappingConfigurationBlock extends ConfigurationBlock {
@@ -86,7 +91,7 @@
private final IObservableList<ResourceMapping> list= new WritableList<>();
- private ResourceMappingManager manager;
+ private @Nullable ResourceMappingManager manager;
public ResourceMappingConfigurationBlock() {
@@ -110,7 +115,7 @@
this.listButtons= new ButtonGroup<ResourceMapping>(composite) {
@Override
- protected ResourceMapping edit1(final ResourceMapping item, final boolean newItem, final Object parent) {
+ protected @Nullable ResourceMapping edit1(final @Nullable ResourceMapping item, final boolean newItem, final @Nullable Object parent) {
final EditMappingDialog dialog= new EditMappingDialog(getShell(), item, newItem);
if (dialog.open() == Window.OK) {
return dialog.getResult();
@@ -210,14 +215,16 @@
@Override
public boolean performOk(final int flags) {
- if (this.manager != null) {
- this.manager.setMappings(this.list);
+ final ResourceMappingManager manager= this.manager;
+ if (manager != null) {
+ manager.setMappings(this.list);
}
return true;
}
}
+@NonNullByDefault
class EditMappingDialog extends ExtStatusDialog {
@@ -231,7 +238,7 @@
private final IObservableValue<String> remoteValue;
- public EditMappingDialog(final Shell shell, final ResourceMapping mapping, final boolean newMapping) {
+ public EditMappingDialog(final Shell shell, final @Nullable ResourceMapping mapping, final boolean newMapping) {
super(shell, (newMapping) ? WITH_DATABINDING_CONTEXT :
(WITH_DATABINDING_CONTEXT | SHOW_INITIAL_STATUS));
setTitle("Edit Resource Mapping");
@@ -292,23 +299,26 @@
db.getContext().bindValue(
this.localControl.getObservable(),
this.localValue,
- new UpdateValueStrategy().setAfterGetValidator(this.localControl.getValidator()),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.localControl.getValidator()),
null );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.hostControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.hostControl),
this.hostValue,
- new UpdateValueStrategy().setAfterGetValidator(new NotEmptyValidator(
- "Missing host; it must be specified by its hostname or IP number." )),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new NotEmptyValidator("Missing host; it must be specified by its hostname or IP number.")),
null );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.remoteControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.remoteControl),
this.remoteValue,
- new UpdateValueStrategy().setAfterGetValidator(new NotEmptyValidator(
- "Missing remote path." )),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new NotEmptyValidator("Missing remote path.")),
null );
}
- public ResourceMapping getResult() {
+ public @Nullable ResourceMapping getResult() {
try {
return new ResourceMapping(this.mappingId,
this.localValue.getValue(),
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ChooseFileHandler.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ChooseFileHandler.java
index 92ec8dd..c84892e 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ChooseFileHandler.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ChooseFileHandler.java
@@ -125,8 +125,12 @@
}
}
fNewLocationString = new WritableValue(dir, String.class);
- db.getContext().bindValue(fLocationGroup.getObservable(), fNewLocationString,
- new UpdateValueStrategy().setAfterGetValidator(fLocationGroup.getValidator()), null);
+ db.getContext().bindValue(
+ fLocationGroup.getObservable(),
+ fNewLocationString,
+ new UpdateValueStrategy<>()
+ .setAfterGetValidator(fLocationGroup.getValidator()),
+ null );
}
@Override
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ExportConsoleOutputWizard.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ExportConsoleOutputWizard.java
index f8e0676..b0e1b07 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ExportConsoleOutputWizard.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/ExportConsoleOutputWizard.java
@@ -35,7 +35,7 @@
import org.eclipse.core.runtime.jobs.IJobManager;
import org.eclipse.core.runtime.jobs.ISchedulingRule;
import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogSettings;
@@ -172,7 +172,8 @@
this.configControl.addBindings(db);
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.openControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.openControl),
this.openValue );
}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/SubmitTypeSelectionComposite.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/SubmitTypeSelectionComposite.java
index 695b356..eb0f75e 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/SubmitTypeSelectionComposite.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/SubmitTypeSelectionComposite.java
@@ -18,6 +18,7 @@
import java.util.Objects;
import org.eclipse.core.databinding.observable.Diffs;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -44,7 +45,7 @@
public static final EnumSetPref<SubmitType> SOURCE_ENCODER= new EnumSetPref<>(null, null, SubmitType.class);
- private class Observable extends AbstractSWTObservableValue {
+ private class Observable extends AbstractSWTObservableValue<EnumSet<SubmitType>> {
private EnumSet<SubmitType> lastValue;
@@ -58,14 +59,14 @@
}
@Override
- protected Object doGetValue() {
+ protected EnumSet<SubmitType> doGetValue() {
return SubmitTypeSelectionComposite.this.selectedTypes;
}
@Override
- protected void doSetValue(final Object value) {
+ protected void doSetValue(final EnumSet<SubmitType> value) {
if (value instanceof EnumSet<?>) {
- setSelection(this.lastValue= (EnumSet<SubmitType>) value);
+ setSelection(this.lastValue= value);
}
}
@@ -172,7 +173,7 @@
}
- public Observable getObservable() {
+ public IObservableValue<EnumSet<SubmitType>> getObservable() {
if (this.observable == null) {
this.observable= new Observable();
}
diff --git a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/TrackingConfigurationComposite.java b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/TrackingConfigurationComposite.java
index 2dc1915..8bc9672 100644
--- a/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/TrackingConfigurationComposite.java
+++ b/r/org.eclipse.statet.nico.ui/src/org/eclipse/statet/nico/ui/util/TrackingConfigurationComposite.java
@@ -19,10 +19,10 @@
import java.util.List;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.filesystem.EFS;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -37,9 +37,9 @@
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.NotEmptyValidator;
import org.eclipse.statet.ecommons.databinding.core.observable.ComputedOnChangeValue;
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
import org.eclipse.statet.ecommons.ui.util.VariableFilterUtils;
@@ -298,53 +298,62 @@
protected void addBindings(final DataBindingSupport db) {
if (this.nameControl != null) {
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.nameControl),
- BeanProperties.value(TrackingConfiguration.class, "name") //$NON-NLS-1$
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.nameControl),
+ BeanProperties.value(TrackingConfiguration.class, "name", String.class) //$NON-NLS-1$
.observe(this.input),
- new UpdateValueStrategy().setAfterGetValidator(new NotEmptyValidator(Messages.Tracking_Name_error_Missing_message)),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new NotEmptyValidator(Messages.Tracking_Name_error_Missing_message)),
null );
}
- final IObservableValue<Boolean> infoTargetObs= WidgetProperties.selection()
+ final IObservableValue<Boolean> infoTargetObs= WidgetProperties.buttonSelection()
.observe(this.streamInfoControl);
db.getContext().bindValue(
infoTargetObs,
- BeanProperties.value(TrackingConfiguration.class, "trackStreamInfo") //$NON-NLS-1$
+ BeanProperties.value(TrackingConfiguration.class, "trackStreamInfo", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input) );
- final IObservableValue<Boolean> inputTargetObs= WidgetProperties.selection()
+ final IObservableValue<Boolean> inputTargetObs= WidgetProperties.buttonSelection()
.observe(this.streamInputControl);
db.getContext().bindValue(inputTargetObs,
- BeanProperties.value(TrackingConfiguration.class, "trackStreamInput") //$NON-NLS-1$
+ BeanProperties.value(TrackingConfiguration.class, "trackStreamInput", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input) );
if (this.streamInputHistoryOnlyControl != null) {
db.getContext().bindValue(
- WidgetProperties.enabled().observe(this.streamInputHistoryOnlyControl),
+ WidgetProperties.enabled()
+ .observe(this.streamInputHistoryOnlyControl),
inputTargetObs );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.streamInputHistoryOnlyControl),
- BeanProperties.value(TrackingConfiguration.class, "trackStreamInputHistoryOnly") //$NON-NLS-1$
+ WidgetProperties.buttonSelection()
+ .observe(this.streamInputHistoryOnlyControl),
+ BeanProperties.value(TrackingConfiguration.class, "trackStreamInputHistoryOnly", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input) );
}
- final IObservableValue<Boolean> outputTargetObj= WidgetProperties.selection()
+ final IObservableValue<Boolean> outputTargetObj= WidgetProperties.buttonSelection()
.observe(this.streamOutputErrorControl);
- final IObservableValue<Boolean> outputModelObs= BeanProperties.value(TrackingConfiguration.class, "trackStreamOutput") //$NON-NLS-1$
+ final IObservableValue<Boolean> outputModelObs= BeanProperties
+ .value(TrackingConfiguration.class, "trackStreamOutput", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input);
db.getContext().bindValue(outputTargetObj, outputModelObs);
if (this.streamOutputErrorTruncateControl != null) {
- final IObservableValue<Boolean> outputTruncateTargetObs= WidgetProperties.selection()
- .observe(this.streamOutputErrorTruncateControl);
- final IObservableValue<Boolean> outputTruncateModelObs= BeanProperties.value(TrackingConfiguration.class, "trackStreamOutputTruncate") //$NON-NLS-1$
+ final IObservableValue<Boolean> outputTruncateTargetObs=
+ WidgetProperties.buttonSelection()
+ .observe(this.streamOutputErrorTruncateControl);
+ final IObservableValue<Boolean> outputTruncateModelObs= BeanProperties
+ .value(TrackingConfiguration.class, "trackStreamOutputTruncate", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input);
db.getContext().bindValue(
- WidgetProperties.enabled().observe(this.streamOutputErrorTruncateControl),
+ WidgetProperties.enabled()
+ .observe(this.streamOutputErrorTruncateControl),
outputTargetObj );
db.getContext().bindValue(
outputTruncateTargetObs,
outputTruncateModelObs );
db.getContext().bindValue(
- WidgetProperties.enabled().observe(this.streamOutputErrorTruncateLinesControl),
+ WidgetProperties.enabled()
+ .observe(this.streamOutputErrorTruncateLinesControl),
new ComputedOnChangeValue<Boolean>(Boolean.class, outputModelObs, outputTruncateModelObs) {
@Override
protected Boolean calculate() {
@@ -354,31 +363,36 @@
}
});
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.streamOutputErrorTruncateLinesControl),
- BeanProperties.value(TrackingConfiguration.class, "trackStreamOutputTruncateLines") //$NON-NLS-1$
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.streamOutputErrorTruncateLinesControl),
+ BeanProperties.value(TrackingConfiguration.class, "trackStreamOutputTruncateLines", Integer.TYPE) //$NON-NLS-1$
.observe(this.input),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(2, 1000000,
- Messages.Tracking_OutputStream_TruncateLines_error_Invalid_message )),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(2, 1000000,
+ Messages.Tracking_OutputStream_TruncateLines_error_Invalid_message )),
null );
}
if (this.submitTypeControl != null) {
db.getContext().bindValue(
this.submitTypeControl.getObservable(),
- BeanProperties.value(TrackingConfiguration.class, "submitTypes") //$NON-NLS-1$
+ BeanProperties.value(TrackingConfiguration.class, "submitTypes", EnumSet.class) //$NON-NLS-1$
.observe(this.input) );
}
db.getContext().bindValue(
this.filePathControl.getObservable(),
- BeanProperties.value(TrackingConfiguration.class, "filePath") //$NON-NLS-1$
+ BeanProperties.value(TrackingConfiguration.class, "filePath", String.class) //$NON-NLS-1$
.observe(this.input),
- new UpdateValueStrategy().setAfterGetValidator(this.filePathControl.getValidator()),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.filePathControl.getValidator()),
null );
- final IObservableValue<Integer> fileModeModelObs= BeanProperties.value(TrackingConfiguration.class, "fileMode") //$NON-NLS-1$
- .observe(this.input);
+ final IObservableValue<Integer> fileModeModelObs=
+ BeanProperties.value(TrackingConfiguration.class, "fileMode", Integer.TYPE) //$NON-NLS-1$
+ .observe(this.input);
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.fileAppendControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.fileAppendControl),
new ComputedOnChangeValue<Boolean>(Boolean.class, fileModeModelObs) {
@Override
protected Boolean calculate() {
@@ -392,7 +406,8 @@
}
});
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.fileOverwriteControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.fileOverwriteControl),
new ComputedOnChangeValue<Boolean>(Boolean.class, fileModeModelObs) {
@Override
protected Boolean calculate() {
@@ -408,8 +423,9 @@
if (this.prependTimestampControl != null) {
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.prependTimestampControl),
- BeanProperties.value(TrackingConfiguration.class, "prependTimestamp") //$NON-NLS-1$
+ WidgetProperties.buttonSelection()
+ .observe(this.prependTimestampControl),
+ BeanProperties.value(TrackingConfiguration.class, "prependTimestamp", Boolean.TYPE) //$NON-NLS-1$
.observe(this.input) );
}
}
diff --git a/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigMainTab.java b/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigMainTab.java
index a0225e2..5328917 100644
--- a/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigMainTab.java
+++ b/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigMainTab.java
@@ -22,11 +22,10 @@
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.variables.IStringVariable;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -42,7 +41,10 @@
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.core.validation.UpdateableErrorValidator;
import org.eclipse.statet.ecommons.debug.ui.config.LaunchConfigPresets;
import org.eclipse.statet.ecommons.debug.ui.config.LaunchConfigTabWithPresets;
@@ -65,6 +67,7 @@
import org.eclipse.statet.r.ui.sourceediting.RTemplateSourceViewerConfigurator;
+@NonNullByDefault
public class AppControlConfigMainTab extends LaunchConfigTabWithPresets {
@@ -76,7 +79,7 @@
private final IObservableValue<String> appPathValue;
private final IObservableValue<String> appHostValue;
- private final IObservableValue<Integer> appPortValue;
+ private final IObservableValue<@Nullable Integer> appPortValue;
private final IObservableValue<Boolean> startStopRunningValue;
private final IObservableValue<String> startRSnippetValue;
@@ -280,28 +283,36 @@
// null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.sHostControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.sHostControl),
this.appHostValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.sPortControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.sPortControl),
this.appPortValue,
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(0, 65535, true,
- Messages.Operation_AppPort_error_SpecInvalid_message )),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(
+ new IntegerValidator(0, 65535, true,
+ Messages.Operation_AppPort_error_SpecInvalid_message )),
null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.startRSnippetEditor.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.startRSnippetEditor.getTextControl()),
this.startRSnippetValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(new VariableTextValidator(
- this.rSnippetVariableResolver,
- Messages.Operation_StartApp_RCode_error_SpecInvalid_message ))),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ new VariableTextValidator(
+ this.rSnippetVariableResolver,
+ Messages.Operation_StartApp_RCode_error_SpecInvalid_message ))),
null );
dbc.bindValue(
- WidgetProperties.selection().observe(this.startStopRunningControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.startStopRunningControl),
this.startStopRunningValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.stopRSnippetEditor.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.stopRSnippetEditor.getTextControl()),
this.stopRSnippetValue );
}
@@ -313,60 +324,33 @@
@Override
protected void doInitialize(final ILaunchConfiguration configuration) {
-// { String path= ""; //$NON-NLS-1$
-// try {
-// path= configuration.getAttribute(AppControlConfig.EXPL_SOURCE_PATH_ATTR_NAME, path);
-// }
-// catch (final CoreException e) {
-// logReadingError(e);
-// }
-// this.appPathValue.setValue(path);
-// }
+// this.appPathValue.setValue(readAttribute(configuration, AppControlConfigs.EXPL_SOURCE_PATH_ATTR_NAME,
+// "" )); //$NON-NLS-1$
- { String text= ""; //$NON-NLS-1$
- try {
- text= configuration.getAttribute(AppControlConfigs.APP_HOST_ATTR_NAME, text);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final String text= readAttribute(configuration,
+ AppControlConfigs.APP_HOST_ATTR_NAME,
+ "" ); //$NON-NLS-1$
this.appHostValue.setValue(text);
}
- { int port= 0;
- try {
- port= configuration.getAttribute(AppControlConfigs.APP_PORT_ATTR_NAME, port);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final int port= readAttribute(configuration,
+ AppControlConfigs.APP_PORT_ATTR_NAME,
+ 0 );
this.appPortValue.setValue((port != 0) ? Integer.valueOf(port) : null);
}
- { int mode= 0;
- try {
- mode= configuration.getAttribute(AppControlConfigs.START_STOP_BLOCKING_TASKS_MODE_ATTR_NAME, mode);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final int mode= readAttribute(configuration,
+ AppControlConfigs.START_STOP_BLOCKING_TASKS_MODE_ATTR_NAME,
+ 0 );
this.startStopRunningValue.setValue(mode > 0);
}
- { String code= ""; //$NON-NLS-1$
- try {
- code= configuration.getAttribute(AppControlConfigs.START_R_SNIPPET_CODE_ATTR_NAME, code);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final String code= readAttribute(configuration,
+ AppControlConfigs.START_R_SNIPPET_CODE_ATTR_NAME,
+ "" ); //$NON-NLS-1$
this.startRSnippetValue.setValue(code);
}
- { String code= ""; //$NON-NLS-1$
- try {
- code= configuration.getAttribute(AppControlConfigs.STOP_R_SNIPPET_CODE_ATTR_NAME, code);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final String code= readAttribute(configuration,
+ AppControlConfigs.STOP_R_SNIPPET_CODE_ATTR_NAME,
+ "" ); //$NON-NLS-1$
this.stopRSnippetValue.setValue(code);
}
}
diff --git a/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigViewTab.java b/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigViewTab.java
index 8a06434..b4d9118 100644
--- a/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigViewTab.java
+++ b/r/org.eclipse.statet.r.apps/src/org/eclipse/statet/internal/r/apps/ui/launching/AppControlConfigViewTab.java
@@ -14,6 +14,10 @@
package org.eclipse.statet.internal.r.apps.ui.launching;
+import static org.eclipse.statet.ecommons.databinding.core.observable.ObservableUtils.typed;
+import static org.eclipse.statet.internal.r.apps.ui.launching.AppControlConfigs.VARIABLES_CODE_ATTR_NAME;
+import static org.eclipse.statet.internal.r.apps.ui.launching.AppControlConfigs.VARIABLES_VIEWER_ACTION_ATTR_NAME;
+import static org.eclipse.statet.internal.r.apps.ui.launching.AppControlConfigs.VIEWER_ID_ATTR_NAME;
import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
import org.eclipse.core.databinding.DataBindingContext;
@@ -22,11 +26,10 @@
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.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewerProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -101,13 +104,15 @@
return this.label;
}
- public Composite enable() {
+ public @Nullable Composite enable() {
+ Composite control= this.detailControl;
if (this.id != null) {
- if (this.detailControl == null) {
- this.detailControl= createControl(AppControlConfigViewTab.this.viewerDetailControl);
+ if (control == null) {
+ control= createControl(AppControlConfigViewTab.this.viewerDetailControl);
+ this.detailControl= control;
}
}
- return this.detailControl;
+ return control;
}
public void disable() {
@@ -288,26 +293,29 @@
@Override
protected void addBindings(final DataBindingContext dbc) {
dbc.bindValue(
- ViewerProperties.singleSelection().observe(this.viewerSelectionViewer),
+ ViewerProperties.singleSelection()
+ .observe(this.viewerSelectionViewer),
this.viewerValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.variablesCodeEditor.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.variablesCodeEditor.getTextControl()),
this.variablesCodeValue );
dbc.bindValue(
- WidgetProperties.selection().observe(this.variablesActionControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.variablesActionControl),
this.variablesActionValue );
}
@Override
public void handleValueChange(final ValueChangeEvent<?> event) {
if (event.getObservable() == this.viewerValue) {
- final ViewerItem oldItem= (ViewerItem) event.diff.getOldValue();
+ final ViewerItem oldItem= typed(event, this.viewerValue).diff.getOldValue();
if (oldItem != null) {
oldItem.disable();
}
- final ViewerItem newItem= (ViewerItem) event.diff.getNewValue();
+ final ViewerItem newItem= typed(event, this.viewerValue).diff.getNewValue();
if (newItem != null) {
this.viewerDetailLayout.topControl= newItem.enable();
}
@@ -326,34 +334,22 @@
@Override
protected void doInitialize(final ILaunchConfiguration configuration) {
- { String id= ""; //$NON-NLS-1$
- try {
- id= configuration.getAttribute(AppControlConfigs.VIEWER_ID_ATTR_NAME, id);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- id= id.intern();
+ { final String id= readAttribute(configuration,
+ VIEWER_ID_ATTR_NAME,
+ "") //$NON-NLS-1$
+ .intern();
final ViewerItem item= getViewerItem(id);
this.viewerValue.setValue(item);
}
- { String code= ""; //$NON-NLS-1$
- try {
- code= configuration.getAttribute(AppControlConfigs.VARIABLES_CODE_ATTR_NAME, code);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final String code= readAttribute(configuration,
+ VARIABLES_CODE_ATTR_NAME,
+ "" ); //$NON-NLS-1$
this.variablesCodeValue.setValue(code);
}
- { String action= ""; //$NON-NLS-1$
- try {
- action= configuration.getAttribute(AppControlConfigs.VARIABLES_VIEWER_ACTION_ATTR_NAME, action);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
+ { final String action= readAttribute(configuration,
+ VARIABLES_VIEWER_ACTION_ATTR_NAME,
+ ""); //$NON-NLS-1$
this.variablesActionValue.setValue(action.equals(AppControlConfigs.SHOW_ACTION_ID));
}
}
@@ -361,14 +357,14 @@
@Override
protected void doSave(final ILaunchConfigurationWorkingCopy configuration) {
{ final ViewerItem item= this.viewerValue.getValue();
- configuration.setAttribute(AppControlConfigs.VIEWER_ID_ATTR_NAME, item.getId());
+ configuration.setAttribute(VIEWER_ID_ATTR_NAME, item.getId());
}
{ final String code= this.variablesCodeValue.getValue();
- configuration.setAttribute(AppControlConfigs.VARIABLES_CODE_ATTR_NAME, code);
+ configuration.setAttribute(VARIABLES_CODE_ATTR_NAME, code);
}
{ final Boolean enabled= this.variablesActionValue.getValue();
- configuration.setAttribute(AppControlConfigs.VARIABLES_VIEWER_ACTION_ATTR_NAME,
+ configuration.setAttribute(VARIABLES_VIEWER_ACTION_ATTR_NAME,
(enabled) ? AppControlConfigs.SHOW_ACTION_ID : null );
}
}
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/cmd/ui/launching/RCmdMainTab.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/cmd/ui/launching/RCmdMainTab.java
index ddc7593..3ccfb3c 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/cmd/ui/launching/RCmdMainTab.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/cmd/ui/launching/RCmdMainTab.java
@@ -24,9 +24,10 @@
import org.eclipse.core.databinding.Binding;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
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.databinding.validation.IValidator;
@@ -38,8 +39,8 @@
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.TrayDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -58,6 +59,7 @@
import org.eclipse.ui.statushandlers.StatusManager;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ecommons.databinding.core.validation.UpdateableErrorValidator;
import org.eclipse.statet.ecommons.debug.core.util.LaunchUtils;
@@ -288,73 +290,86 @@
@Override
protected void addBindings(final DataBindingContext dbc) {
- @SuppressWarnings("unchecked")
- final IObservableValue<Cmd> cmdSelection= ViewersObservables.observeSingleSelection(this.cmdCombo);
- dbc.bindValue(cmdSelection, this.cmdValue, null, null);
- final IValidator cmdValidator=
- (final Object value) -> {
- final String s= (String) value;
- if (s == null || s.trim().isEmpty()) {
+ final IObservableValue<Cmd> cmdSelection= ViewerProperties.singleSelection(Cmd.class)
+ .observe(this.cmdCombo);
+ dbc.bindValue(
+ cmdSelection,
+ this.cmdValue );
+ final IValidator<@Nullable String> cmdValidator= (final @Nullable String value) -> {
+ if (value == null || value.trim().isEmpty()) {
return ValidationStatus.warning(Messages.MainTab_error_MissingCMD_message);
}
return ValidationStatus.ok();
};
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.cmdText),
- BeanProperties.value(Cmd.class, "command").observeDetail(cmdSelection), //$NON-NLS-1$
- new UpdateValueStrategy().setAfterGetValidator(cmdValidator),
- new UpdateValueStrategy().setBeforeSetValidator(cmdValidator) );
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.cmdText),
+ BeanProperties.value(Cmd.class, "command", String.class) //$NON-NLS-1$
+ .observeDetail(cmdSelection),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(cmdValidator),
+ new UpdateValueStrategy<String, String>()
+ .setBeforeSetValidator(cmdValidator) );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.argumentsControl.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.argumentsControl.getTextControl()),
this.argumentsValue );
this.resourceControl.getValidator().setOnLateResolve(IStatus.WARNING);
this.resourceControl.getValidator().setOnEmpty(IStatus.OK);
this.resourceControl.getValidator().setIgnoreRelative(true);
- final Binding resourceBinding= dbc.bindValue(this.resourceControl.getObservable(), this.resourceValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(this.resourceControl.getValidator())),
+ final Binding resourceBinding= dbc.bindValue(
+ this.resourceControl.getObservable(),
+ this.resourceValue,
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ this.resourceControl.getValidator() )),
null );
- cmdSelection.addValueChangeListener(
- (final ValueChangeEvent<? extends Cmd> event) -> {
- final Cmd cmd= event.diff.getNewValue();
- if (cmd != null) {
- RCmdMainTab.this.cmdText.setEditable(cmd.getType() == Cmd.CUSTOM);
- String label;
- int mode= 0;
- switch (cmd.getType()) {
- case Cmd.PACKAGE_DIR:
- label= Messages.MainTab_Resource_PackageDir_label;
- mode= ResourceInputComposite.MODE_DIRECTORY;
- break;
- case Cmd.PACKAGE_DIR_OR_ARCHIVE:
- label= Messages.MainTab_Resource_PackageDirOrArchive_label;
- mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
- break;
- case Cmd.DOC:
- label= Messages.MainTab_Resource_Doc_label;
- mode= ResourceInputComposite.MODE_FILE;
- break;
- case Cmd.DOC_OR_DIR:
- label= Messages.MainTab_Resource_DocOrDir_label;
- mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
- break;
- default: // Cmd.CUSTOM:
- label= Messages.MainTab_Resource_Other_label;
- mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
- break;
- }
- RCmdMainTab.this.resourceControl.setResourceLabel(label);
- RCmdMainTab.this.resourceControl.setMode(mode | ResourceInputComposite.MODE_OPEN);
- resourceBinding.validateTargetToModel();
+ cmdSelection.addValueChangeListener(new IValueChangeListener<Cmd>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends Cmd> event) {
+ final Cmd cmd= event.diff.getNewValue();
+ if (cmd != null) {
+ RCmdMainTab.this.cmdText.setEditable(cmd.getType() == Cmd.CUSTOM);
+ String label;
+ int mode= 0;
+ switch (cmd.getType()) {
+ case Cmd.PACKAGE_DIR:
+ label= Messages.MainTab_Resource_PackageDir_label;
+ mode= ResourceInputComposite.MODE_DIRECTORY;
+ break;
+ case Cmd.PACKAGE_DIR_OR_ARCHIVE:
+ label= Messages.MainTab_Resource_PackageDirOrArchive_label;
+ mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
+ break;
+ case Cmd.DOC:
+ label= Messages.MainTab_Resource_Doc_label;
+ mode= ResourceInputComposite.MODE_FILE;
+ break;
+ case Cmd.DOC_OR_DIR:
+ label= Messages.MainTab_Resource_DocOrDir_label;
+ mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
+ break;
+ default: // Cmd.CUSTOM:
+ label= Messages.MainTab_Resource_Other_label;
+ mode= ResourceInputComposite.MODE_FILE | ResourceInputComposite.MODE_DIRECTORY;
+ break;
}
- } );
+ RCmdMainTab.this.resourceControl.setResourceLabel(label);
+ RCmdMainTab.this.resourceControl.setMode(mode | ResourceInputComposite.MODE_OPEN);
+ resourceBinding.validateTargetToModel();
+ }
+ }
+ });
this.workingDirectoryControl.getValidator().setOnEmpty(IStatus.OK);
- dbc.bindValue(this.workingDirectoryControl.getObservable(), this.workingDirectoryValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(this.workingDirectoryControl.getValidator())),
+ dbc.bindValue(
+ this.workingDirectoryControl.getObservable(),
+ this.workingDirectoryValue,
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ this.workingDirectoryControl.getValidator() )),
null );
}
@@ -371,46 +386,28 @@
protected void doInitialize(final ILaunchConfiguration configuration) {
resetCommands();
- Cmd cmd= null;
- { try {
- final String command= configuration.getAttribute(RCmdLaunching.R_CMD_COMMAND_ATTR_NAME, ""); //$NON-NLS-1$
- for (final Cmd candidate : this.commands) {
- if (candidate.getCommand().equals(command)) {
- cmd= candidate;
- break;
- }
- }
- if (cmd == null) {
- this.customCommand.setCommand(command);
- cmd= this.customCommand;
+ { final String command= readAttribute(configuration,
+ RCmdLaunching.R_CMD_COMMAND_ATTR_NAME,
+ "" ); //$NON-NLS-1$
+ Cmd cmd= null;
+ for (final Cmd candidate : this.commands) {
+ if (candidate.getCommand().equals(command)) {
+ cmd= candidate;
+ break;
}
}
- catch (final CoreException e) {
- cmd= this.commands[0];
- logReadingError(e);
+ if (cmd == null) {
+ this.customCommand.setCommand(command);
+ cmd= this.customCommand;
}
this.cmdValue.setValue(cmd);
}
- { String value;
- try {
- value= configuration.getAttribute(RCmdLaunching.R_CMD_OPTIONS_ATTR_NAME, ""); //$NON-NLS-1$
-
- }
- catch (final CoreException e) {
- value= ""; //$NON-NLS-1$
- logReadingError(e);
- }
- this.argumentsValue.setValue(value);
- }
- { String value;
- try {
- value= configuration.getAttribute(RCmdLaunching.R_CMD_RESOURCE_ATTR_NAME, ""); //$NON-NLS-1$
- }
- catch (final CoreException e) {
- value= ""; //$NON-NLS-1$
- }
- this.resourceValue.setValue(value);
- }
+ this.argumentsValue.setValue(readAttribute(configuration,
+ RCmdLaunching.R_CMD_OPTIONS_ATTR_NAME,
+ "" )); //$NON-NLS-1$
+ this.resourceValue.setValue(readAttribute(configuration,
+ RCmdLaunching.R_CMD_RESOURCE_ATTR_NAME,
+ "" )); //$NON-NLS-1$
{ String value;
try {
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/Messages.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/Messages.java
index 0a96852..8beddf3 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/Messages.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleMainTab.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleMainTab.java
index a166fad..ac22413 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleMainTab.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleMainTab.java
@@ -23,6 +23,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.databinding.validation.IValidator;
@@ -35,8 +36,8 @@
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.TrayDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -262,44 +263,48 @@
@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
- IValidator typeValidator= null;
+ IValidator<RConsoleType> typeValidator= null;
if (getLaunchConfigurationDialog().getMode().equals(ILaunchManager.DEBUG_MODE)) {
- typeValidator= new UpdateableErrorValidator((
- final Object value) -> {
- final RConsoleType type= (RConsoleType) value;
+ typeValidator= new UpdateableErrorValidator<>((final RConsoleType type) -> {
if (!type.isDebugSupported()) {
return ValidationStatus.error(NLS.bind(
"R launch type ''{0}'' does not support debug mode.",
type.getName() ));
}
return ValidationStatus.ok();
- } );
+ });
}
dbc.bindValue(
- ViewersObservables.observeSingleSelection(this.typesCombo),
+ ViewerProperties.singleSelection(RConsoleType.class)
+ .observe(this.typesCombo),
this.typeValue,
(typeValidator != null) ?
- new UpdateValueStrategy().setAfterGetValidator(typeValidator) :
+ new UpdateValueStrategy<RConsoleType, RConsoleType>()
+ .setAfterGetValidator(typeValidator) :
null,
null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.argumentsControl.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.argumentsControl.getTextControl()),
this.argumentsValue );
this.workingDirectoryControl.getValidator().setOnEmpty(IStatus.OK);
dbc.bindValue(
this.workingDirectoryControl.getObservable(),
this.workingDirectoryValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(this.workingDirectoryControl.getValidator()) ),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ this.workingDirectoryControl.getValidator() )),
null );
- this.typeValue.addValueChangeListener(
- (final ValueChangeEvent<? extends RConsoleType> event) -> {
- final Object newValue= event.diff.getNewValue();
- updateType((RConsoleType) newValue);
- } );
+ this.typeValue.addValueChangeListener(new IValueChangeListener<RConsoleType>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends RConsoleType> event) {
+ final Object newValue= event.diff.getNewValue();
+ updateType((RConsoleType) newValue);
+ }
+ });
}
public RConsoleType getType() {
@@ -326,46 +331,41 @@
@Override
protected void doInitialize(final ILaunchConfiguration configuration) {
- String type= null;
- try {
- type= configuration.getAttribute(RConsoleLaunching.ATTR_TYPE, ""); //$NON-NLS-1$
+ { String type= readAttribute(configuration,
+ RConsoleLaunching.ATTR_TYPE,
+ "" ); //$NON-NLS-1$
// convert old rterm to new rj
if (type.equals("rterm")) { //$NON-NLS-1$
type= RConsoleLaunching.LOCAL_RTERM;
}
- } catch (final CoreException e) {
- type= ""; //$NON-NLS-1$
- logReadingError(e);
- }
- int i= 0;
- for (; i < this.types.length; i++) {
- if (this.types[i].getId().equals(type)) {
- this.typeValue.setValue(this.types[i]);
- break;
+ int i= 0;
+ for (; i < this.types.length; i++) {
+ if (this.types[i].getId().equals(type)) {
+ this.typeValue.setValue(this.types[i]);
+ break;
+ }
+ }
+ if (i >= this.types.length) {
+ this.typeValue.setValue(this.defaultType);
}
}
- if (i >= this.types.length) {
- this.typeValue.setValue(this.defaultType);
+
+ { String wd= null;
+ try {
+ wd= REnvTab.readWorkingDirectory(configuration);
+ }
+ catch (final CoreException e) {
+ wd= ""; //$NON-NLS-1$
+ logReadingError(e);
+ }
+ this.workingDirectoryValue.setValue(wd);
}
- String wd= null;
- try {
- wd= REnvTab.readWorkingDirectory(configuration);
+ { final String options= readAttribute(configuration,
+ RConsoleLaunching.ATTR_OPTIONS,
+ "" ); //$NON-NLS-1$
+ this.argumentsValue.setValue(options);
}
- catch (final CoreException e) {
- wd= ""; //$NON-NLS-1$
- logReadingError(e);
- }
- this.workingDirectoryValue.setValue(wd);
-
- String options= null;
- try {
- options= configuration.getAttribute(RConsoleLaunching.ATTR_OPTIONS, ""); //$NON-NLS-1$
- } catch (final CoreException e) {
- options= ""; //$NON-NLS-1$
- logReadingError(e);
- }
- this.argumentsValue.setValue(options);
checkHelp(configuration);
}
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleOptionsTab.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleOptionsTab.java
index 49b3ccc..c810f88 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleOptionsTab.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RConsoleOptionsTab.java
@@ -33,14 +33,15 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
@@ -53,7 +54,10 @@
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.SWTMultiEnabledObservable;
import org.eclipse.statet.ecommons.debug.ui.config.LaunchConfigTabWithDbc;
import org.eclipse.statet.ecommons.templates.TemplateVariableProcessor;
@@ -86,6 +90,7 @@
* <li>Option for a startup snippet</li>
* </ul>
*/
+@NonNullByDefault
public class RConsoleOptionsTab extends LaunchConfigTabWithDbc {
@@ -231,7 +236,8 @@
this.trackingButtons= new ButtonGroup<TrackingConfiguration>(group) {
@Override
- protected TrackingConfiguration edit1(TrackingConfiguration item, final boolean newItem, final Object parent) {
+ protected @Nullable TrackingConfiguration edit1(@Nullable TrackingConfiguration item,
+ final boolean newItem, final @Nullable Object parent) {
TrackingConfigurationDialog dialog;
if (!newItem && item != null && item.getId().equals(HistoryTrackingConfiguration.HISTORY_TRACKING_ID)) {
item= new HistoryTrackingConfiguration(item.getId(), (HistoryTrackingConfiguration) item);
@@ -355,43 +361,61 @@
@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
dbc.bindValue(
- WidgetProperties.selection().observe(this.pinControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.pinControl),
this.pinValue );
- this.trackingTable.setContentProvider(new ObservableListContentProvider());
+ this.trackingTable.setContentProvider(new ObservableListContentProvider<TrackingConfiguration>());
this.trackingTable.setInput(this.trackingList);
- dbc.bindValue(new SnippetEditorObservable(realm, this.startupSnippetEditor, SWT.Modify), this.startupSnippetValue, null, null);
+ dbc.bindValue(
+ new SnippetEditorObservable(realm, this.startupSnippetEditor, SWT.Modify),
+ this.startupSnippetValue );
dbc.bindValue(
- WidgetProperties.selection().observe(this.rHelpByStatetControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.rHelpByStatetControl),
this.rHelpByStatetValue );
dbc.bindValue(
- WidgetProperties.selection().observe(this.rGraphicsByStatetControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.rGraphicsByStatetControl),
this.rGraphicsByStatetValue );
dbc.bindValue(
- WidgetProperties.selection().observe(this.rDbgExtControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.rDbgExtControl),
this.rDbgExtValue );
- final ISWTObservableValue objectDBTargetObs= WidgetProperties.selection().observe(this.objectDBEnabledControl);
- dbc.bindValue(objectDBTargetObs, this.objectDBEnabledValue);
+ final ISWTObservableValue<Boolean> objectDBTargetObs= WidgetProperties.buttonSelection()
+ .observe(this.objectDBEnabledControl);
dbc.bindValue(
- WidgetProperties.selection().observe(this.objectDBAutoEnabledControl),
+ objectDBTargetObs,
+ this.objectDBEnabledValue );
+ dbc.bindValue(
+ WidgetProperties.buttonSelection()
+ .observe(this.objectDBAutoEnabledControl),
this.objectDBAutoEnabledValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.objectDBListsChildrenControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.objectDBListsChildrenControl),
this.objectDBListsChildrenValue,
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(100, Integer.MAX_VALUE, "Invalid max value for length of R lists to fetch (100-).")),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(100, Integer.MAX_VALUE,
+ "Invalid max value for length of R lists to fetch (100-)." )),
null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.objectDBEnvsChildrenControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.objectDBEnvsChildrenControl),
this.objectDBEnvsChildrenValue,
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(100, Integer.MAX_VALUE, "Invalid max value for length of R environments to fetch (100-).")),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(100, Integer.MAX_VALUE,
+ "Invalid max value for length of R environments to fetch (100-)." )),
null );
dbc.bindValue(new SWTMultiEnabledObservable(realm, new Control[] {
- this.objectDBAutoEnabledControl, this.objectDBEnvsChildrenControl, this.objectDBListsChildrenControl,
- }, null),
+ this.objectDBAutoEnabledControl,
+ this.objectDBEnvsChildrenControl,
+ this.objectDBListsChildrenControl,
+ }, null ),
objectDBTargetObs );
this.trackingButtons.connectTo(this.trackingTable,
@@ -404,7 +428,10 @@
});
this.trackingButtons.setCheckedModel(this.trackingEnabledSet);
- dbc.bindSet(ViewersObservables.observeCheckedElements(this.trackingTable, TrackingConfiguration.class), this.trackingEnabledSet);
+ dbc.bindSet(
+ ViewerProperties.checkedElements(TrackingConfiguration.class)
+ .observe((ICheckable)this.trackingTable),
+ this.trackingEnabledSet );
}
@@ -414,117 +441,60 @@
@Override
protected void doInitialize(final ILaunchConfiguration configuration) {
- boolean pin;
- try {
- pin= configuration.getAttribute(RConsoleLaunching.ATTR_PIN_CONSOLE, false);
- }
- catch (final CoreException e) {
- pin= false;
- logReadingError(e);
- }
- this.pinValue.setValue(pin);
+ this.pinValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_PIN_CONSOLE,
+ false ));
- { boolean enabled= true;
- try {
- enabled= configuration.getAttribute(ATTR_INTEGRATION_RHELP_ENABLED, enabled);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.rHelpByStatetValue.setValue(enabled);
- }
- { boolean enabled= true;
- try {
- enabled= configuration.getAttribute(ATTR_INTEGRATION_RGRAPHICS_ASDEFAULT, enabled);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.rGraphicsByStatetValue.setValue(enabled);
- }
- { boolean enabled= true;
- try {
- enabled= configuration.getAttribute(ATTR_INTEGRATION_RDBGEXT_ENABLED, enabled);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.rDbgExtValue.setValue(enabled);
- }
+ this.rHelpByStatetValue.setValue(readAttribute(configuration,
+ ATTR_INTEGRATION_RHELP_ENABLED,
+ true ));
+ this.rGraphicsByStatetValue.setValue(readAttribute(configuration,
+ ATTR_INTEGRATION_RGRAPHICS_ASDEFAULT,
+ true ));
+ this.rDbgExtValue.setValue(readAttribute(configuration,
+ ATTR_INTEGRATION_RDBGEXT_ENABLED,
+ true ));
- String startupSnippet;
- try {
- startupSnippet= configuration.getAttribute(RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET, ""); //$NON-NLS-1$
- }
- catch (final CoreException e) {
- startupSnippet= ""; //$NON-NLS-1$
- logReadingError(e);
- }
- this.startupSnippetValue.setValue(startupSnippet);
+ this.startupSnippetValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET,
+ "" )); //$NON-NLS-1$
- { boolean enabled= true;
- try {
- enabled= configuration.getAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENABLED, enabled);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.objectDBEnabledValue.setValue(enabled);
- }
- { boolean enabled= true;
- try {
- enabled= configuration.getAttribute(RConsoleLaunching.ATTR_OBJECTDB_AUTOREFRESH_ENABLED, enabled);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.objectDBAutoEnabledValue.setValue(enabled);
- }
- { int max= 200000;
- try {
- max= configuration.getAttribute(RConsoleLaunching.ATTR_OBJECTDB_LISTS_MAX_LENGTH, max);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.objectDBListsChildrenValue.setValue(max);
- }
- { int max= 20000;
- try {
- max= configuration.getAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENVS_MAX_LENGTH, max);
- }
- catch (final CoreException e) {
- logReadingError(e);
- }
- this.objectDBEnvsChildrenValue.setValue(max);
- }
+ this.objectDBEnabledValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_OBJECTDB_ENABLED,
+ true ));
+
+ this.objectDBAutoEnabledValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_OBJECTDB_AUTOREFRESH_ENABLED,
+ true ));
+ this.objectDBListsChildrenValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_OBJECTDB_LISTS_MAX_LENGTH,
+ 200000 ));
+ this.objectDBEnvsChildrenValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_OBJECTDB_ENVS_MAX_LENGTH,
+ 20000 ));
{ this.trackingList.clear();
this.trackingMaxCustomId= 0;
- List<String> trackingIds= Collections.emptyList();
- try {
- trackingIds= configuration.getAttribute(TRACKING_IDS, trackingIds);
- for (final String id : trackingIds) {
- final TrackingConfiguration trackingConfig= id.equals(HistoryTrackingConfiguration.HISTORY_TRACKING_ID) ?
- new HistoryTrackingConfiguration(id) : new TrackingConfiguration(id);
- try {
- TRACKING_UTIL.load(trackingConfig, configuration);
- this.trackingList.add(trackingConfig);
- if (id.startsWith(CUSTOM_TRACKING_ID_PREFIX)) {
- try {
- final int num= Integer.parseInt(id.substring(CUSTOM_TRACKING_ID_PREFIX.length()));
- this.trackingMaxCustomId= Math.max(this.trackingMaxCustomId, num);
- } catch (final Exception e) {}
- }
- }
- catch (final CoreException e) {
- trackingIds.remove(id);
- logReadingError(e);
+ final List<String> trackingIds= readAttribute(configuration,
+ TRACKING_IDS,
+ Collections.emptyList() );
+ for (final String id : trackingIds) {
+ final TrackingConfiguration trackingConfig= id.equals(HistoryTrackingConfiguration.HISTORY_TRACKING_ID) ?
+ new HistoryTrackingConfiguration(id) : new TrackingConfiguration(id);
+ try {
+ TRACKING_UTIL.load(trackingConfig, configuration);
+ this.trackingList.add(trackingConfig);
+ if (id.startsWith(CUSTOM_TRACKING_ID_PREFIX)) {
+ try {
+ final int num= Integer.parseInt(id.substring(CUSTOM_TRACKING_ID_PREFIX.length()));
+ this.trackingMaxCustomId= Math.max(this.trackingMaxCustomId, num);
+ } catch (final Exception e) {}
}
}
- }
- catch (final CoreException e) {
- logReadingError(e);
+ catch (final CoreException e) {
+ trackingIds.remove(id);
+ logReadingError(e);
+ }
}
if (!trackingIds.contains(HistoryTrackingConfiguration.HISTORY_TRACKING_ID)) {
final TrackingConfiguration trackingConfig= new HistoryTrackingConfiguration(HistoryTrackingConfiguration.HISTORY_TRACKING_ID);
@@ -541,74 +511,68 @@
}
{ this.trackingEnabledSet.clear();
- List<String> trackingEnabledIds= Collections.emptyList();
- try {
- trackingEnabledIds= configuration.getAttribute(TRACKING_ENABLED_IDS, Collections.EMPTY_LIST);
- final List<TrackingConfiguration> trackingList= this.trackingList;
- for (final TrackingConfiguration trackingConfig : trackingList) {
- if (trackingEnabledIds.contains(trackingConfig.getId())) {
- this.trackingEnabledSet.add(trackingConfig);
- }
+ final List<String> trackingIds= readAttribute(configuration,
+ TRACKING_ENABLED_IDS,
+ Collections.emptyList() );
+ final List<TrackingConfiguration> trackingList= this.trackingList;
+ for (final TrackingConfiguration trackingConfig : trackingList) {
+ if (trackingIds.contains(trackingConfig.getId())) {
+ this.trackingEnabledSet.add(trackingConfig);
}
}
- catch (final CoreException e) {
- logReadingError(e);
- }
}
}
@Override
protected void doSave(final ILaunchConfigurationWorkingCopy configuration) {
- configuration.setAttribute(RConsoleLaunching.ATTR_PIN_CONSOLE, this.pinValue.getValue().booleanValue());
+ configuration.setAttribute(RConsoleLaunching.ATTR_PIN_CONSOLE,
+ this.pinValue.getValue().booleanValue() );
- { final Boolean enabled= this.rHelpByStatetValue.getValue();
- configuration.setAttribute(ATTR_INTEGRATION_RHELP_ENABLED, enabled.booleanValue());
- }
- { final Boolean enabled= this.rGraphicsByStatetValue.getValue();
- configuration.setAttribute(ATTR_INTEGRATION_RGRAPHICS_ASDEFAULT, enabled.booleanValue());
- }
- { final Boolean enabled= this.rDbgExtValue.getValue();
- configuration.setAttribute(ATTR_INTEGRATION_RDBGEXT_ENABLED, enabled.booleanValue());
+ configuration.setAttribute(ATTR_INTEGRATION_RHELP_ENABLED,
+ this.rHelpByStatetValue.getValue().booleanValue() );
+ configuration.setAttribute(ATTR_INTEGRATION_RGRAPHICS_ASDEFAULT,
+ this.rGraphicsByStatetValue.getValue().booleanValue() );
+ configuration.setAttribute(ATTR_INTEGRATION_RDBGEXT_ENABLED,
+ this.rDbgExtValue.getValue().booleanValue() );
+
+ { final String startupSnippet= this.startupSnippetValue.getValue();
+ if (startupSnippet != null && startupSnippet.length() > 0) {
+ configuration.setAttribute(RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET, startupSnippet);
+ }
+ else {
+ configuration.removeAttribute(RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET);
+ }
}
- final String startupSnippet= this.startupSnippetValue.getValue();
- if (startupSnippet != null && startupSnippet.length() > 0) {
- configuration.setAttribute(RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET, startupSnippet);
- }
- else {
- configuration.removeAttribute(RConsoleLaunching.ATTR_INIT_SCRIPT_SNIPPET);
+ configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENABLED,
+ this.objectDBEnabledValue.getValue().booleanValue() );
+
+ configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_AUTOREFRESH_ENABLED,
+ this.objectDBAutoEnabledValue.getValue().booleanValue() );
+ configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_LISTS_MAX_LENGTH,
+ this.objectDBListsChildrenValue.getValue().intValue() );
+ configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENVS_MAX_LENGTH,
+ this.objectDBEnvsChildrenValue.getValue().intValue() );
+
+ { final List<String> trackingIds= new ArrayList<>(this.trackingList.size());
+
+ final List<TrackingConfiguration> trackingList= this.trackingList;
+ for (final TrackingConfiguration trackingConfig : trackingList) {
+ final String id= trackingConfig.getId();
+ trackingIds.add(id);
+ TRACKING_UTIL.save(trackingConfig, configuration);
+ }
+ configuration.setAttribute(TRACKING_IDS, trackingIds);
}
- { final Boolean enabled= this.objectDBEnabledValue.getValue();
- configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENABLED, enabled.booleanValue());
+ { final List<String> trackingIds= new ArrayList<>(this.trackingEnabledSet.size());
+ final Set<TrackingConfiguration> trackingEnabledSet= this.trackingEnabledSet;
+ for (final TrackingConfiguration trackingConfig : trackingEnabledSet) {
+ final String id= trackingConfig.getId();
+ trackingIds.add(id);
+ }
+ configuration.setAttribute(TRACKING_ENABLED_IDS, trackingIds);
}
- { final Boolean enabled= this.objectDBAutoEnabledValue.getValue();
- configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_AUTOREFRESH_ENABLED, enabled.booleanValue());
- }
- { final Integer max= this.objectDBListsChildrenValue.getValue();
- configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_LISTS_MAX_LENGTH, max.intValue());
- }
- { final Integer max= this.objectDBEnvsChildrenValue.getValue();
- configuration.setAttribute(RConsoleLaunching.ATTR_OBJECTDB_ENVS_MAX_LENGTH, max.intValue());
- }
-
- final List<String> trackingIds= new ArrayList<>(this.trackingList.size());
-
- final List<TrackingConfiguration> trackingList= this.trackingList;
- for (final TrackingConfiguration trackingConfig : trackingList) {
- final String id= trackingConfig.getId();
- trackingIds.add(id);
- TRACKING_UTIL.save(trackingConfig, configuration);
- }
- configuration.setAttribute(TRACKING_IDS, trackingIds);
-
- final List<String> trackingEnabledIds= new ArrayList<>(this.trackingEnabledSet.size());
- final Set<TrackingConfiguration> trackingEnabledSet= this.trackingEnabledSet;
- for (final TrackingConfiguration trackingConfig : trackingEnabledSet) {
- final String id= trackingConfig.getId();
- trackingEnabledIds.add(id);
- }
- configuration.setAttribute(TRACKING_ENABLED_IDS, trackingEnabledIds);
}
}
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RHistoryConfigurationComposite.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RHistoryConfigurationComposite.java
index f8e01c5..75691fc 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RHistoryConfigurationComposite.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RHistoryConfigurationComposite.java
@@ -14,8 +14,8 @@
package org.eclipse.statet.internal.r.console.ui.launching;
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
@@ -26,7 +26,7 @@
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
import org.eclipse.statet.nico.core.NicoVariables;
-import org.eclipse.statet.nico.core.util.TrackingConfiguration;
+import org.eclipse.statet.nico.core.util.HistoryTrackingConfiguration;
public class RHistoryConfigurationComposite extends RTrackingConfigurationComposite {
@@ -71,9 +71,16 @@
super.addBindings(db);
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.autoloadControl),
- BeanProperties.value(TrackingConfiguration.class, "loadHistory")
+ WidgetProperties.buttonSelection()
+ .observe(this.autoloadControl),
+ BeanProperties.value(HistoryTrackingConfiguration.class, "loadHistory", Boolean.TYPE)
.observe(getInput()) );
}
+
+ @Override
+ public HistoryTrackingConfiguration getInput() {
+ return (HistoryTrackingConfiguration)super.getInput();
+ }
+
}
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RRemoteConsoleMainTab.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RRemoteConsoleMainTab.java
index 22e8d8b..be8e357 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RRemoteConsoleMainTab.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RRemoteConsoleMainTab.java
@@ -48,7 +48,7 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.StringVariableSelectionDialog;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.preference.PreferenceDialog;
import org.eclipse.swt.SWT;
@@ -70,7 +70,7 @@
import org.eclipse.statet.jcommons.rmi.RMIAddress;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.ui.components.WidgetToolsButton;
import org.eclipse.statet.ecommons.ui.dialogs.DialogUtils;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -460,31 +460,40 @@
final WritableValue<String> addressValue1= new WritableValue<>("", String.class); //$NON-NLS-1$
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.addressControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.addressControl),
addressValue1 );
validator.observeValidatedValue(addressValue1);
- dbc.bindValue(addressValue1, this.addressValue);
+ dbc.bindValue(
+ addressValue1,
+ this.addressValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.usernameControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.usernameControl),
this.userValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.sshPortControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.sshPortControl),
this.sshPortValue,
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(0, 65535, true,
- "Invalid SSH port number specified (0-65535)." )),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(0, 65535, true,
+ "Invalid SSH port number specified (0-65535)." )),
null );
dbc.bindValue(
- WidgetProperties.selection().observe(this.sshTunnelControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.sshTunnelControl),
this.sshTunnelValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.commandControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.commandControl),
this.commandValue );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.sshAddress),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.sshAddress),
this.sshAddressValue );
this.addressValue.addValueChangeListener(this.updateJob);
@@ -549,55 +558,25 @@
protected void doInitialize(final ILaunchConfiguration configuration) {
super.doInitialize(configuration);
- String address;
- try {
- address= configuration.getAttribute(RConsoleLaunching.ATTR_ADDRESS, "");
- }
- catch (final CoreException e) {
- address= "";
- logReadingError(e);
- }
- this.addressValue.setValue(address);
+ this.addressValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_ADDRESS,
+ "" )); //$NON-NLS-1$
- String user;
- try {
- user= configuration.getAttribute(RConsoleLaunching.ATTR_LOGIN_NAME, "");
- }
- catch (final CoreException e) {
- user= "";
- logReadingError(e);
- }
- this.userValue.setValue(user);
+ this.userValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_LOGIN_NAME,
+ "" )); //$NON-NLS-1$
- int port;
- try {
- port= configuration.getAttribute(RConsoleLaunching.ATTR_SSH_PORT, DEFAULT_SSH_PORT);
- }
- catch (final CoreException e) {
- port= DEFAULT_SSH_PORT;
- logReadingError(e);
- }
- this.sshPortValue.setValue(port);
+ this.sshPortValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_SSH_PORT,
+ DEFAULT_SSH_PORT ));
- boolean tunnel;
- try {
- tunnel= configuration.getAttribute(RConsoleLaunching.ATTR_SSH_TUNNEL_ENABLED, false);
- }
- catch (final CoreException e) {
- tunnel= false;
- logReadingError(e);
- }
- this.sshTunnelValue.setValue(tunnel);
+ this.sshTunnelValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_SSH_TUNNEL_ENABLED,
+ false ));
- String command;
- try {
- command= configuration.getAttribute(RConsoleLaunching.ATTR_COMMAND, "");
- }
- catch (final CoreException e) {
- command= "";
- logReadingError(e);
- }
- this.commandValue.setValue(command);
+ this.commandValue.setValue(readAttribute(configuration,
+ RConsoleLaunching.ATTR_COMMAND,
+ "" ));
}
@Override
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RTrackingConfigurationComposite.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RTrackingConfigurationComposite.java
index 2697201..e024da0 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RTrackingConfigurationComposite.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/internal/r/console/ui/launching/RTrackingConfigurationComposite.java
@@ -48,6 +48,7 @@
RWorkspace.ADDITIONAL_R_VARIABLES);
}
+
@Override
public void setInput(final TrackingConfiguration config) {
super.setInput(config);
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/ChangeWorkingDirectoryWizard.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/ChangeWorkingDirectoryWizard.java
index c2e16f6..b1c5d39 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/ChangeWorkingDirectoryWizard.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/ChangeWorkingDirectoryWizard.java
@@ -138,8 +138,12 @@
final Realm realm = Realm.getDefault();
fDbc = new DataBindingContext(realm);
- fDbc.bindValue(fLocationGroup.getObservable(), fNewLocationString,
- new UpdateValueStrategy().setAfterGetValidator(fLocationGroup.getValidator()), null);
+ fDbc.bindValue(
+ fLocationGroup.getObservable(),
+ fNewLocationString,
+ new UpdateValueStrategy<>()
+ .setAfterGetValidator(fLocationGroup.getValidator()),
+ null );
WizardPageSupport.create(this, fDbc);
}
diff --git a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/REnvAutoUpdater.java b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/REnvAutoUpdater.java
index 8c49e41..4c7d930 100644
--- a/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/REnvAutoUpdater.java
+++ b/r/org.eclipse.statet.r.console.ui/src/org/eclipse/statet/r/console/ui/tools/REnvAutoUpdater.java
@@ -27,7 +27,7 @@
import org.eclipse.statet.jcommons.ts.core.SystemRunnable;
import org.eclipse.statet.jcommons.ts.core.Tool;
-import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref2;
+import org.eclipse.statet.ecommons.preferences.core.Preference.NullableStringPref;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
@@ -116,7 +116,7 @@
if (rEnvConfig == null) {
return;
}
- final StringPref2 pref= new StringPref2(
+ final NullableStringPref pref= new NullableStringPref(
IREnvManager.PREF_QUALIFIER + '/' + rEnvConfig.getREnv().getId(),
"CheckedR.version" ); //$NON-NLS-1$
final String s= PreferenceUtils.getInstancePrefs().getPreferenceValue(pref);
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/pkgmanager/RPkgManagerImpl.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/pkgmanager/RPkgManagerImpl.java
index 22f8b00..c5dffad 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/pkgmanager/RPkgManagerImpl.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/pkgmanager/RPkgManagerImpl.java
@@ -45,7 +45,7 @@
import org.eclipse.statet.jcommons.ts.core.Tool;
import org.eclipse.statet.ecommons.collections.FastList;
-import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref2;
+import org.eclipse.statet.ecommons.preferences.core.Preference.NullableStringPref;
import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
import org.eclipse.statet.ecommons.preferences.core.PreferenceSetService;
import org.eclipse.statet.ecommons.preferences.core.PreferenceSetService.ChangeEvent;
@@ -129,7 +129,7 @@
private boolean firstTime;
private String bioCVersion;
- private final StringPref2 bioCVersionPref;
+ private final NullableStringPref bioCVersionPref;
private List<RRepo> customRepos;
private final List<RRepo> addRepos;
@@ -190,7 +190,7 @@
final String qualifier= config.getPrefNodeQualifier();
this.selectedReposPref= new RRepoListPref(qualifier, "RPkg.Repos.repos"); //$NON-NLS-1$
this.selectedCRANPref= new RRepoPref(qualifier, "RPkg.CRANMirror.repo"); //$NON-NLS-1$
- this.bioCVersionPref= new StringPref2(qualifier, "RPkg.BioCVersion.ver"); //$NON-NLS-1$
+ this.bioCVersionPref= new NullableStringPref(qualifier, "RPkg.BioCVersion.ver"); //$NON-NLS-1$
this.selectedBioCPref= new RRepoPref(qualifier, "RPkg.BioCMirror.repo"); //$NON-NLS-1$
this.prefAccess= PreferenceUtils.getInstancePrefs();
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/renv/REnvConfigurationImpl.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/renv/REnvConfigurationImpl.java
index c3fa068..a94b3c0 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/renv/REnvConfigurationImpl.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/renv/REnvConfigurationImpl.java
@@ -56,7 +56,7 @@
import org.eclipse.statet.ecommons.preferences.core.Preference.IntPref;
import org.eclipse.statet.ecommons.preferences.core.Preference.StringArrayPref;
import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref;
-import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref2;
+import org.eclipse.statet.ecommons.preferences.core.Preference.NullableStringPref;
import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
import org.eclipse.statet.ecommons.runtime.core.util.StatusUtils;
@@ -272,13 +272,13 @@
private String rVersion;
- private StringPref2 prefRDocDirectory;
- private StringPref2 prefRShareDirectory;
- private StringPref2 prefRIncludeDirectory;
+ private NullableStringPref prefRDocDirectory;
+ private NullableStringPref prefRShareDirectory;
+ private NullableStringPref prefRIncludeDirectory;
- private StringPref2 prefStateSharedType;
- private StringPref2 prefStateSharedDirectory;
- private StringPref2 prefStateSharedServer;
+ private NullableStringPref prefStateSharedType;
+ private NullableStringPref prefStateSharedDirectory;
+ private NullableStringPref prefStateSharedServer;
private Properties sharedProperties;
private final Object sharedPropertiesLock= new Object();
@@ -476,13 +476,13 @@
this.prefRHomeDirectory= new StringPref(this.nodeQualifier, PREFKEY_RHOME_DIR);
this.prefRArch= new StringPref(this.nodeQualifier, PREFKEY_SUBARCH);
this.prefRBits= new IntPref(this.nodeQualifier, PREFKEY_RBITS);
- this.prefRDocDirectory= new StringPref2(this.nodeQualifier, PREFKEY_RDOC_DIR);
- this.prefRShareDirectory= new StringPref2(this.nodeQualifier, PREFKEY_RSHARE_DIR);
- this.prefRIncludeDirectory= new StringPref2(this.nodeQualifier, PREFKEY_RINCLUDE_DIR);
+ this.prefRDocDirectory= new NullableStringPref(this.nodeQualifier, PREFKEY_RDOC_DIR);
+ this.prefRShareDirectory= new NullableStringPref(this.nodeQualifier, PREFKEY_RSHARE_DIR);
+ this.prefRIncludeDirectory= new NullableStringPref(this.nodeQualifier, PREFKEY_RINCLUDE_DIR);
}
- this.prefStateSharedType= new StringPref2(this.nodeQualifier, STATE_SHARED_TYPE_KEY);
- this.prefStateSharedDirectory= new StringPref2(this.nodeQualifier, STATE_SHARED_DIRECTORY_PATH_KEY);
- this.prefStateSharedServer= new StringPref2(this.nodeQualifier, STATE_SHARED_SERVER_URI_KEY);
+ this.prefStateSharedType= new NullableStringPref(this.nodeQualifier, STATE_SHARED_TYPE_KEY);
+ this.prefStateSharedDirectory= new NullableStringPref(this.nodeQualifier, STATE_SHARED_DIRECTORY_PATH_KEY);
+ this.prefStateSharedServer= new NullableStringPref(this.nodeQualifier, STATE_SHARED_SERVER_URI_KEY);
}
void upgradePref() {
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RCodeStyleSettings.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RCodeStyleSettings.java
index ee4953c..48e3135 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RCodeStyleSettings.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RCodeStyleSettings.java
@@ -45,7 +45,8 @@
RCorePreferenceNodes.CAT_R_CODESTYLE_QUALIFIER, "Tab.size"); //$NON-NLS-1$
public static final EnumPref<IndentationType> INDENT_DEFAULT_TYPE_PREF= new EnumPref<>(
- RCorePreferenceNodes.CAT_R_CODESTYLE_QUALIFIER, "Indent.Default.type", IndentationType.class); //$NON-NLS-1$
+ RCorePreferenceNodes.CAT_R_CODESTYLE_QUALIFIER, "Indent.Default.type", IndentationType.class, //$NON-NLS-1$
+ IndentationType.TAB );
public static final IntPref INDENT_SPACES_COUNT_PREF= new IntPref(
RCorePreferenceNodes.CAT_R_CODESTYLE_QUALIFIER, "Indent.Spaces.count"); //$NON-NLS-1$
@@ -137,7 +138,7 @@
@Override
public void loadDefaults() {
setTabSize(4);
- setIndentDefaultType(IndentationType.TAB);
+ setIndentDefaultType(INDENT_DEFAULT_TYPE_PREF.store2Usage(null));
setIndentSpacesCount(4);
setIndentBlockDepth(1);
setIndentGroupDepth(1);
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RProject.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RProject.java
index d42a4bf..6dae63b 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RProject.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/RProject.java
@@ -22,7 +22,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ecommons.preferences.core.Preference;
-import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref2;
+import org.eclipse.statet.ecommons.preferences.core.Preference.NullableStringPref;
import org.eclipse.statet.ecommons.preferences.core.PreferenceAccess;
import org.eclipse.statet.internal.r.core.RProjectNature;
@@ -35,10 +35,10 @@
String BUILD_PREF_QUALIFIER= RCore.BUNDLE_ID + "/build/RProject"; //$NON-NLS-1$
- Preference<@Nullable String> PKG_BASE_FOLDER_PATH_PREF= new StringPref2(BUILD_PREF_QUALIFIER,
+ Preference<@Nullable String> PKG_BASE_FOLDER_PATH_PREF= new NullableStringPref(BUILD_PREF_QUALIFIER,
RProjectNature.RPKG_ROOT_FOLDER_PATH_KEY );
- Preference<@Nullable String> RENV_CODE_PREF= new StringPref2(BUILD_PREF_QUALIFIER,
+ Preference<@Nullable String> RENV_CODE_PREF= new NullableStringPref(BUILD_PREF_QUALIFIER,
RProjectNature.RENV_CODE_KEY );
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RPkgNameValidator.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RPkgNameValidator.java
index ff203db..5fb686e 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RPkgNameValidator.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RPkgNameValidator.java
@@ -19,10 +19,13 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.internal.r.core.Messages;
-public class RPkgNameValidator implements IValidator {
+@NonNullByDefault
+public class RPkgNameValidator implements IValidator<String> {
private static final String TRANSLATION_PREFIX= "Translation-"; //$NON-NLS-1$
@@ -48,8 +51,7 @@
@Override
- public IStatus validate(final Object value) {
- final String name= (String) value;
+ public IStatus validate(final String name) {
if (name == null || name.isEmpty()) {
if (this.required) {
return ValidationStatus.error(Messages.RPkgName_Validation_error_Empty_message);
diff --git a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RLineBreakpointDetailEditor.java b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RLineBreakpointDetailEditor.java
index cf1b103..34afb1b 100644
--- a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RLineBreakpointDetailEditor.java
+++ b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RLineBreakpointDetailEditor.java
@@ -19,7 +19,7 @@
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
@@ -90,13 +90,16 @@
this.conditionCodeValue= new WritableValue<>(realm, "", String.class);
enableAutosave(dbc.bindValue(
- WidgetProperties.selection().observe(this.conditionEnabledControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.conditionEnabledControl),
this.conditionEnabledValue ));
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.conditionCodeEditor.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.conditionCodeEditor.getTextControl()),
this.conditionCodeValue );
dbc.bindValue(
- WidgetProperties.enabled().observe(this.conditionCodeEditor.getTextControl()),
+ WidgetProperties.enabled()
+ .observe(this.conditionCodeEditor.getTextControl()),
this.conditionEnabledValue );
}
diff --git a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RMethodBreakpointDetailEditor.java b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RMethodBreakpointDetailEditor.java
index 474dc71..f6d51a7 100644
--- a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RMethodBreakpointDetailEditor.java
+++ b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/breakpoints/RMethodBreakpointDetailEditor.java
@@ -19,7 +19,7 @@
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
@@ -83,10 +83,12 @@
this.exitValue= new WritableValue<>(realm, Boolean.FALSE, Boolean.class);
enableAutosave(dbc.bindValue(
- WidgetProperties.selection().observe(this.entryControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.entryControl),
this.entryValue ));
enableAutosave(dbc.bindValue(
- WidgetProperties.selection().observe(this.exitControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.exitControl),
this.exitValue ));
}
diff --git a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/sourcelookup/RLibrarySourceContainerBrowser.java b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/sourcelookup/RLibrarySourceContainerBrowser.java
index 9d30991..b33d988 100644
--- a/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/sourcelookup/RLibrarySourceContainerBrowser.java
+++ b/r/org.eclipse.statet.r.debug.ui/src/org/eclipse/statet/internal/r/debug/ui/sourcelookup/RLibrarySourceContainerBrowser.java
@@ -87,8 +87,12 @@
@Override
protected void addBindings(final DataBindingSupport db) {
- db.getContext().bindValue(this.resourceControl.getObservable(), this.resourceValue,
- new UpdateValueStrategy().setAfterGetValidator(this.resourceControl.getValidator()), null);
+ db.getContext().bindValue(
+ this.resourceControl.getObservable(),
+ this.resourceValue,
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.resourceControl.getValidator()),
+ null );
}
public String getResult() {
diff --git a/r/org.eclipse.statet.r.ui/META-INF/MANIFEST.MF b/r/org.eclipse.statet.r.ui/META-INF/MANIFEST.MF
index e4225f6..a7e3204 100644
--- a/r/org.eclipse.statet.r.ui/META-INF/MANIFEST.MF
+++ b/r/org.eclipse.statet.r.ui/META-INF/MANIFEST.MF
@@ -50,7 +50,6 @@
org.eclipse.statet.ecommons.databinding,
org.eclipse.statet.ecommons.databinding.core.util;version="4.1.0",
org.eclipse.statet.ecommons.databinding.core.validation;version="4.1.0",
- org.eclipse.statet.ecommons.databinding.core.workspace,
org.eclipse.statet.ecommons.debug.core.util,
org.eclipse.statet.ecommons.graphics.core,
org.eclipse.statet.ecommons.io,
@@ -58,6 +57,7 @@
org.eclipse.statet.ecommons.models.core.util,
org.eclipse.statet.ecommons.preferences,
org.eclipse.statet.ecommons.resources.core,
+ org.eclipse.statet.ecommons.resources.core.util,
org.eclipse.statet.ecommons.variables.core,
org.eclipse.statet.jcommons.collections;version="4.1.0",
org.eclipse.statet.jcommons.lang;version="4.1.0",
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/REnvSelectionComposite.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/REnvSelectionComposite.java
index 50befbc..3b9093e 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/REnvSelectionComposite.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/REnvSelectionComposite.java
@@ -115,7 +115,7 @@
}
- private class ChooseREnvValidator implements IValidator {
+ private class ChooseREnvValidator implements IValidator<Object> {
@Override
public IStatus validate(final Object dummy) {
@@ -415,7 +415,7 @@
return new CompositeObservable(realm);
}
- public ChooseREnvValidator createValidator(final DataBindingContext context) {
+ public IValidator<Object> createValidator(final DataBindingContext context) {
this.bindindContext= context;
return new ChooseREnvValidator();
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RProjectPropertyPage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RProjectPropertyPage.java
index 5ff76fb..ea3996d 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RProjectPropertyPage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/RProjectPropertyPage.java
@@ -271,8 +271,8 @@
db.getContext().bindValue(
this.rEnvControl.createObservable(Realm.getDefault()),
createObservable(RProject.RENV_CODE_PREF),
- new UpdateValueStrategy().setAfterGetValidator(
- this.rEnvControl.createValidator(db.getContext()) ),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.rEnvControl.createValidator(db.getContext())),
null );
this.sourceFolders.bind(db);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/GotoCellDialog.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/GotoCellDialog.java
index e25382a..65e27d1 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/GotoCellDialog.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/dataeditor/GotoCellDialog.java
@@ -20,7 +20,7 @@
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
@@ -28,7 +28,7 @@
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.statet.ecommons.databinding.LongValidator;
+import org.eclipse.statet.ecommons.databinding.core.validation.LongValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.ui.dialogs.ExtStatusDialog;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -107,11 +107,13 @@
for (final Orientation orientation : Orientation.values()) {
final LRange lRange= this.indexRanges[orientation.ordinal()];
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.indexControls[orientation.ordinal()]),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.indexControls[orientation.ordinal()]),
this.indexValues[orientation.ordinal()],
- new UpdateValueStrategy().setAfterGetValidator(new LongValidator(
- (lRange.start + 1), lRange.end,
- "Invalid " + getLabel(orientation) + " index (" + (lRange.start + 1) + "\u2013" + lRange.end + ").")),
+ new UpdateValueStrategy()
+ .setAfterGetValidator(new LongValidator(
+ (lRange.start + 1), lRange.end,
+ "Invalid " + getLabel(orientation) + " index (" + (lRange.start + 1) + "\u2013" + lRange.end + ").")),
null );
this.indexControls[orientation.ordinal()].selectAll();
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/LevelVariableFilter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/LevelVariableFilter.java
index f8c44a1..407b708 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/LevelVariableFilter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/LevelVariableFilter.java
@@ -37,7 +37,7 @@
private RStore availableValues;
- private final IObservableSet selectedValues;
+ private final IObservableSet<Object> selectedValues;
public LevelVariableFilter(final FilterSet set, final RDataTableColumn column) {
@@ -66,7 +66,7 @@
});
}
else if (filter.getType() == FilterType.TEXT) {
- final TextVariableFilter textFilter= (TextVariableFilter) filter;
+ final TextVariableFilter textFilter= (TextVariableFilter)filter;
runInRealm(new Runnable() {
@Override
public void run() {
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/TextVariableFilter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/TextVariableFilter.java
index 6bbac9a..3dec2fc 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/TextVariableFilter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilter/TextVariableFilter.java
@@ -19,6 +19,7 @@
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.core.databinding.observable.set.WritableSet;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.status.ProgressMonitor;
import org.eclipse.statet.jcommons.status.StatusException;
@@ -40,7 +41,7 @@
private RCharacter32Store availableValues;
- private final IObservableSet selectedValues;
+ private final IObservableSet<@Nullable String> selectedValues;
public TextVariableFilter(final FilterSet set, final RDataTableColumn column) {
@@ -180,7 +181,7 @@
return this.availableValues;
}
- public IObservableSet getSelectedValues() {
+ public IObservableSet<@Nullable String> getSelectedValues() {
return this.selectedValues;
}
@@ -189,7 +190,7 @@
this.selectedValues.clear();
}
- public void removeValues(final Collection<String> values) {
+ public void removeValues(final Collection<@Nullable String> values) {
if (values.isEmpty()) {
return;
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/ConverterValidator.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/ConverterValidator.java
deleted file mode 100644
index a58b4db..0000000
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/ConverterValidator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================#
- # Copyright (c) 2012, 2019 Stephan Wahlbrink and others.
- #
- # This program and the accompanying materials are made available under the
- # terms of the Eclipse Public License 2.0 which is available at
- # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
- # which is available at https://www.apache.org/licenses/LICENSE-2.0.
- #
- # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
- #
- # Contributors:
- # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
- #=============================================================================*/
-
-package org.eclipse.statet.internal.r.ui.datafilterview;
-
-import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.core.runtime.IStatus;
-
-
-public class ConverterValidator implements IValidator {
-
-
- private final IConverter converter;
-
-
- public ConverterValidator(final IConverter converter) {
- this.converter= converter;
- }
-
-
- @Override
- public IStatus validate(final Object value) {
- try {
- this.converter.convert(value);
- return ValidationStatus.ok();
- }
- catch (final IllegalArgumentException e) {
- return ValidationStatus.error(e.getLocalizedMessage());
- }
- }
-
-}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Int2TextConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Int2TextConverter.java
index f81b7c7..f2008b3 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Int2TextConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Int2TextConverter.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.internal.r.ui.datafilterview;
-import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
-public class Int2TextConverter implements IConverter {
+@NonNullByDefault
+public class Int2TextConverter implements ClassTypedConverter<Integer, String> {
public Int2TextConverter() {
@@ -25,18 +28,18 @@
@Override
- public Object getFromType() {
+ public Class<Integer> getFromType() {
return Integer.TYPE;
}
@Override
- public Object getToType() {
+ public Class<String> getToType() {
return String.class;
}
@Override
- public Object convert(final Object fromObject) {
- return ((Integer) fromObject).toString();
+ public String convert(final Integer fromObject) {
+ return fromObject.toString();
}
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/IntervalClient.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/IntervalClient.java
index 39a9483..f86ce7e 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/IntervalClient.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/IntervalClient.java
@@ -19,7 +19,7 @@
import static org.eclipse.statet.internal.r.ui.datafilter.IntervalVariableFilter.NA_IDX;
import org.eclipse.core.databinding.conversion.IConverter;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -99,8 +99,8 @@
@Override
protected void addBindings(final DataBindingSupport db) {
if (this.filter.getColumn().getDataStore().getStoreType() == RStore.NUMERIC) {
- final IConverter text2value= new Text2NumConverter();
- final IConverter value2text= new Num2TextConverter();
+ final IConverter<String, Double> text2value= new Text2NumConverter();
+ final IConverter<Double, String> value2text= new Num2TextConverter();
// { RDataFormatter colFormatter= this.filter.getColumn().getDefaultFormat();
// if (colFormatter != null && colFormatter.hasNumFormat()) {
// RDataFormatter textFormatter= new RDataFormatter();
@@ -112,26 +112,31 @@
final IntValue2Double2TextBinding.LowerUpperGroup group= new IntValue2Double2TextBinding.LowerUpperGroup(
this.scaleControl, this.lowerBoundControl, this.upperBoundControl,
db.getRealm(), value2text, text2value );
- db.getContext().bindValue(group.getLower(),
+ db.getContext().bindValue(
+ group.getLower(),
this.filter.getSelectedLowerValue() );
- db.getContext().bindValue(group.getUpper(),
+ db.getContext().bindValue(
+ group.getUpper(),
this.filter.getSelectedUpperValue() );
this.lowerUpperGroup= group;
}
else {
- final IConverter text2value= new Text2IntConverter();
- final IConverter value2text= new Int2TextConverter();
+ final IConverter<String, Integer> text2value= new Text2IntConverter();
+ final IConverter<Integer, String> value2text= new Int2TextConverter();
final IntValue2TextBinding.LowerUpperGroup group= new IntValue2TextBinding.LowerUpperGroup(
this.scaleControl, this.lowerBoundControl, this.upperBoundControl,
db.getRealm(), value2text, text2value );
- db.getContext().bindValue(group.getLower(),
+ db.getContext().bindValue(
+ group.getLower(),
this.filter.getSelectedLowerValue() );
- db.getContext().bindValue(group.getUpper(),
+ db.getContext().bindValue(
+ group.getUpper(),
this.filter.getSelectedUpperValue() );
this.lowerUpperGroup= group;
}
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.NAControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.NAControl),
this.filter.getSelectedNA() );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/LevelClient.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/LevelClient.java
index 823da5b..bc57cdd 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/LevelClient.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/LevelClient.java
@@ -18,8 +18,9 @@
import org.eclipse.core.databinding.UpdateSetStrategy;
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Control;
import org.eclipse.ui.menus.CommandContributionItemParameter;
@@ -40,7 +41,7 @@
private CheckboxTableViewer valueListViewer;
- private final IObservableSet<?> selectedValues;
+ private final IObservableSet<Object> selectedValues;
private RStore availableValues;
@@ -105,10 +106,13 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindSet(
- ViewersObservables.observeCheckedElements(this.valueListViewer, Object.class),
+ ViewerProperties.checkedElements(Object.class)
+ .observe((ICheckable)this.valueListViewer),
this.selectedValues,
- new UpdateSetStrategy().setConverter(UI2RStoreConverter.INSTANCE),
- new UpdateSetStrategy().setConverter(RStore2UIConverter.INSTANCE) );
+ new UpdateSetStrategy<>()
+ .setConverter(new UI2RStoreConverter<>()),
+ new UpdateSetStrategy<>()
+ .setConverter(new RStore2UIConverter<>()) );
}
@Override
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Num2TextConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Num2TextConverter.java
index c4000a4..82a2678 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Num2TextConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Num2TextConverter.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.internal.r.ui.datafilterview;
-import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
-public class Num2TextConverter implements IConverter {
+@NonNullByDefault
+public class Num2TextConverter implements ClassTypedConverter<Double, String> {
public Num2TextConverter() {
@@ -25,18 +28,18 @@
@Override
- public Object getFromType() {
+ public Class<Double> getFromType() {
return Double.TYPE;
}
@Override
- public Object getToType() {
+ public Class<String> getToType() {
return String.class;
}
@Override
- public Object convert(final Object fromObject) {
- return ((Double) fromObject).toString();
+ public String convert(final Double fromObject) {
+ return fromObject.toString();
}
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFormatterConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFormatterConverter.java
index 65dcbd3..04d0f3c 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFormatterConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RDataFormatterConverter.java
@@ -14,37 +14,45 @@
package org.eclipse.statet.internal.r.ui.datafilterview;
-import org.eclipse.core.databinding.conversion.IConverter;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
import org.eclipse.statet.internal.r.ui.dataeditor.RDataFormatter;
-public class RDataFormatterConverter implements IConverter {
+@NonNullByDefault({ RETURN_TYPE, FIELD })
+public class RDataFormatterConverter<S> implements ClassTypedConverter<S, String> {
- private final Class fromType;
+ private final Class<S> fromType;
private final RDataFormatter formatter;
- public RDataFormatterConverter(final Class fromType, final RDataFormatter formatter) {
+ @NonNullByDefault({ PARAMETER })
+ public RDataFormatterConverter(final Class<S> fromType, final RDataFormatter formatter) {
this.fromType= fromType;
this.formatter= formatter;
}
@Override
- public Object getFromType() {
+ public Class<S> getFromType() {
return this.fromType;
}
-
+
@Override
- public Object getToType() {
+ public Class<String> getToType() {
return String.class;
}
-
+
@Override
- public Object convert(final Object fromObject) {
+ public String convert(final S fromObject) {
return this.formatter.modelToDisplayValue(fromObject).toString();
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RStore2UIConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RStore2UIConverter.java
index a36aa35..ce31611 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RStore2UIConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/RStore2UIConverter.java
@@ -16,16 +16,17 @@
import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.internal.r.ui.dataeditor.AbstractRDataProvider;
-public class RStore2UIConverter implements IConverter {
+@NonNullByDefault
+public class RStore2UIConverter<S> implements IConverter<@Nullable S, Object> {
- public static final IConverter INSTANCE= new RStore2UIConverter();
-
-
- private RStore2UIConverter() {
+ public RStore2UIConverter() {
}
@@ -40,7 +41,7 @@
}
@Override
- public Object convert(final Object fromObject) {
+ public Object convert(final @Nullable S fromObject) {
if (fromObject == null) {
return AbstractRDataProvider.NA;
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2IntConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2IntConverter.java
index af6fcf2..f7526d4 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2IntConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2IntConverter.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.internal.r.ui.datafilterview;
-import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
-public class Text2IntConverter implements IConverter {
+@NonNullByDefault
+public class Text2IntConverter implements ClassTypedConverter<String, Integer> {
public Text2IntConverter() {
@@ -25,22 +28,22 @@
@Override
- public Object getFromType() {
+ public Class<String> getFromType() {
return String.class;
}
@Override
- public Object getToType() {
+ public Class<Integer> getToType() {
return Integer.TYPE;
}
@Override
- public Object convert(final Object fromObject) {
- String s= (String) fromObject;
+ public Integer convert(final String fromObject) {
+ String s= fromObject;
if (s == null || (s= s.trim()).length() == 0) {
throw new IllegalArgumentException();
}
- if (s.charAt(s.length()-1) == 'L') {
+ if (s.charAt(s.length() - 1) == 'L') {
s= s.substring(0, s.length()-1);
}
if (s.startsWith("0x")) { //$NON-NLS-1$
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2NumConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2NumConverter.java
index 5e85c17..f431639 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2NumConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/Text2NumConverter.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.internal.r.ui.datafilterview;
-import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
-public class Text2NumConverter implements IConverter {
+@NonNullByDefault
+public class Text2NumConverter implements ClassTypedConverter<String, Double> {
public Text2NumConverter() {
@@ -25,27 +28,27 @@
@Override
- public Object getFromType() {
+ public Class<String> getFromType() {
return String.class;
}
@Override
- public Object getToType() {
+ public Class<Double> getToType() {
return Double.TYPE;
}
@Override
- public Object convert(final Object fromObject) {
- String s= (String) fromObject;
+ public Double convert(final String fromObject) {
+ String s= fromObject;
if (s == null || (s= s.trim()).length() == 0) {
throw new IllegalArgumentException();
}
- if (s.charAt(s.length()-1) == 'f') {
+ if (s.charAt(s.length() - 1) == 'f') {
if (s.endsWith("Inf")) { //$NON-NLS-1$
- s= s.substring(0, s.length()-3) + "Infinity"; //$NON-NLS-1$
+ s= s.substring(0, s.length() - 3) + "Infinity"; //$NON-NLS-1$
}
else {
- s= s.substring(0, s.length()-1);
+ s= s.substring(0, s.length() - 1);
}
}
return Double.parseDouble(s);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/TextClient.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/TextClient.java
index 02b9b30..fd6bd09 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/TextClient.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/TextClient.java
@@ -26,8 +26,9 @@
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -46,6 +47,8 @@
import org.eclipse.ui.menus.UIElement;
import org.eclipse.ui.services.IServiceLocator;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.ui.actions.ControlServicesUtil;
import org.eclipse.statet.ecommons.ui.actions.HandlerCollection;
@@ -144,7 +147,7 @@
private RCharacterStore availableValues;
- private final IObservableSet<?> selectedValueSet;
+ private final IObservableSet<@Nullable String> selectedValueSet;
private final HandlerCollection valueListHandlers= new HandlerCollection();
private MenuManager valueListMenuManager;
@@ -287,10 +290,13 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindSet(
- ViewersObservables.observeCheckedElements(this.valueListViewer, Object.class),
+ ViewerProperties.checkedElements(Object.class)
+ .observe((ICheckable)this.valueListViewer),
this.selectedValueSet,
- new UpdateSetStrategy().setConverter(UI2RStoreConverter.INSTANCE),
- new UpdateSetStrategy().setConverter(RStore2UIConverter.INSTANCE) );
+ new UpdateSetStrategy<Object, @Nullable String>()
+ .setConverter(new UI2RStoreConverter<String>()),
+ new UpdateSetStrategy<@Nullable String, Object>()
+ .setConverter(new RStore2UIConverter<String>()) );
}
@Override
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/UI2RStoreConverter.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/UI2RStoreConverter.java
index a869f97..875b13b 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/UI2RStoreConverter.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/datafilterview/UI2RStoreConverter.java
@@ -16,16 +16,17 @@
import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.internal.r.ui.dataeditor.AbstractRDataProvider;
-public class UI2RStoreConverter implements IConverter {
+@NonNullByDefault
+public class UI2RStoreConverter<D> implements IConverter<Object, @Nullable D> {
- public static final IConverter INSTANCE= new UI2RStoreConverter();
-
-
- private UI2RStoreConverter() {
+ public UI2RStoreConverter() {
}
@@ -40,11 +41,11 @@
}
@Override
- public Object convert(final Object fromObject) {
+ public @Nullable D convert(final Object fromObject) {
if (fromObject == AbstractRDataProvider.NA) {
return null;
}
- return fromObject;
+ return (D)fromObject;
}
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/DefaultRFoldingPreferences.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/DefaultRFoldingPreferences.java
index eec2f90..7088574 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/DefaultRFoldingPreferences.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/editors/DefaultRFoldingPreferences.java
@@ -16,6 +16,8 @@
import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
import org.eclipse.statet.ecommons.preferences.core.Preference.IntPref;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
@@ -27,6 +29,7 @@
/**
* Preferences for {@link RDefaultFoldingProvider}
*/
+@NonNullByDefault
public class DefaultRFoldingPreferences {
public static final String GROUP_ID = "r.editor/folding/default"; //$NON-NLS-1$
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/graphics/StatetRGraphicCopyToDevWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/graphics/StatetRGraphicCopyToDevWizard.java
index e47916a..abbcf06 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/graphics/StatetRGraphicCopyToDevWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/graphics/StatetRGraphicCopyToDevWizard.java
@@ -25,7 +25,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogSettings;
@@ -153,10 +153,12 @@
this.dbc.bindValue(
this.locationGroup.getObservable(),
this.newLocationValue,
- new UpdateValueStrategy().setAfterGetValidator(this.locationGroup.getValidator()),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.locationGroup.getValidator()),
null );
this.dbc.bindValue(
- WidgetProperties.selection().observe(this.openFileControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.openFileControl),
this.openFileValue );
this.openFileValue.setValue(getDialogSettings().getBoolean(SETTINGS_OPEN + this.settingType));
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgFileWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgFileWizard.java
index ad71c01..1eff220 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgFileWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgFileWizard.java
@@ -27,7 +27,7 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogSettings;
@@ -137,18 +137,19 @@
protected void addBindings(final DataBindingSupport databinding) {
this.fileControl.getValidator().setOnNotLocal(IStatus.OK);
- this.fileControl.getValidator().setFileStoreValidator(
- (final Object value) -> {
- final IFileStore store= (IFileStore) value;
+ this.fileControl.getValidator().setFileStoreValidator((final IFileStore store) -> {
if (store.getName().indexOf('_') < 0
|| RPkgUtils.getPkgType(store.getName(), InstallPkgFileWizard.this.pkgManager.getRPlatform()) == null ) {
return ValidationStatus.error("File name must follow the pattern '<package_name>_<version>.<ext>'.");
}
validateType();
return ValidationStatus.ok();
- } );
- databinding.getContext().bindValue(this.fileControl.getObservable(), this.fileValue,
- new UpdateValueStrategy().setAfterGetValidator(this.fileControl.getValidator()),
+ });
+ databinding.getContext().bindValue(
+ this.fileControl.getObservable(),
+ this.fileValue,
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(this.fileControl.getValidator()),
null );
this.fileControl.getTextControl().addListener(SWT.Modify, new Listener() {
@@ -159,9 +160,11 @@
});
databinding.getContext().bindValue(
- ViewersObservables.observeSingleSelection(this.targetControl.getSelectionViewer()),
+ ViewerProperties.singleSelection(Object.class)
+ .observe(this.targetControl.getSelectionViewer()),
this.targetValue,
- new UpdateValueStrategy().setAfterGetValidator(this.targetControl.getValidator()),
+ new UpdateValueStrategy<Object, RLibLocation>()
+ .setAfterGetValidator(this.targetControl.getValidator()),
null );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgsWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgsWizard.java
index 39484c7..1c5cfe4 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgsWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/InstallPkgsWizard.java
@@ -22,8 +22,8 @@
import org.eclipse.core.databinding.observable.value.WritableValue;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
@@ -117,16 +117,17 @@
if (this.sameTargetControl != null) {
this.sameTargetValue= new WritableValue<>(databinding.getRealm(), Boolean.FALSE, Boolean.class);
databinding.getContext().bindValue(
- WidgetProperties.selection().observe(this.sameTargetControl),
- this.sameTargetValue,
- null,
- null );
+ WidgetProperties.buttonSelection()
+ .observe(this.sameTargetControl),
+ this.sameTargetValue );
}
this.targetLibraryValue= new WritableValue<>(databinding.getRealm(), null, RLibLocation.class);
databinding.getContext().bindValue(
- ViewersObservables.observeSingleSelection(this.selectTargetControl.getSelectionViewer()),
+ ViewerProperties.singleSelection(Object.class)
+ .observe(this.selectTargetControl.getSelectionViewer()),
this.targetLibraryValue,
- new UpdateValueStrategy().setAfterGetValidator(this.selectTargetControl.getValidator()),
+ new UpdateValueStrategy<Object, RLibLocation>()
+ .setAfterGetValidator(this.selectTargetControl.getValidator()),
null );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/PkgTab.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/PkgTab.java
index c465e24..7c488c6 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/PkgTab.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/PkgTab.java
@@ -37,7 +37,7 @@
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -45,6 +45,7 @@
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IElementComparer;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -819,13 +820,15 @@
void addBinding(final DataBindingSupport db) {
this.filterPrioritySet= new WritableSet<>(db.getRealm(), Collections.emptySet(), String.class);
db.getContext().bindSet(
- ViewersObservables.observeCheckedElements(this.filterPriorityTable, String.class),
+ ViewerProperties.checkedElements(String.class)
+ .observe((ICheckable)this.filterPriorityTable),
this.filterPrioritySet );
new AutoCheckController(this.filterPriorityTable, this.filterPrioritySet);
this.filterRViewsSet= new WritableSet<>(db.getRealm(), Collections.emptySet(), IRView.class);
db.getContext().bindSet(
- ViewersObservables.observeCheckedElements(this.filterRViewsTable, IRView.class),
+ ViewerProperties.checkedElements(IRView.class)
+ .observe((ICheckable)this.filterRViewsTable),
this.filterRViewsSet );
new AutoCheckController(this.filterRViewsTable, this.filterRViewsSet);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RLibrarySelectionComposite.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RLibrarySelectionComposite.java
index 6d9e4b0..8b9f357 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RLibrarySelectionComposite.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RLibrarySelectionComposite.java
@@ -41,7 +41,7 @@
public class RLibrarySelectionComposite extends Composite {
- public static class Validator implements IValidator {
+ public static class Validator implements IValidator<Object> {
private RuntimeRLibPaths libPaths;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RRepoPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RRepoPreferencePage.java
index 3ec6127..f133a16 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RRepoPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RRepoPreferencePage.java
@@ -14,6 +14,10 @@
package org.eclipse.statet.internal.r.ui.pkgmanager;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.NonNull_Object_TYPE;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.NonNull_String_TYPE;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.Nullable_Object_TYPE;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -25,13 +29,12 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.conversion.Converter;
+import org.eclipse.core.databinding.beans.typed.PojoProperties;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.list.WritableList;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnWeightData;
@@ -50,9 +53,12 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ecommons.databinding.NotEmptyValidator;
import org.eclipse.statet.ecommons.databinding.URLValidator;
+import org.eclipse.statet.ecommons.databinding.core.conversion.ClassTypedConverter;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -72,6 +78,7 @@
import org.eclipse.statet.rj.renv.core.RPkgType;
+@NonNullByDefault
public class RRepoPreferencePage extends ConfigurationBlockPreferencePage {
@@ -87,11 +94,15 @@
}
+@NonNullByDefault
class EditRepoDialog extends ExtStatusDialog {
private static final String DEFAULT_TYPE= "Default"; //$NON-NLS-1$
+ @SuppressWarnings("null")
+ private static final Class<@Nullable RPkgType> Nullable_RPkgType_TYPE= RPkgType.class;
+
private final RRepo repo;
private final boolean isNew;
@@ -171,31 +182,34 @@
protected void addBindings(final DataBindingSupport databinding) {
final DataBindingContext dbc= databinding.getContext();
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.nameControl),
- PojoProperties.value(RRepo.class, "name").observe(this.repo), //$NON-NLS-1$
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.nameControl),
+ PojoProperties.value(RRepo.class, "name", NonNull_String_TYPE) //$NON-NLS-1$
+ .observe(this.repo),
null,
null );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.urlControl),
- PojoProperties.value(RRepo.class, "URL").observe(this.repo), //$NON-NLS-1$
- new UpdateValueStrategy().setAfterGetValidator(
- new NotEmptyValidator("URL", new URLValidator("URL")) ),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.urlControl),
+ PojoProperties.value(RRepo.class, "URL", NonNull_String_TYPE) //$NON-NLS-1$
+ .observe(this.repo),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(
+ new NotEmptyValidator("URL", new URLValidator("URL")) ),
null );
dbc.bindValue(
- ViewersObservables.observeSingleSelection(this.typeControl),
- PojoProperties.value(RRepo.class, "pkgType").observe(this.repo), //$NON-NLS-1$
- new UpdateValueStrategy().setConverter(new Converter(RPkgType.class, RPkgType.class) {
- @Override
- public Object convert(final Object fromObject) {
- return (fromObject != DEFAULT_TYPE) ? fromObject : null;
- }
- }),
- new UpdateValueStrategy().setConverter(new Converter(RPkgType.class, RPkgType.class) {
- @Override
- public Object convert(final Object fromObject) {
- return (fromObject != null) ? fromObject : DEFAULT_TYPE;
- }
- }) );
+ ViewerProperties.singleSelection(Object.class)
+ .observe(this.typeControl),
+ PojoProperties.value(RRepo.class, "pkgType", Nullable_RPkgType_TYPE) //$NON-NLS-1$
+ .observe(this.repo),
+ new UpdateValueStrategy<@Nullable Object, @Nullable RPkgType>()
+ .setConverter(ClassTypedConverter.create(Nullable_Object_TYPE, Nullable_RPkgType_TYPE,
+ (final @Nullable Object fromObject) ->
+ (fromObject != DEFAULT_TYPE) ? (RPkgType)fromObject : null )),
+ new UpdateValueStrategy<@Nullable RPkgType, @Nullable Object>()
+ .setConverter(ClassTypedConverter.create(Nullable_RPkgType_TYPE, NonNull_Object_TYPE,
+ (final @Nullable RPkgType fromObject) ->
+ (fromObject != null) ? fromObject : DEFAULT_TYPE )));
}
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RepoTab.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RepoTab.java
index f3ae451..cae9967 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RepoTab.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/pkgmanager/RepoTab.java
@@ -22,10 +22,11 @@
import org.eclipse.core.databinding.observable.set.WritableSet;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -179,11 +180,16 @@
this.selectedBioc= new WritableValue<>(db.getRealm(), null, RRepo.class);
db.getContext().bindSet(
- ViewersObservables.observeCheckedElements(this.repoTable, RRepo.class),
+ ViewerProperties.checkedElements(RRepo.class)
+ .observe((ICheckable)this.repoTable),
this.selectedRepos );
- db.getContext().bindValue(ViewersObservables.observeSingleSelection(this.CranTable),
+ db.getContext().bindValue(
+ ViewerProperties.singleSelection(RRepo.class)
+ .observe(this.CranTable),
this.selectedCran );
- db.getContext().bindValue(ViewersObservables.observeSingleSelection(this.biocTable),
+ db.getContext().bindValue(
+ ViewerProperties.singleSelection(RRepo.class)
+ .observe(this.biocTable),
this.selectedBioc );
this.selectedRepos.addChangeListener(this.dialog);
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RCodeStylePreferenceBlock.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RCodeStylePreferenceBlock.java
index af536d4..460fa7b 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RCodeStylePreferenceBlock.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RCodeStylePreferenceBlock.java
@@ -18,9 +18,9 @@
import java.util.Map;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
@@ -34,7 +34,7 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ManagedConfigurationBlock;
@@ -229,38 +229,49 @@
this.stdIndentSettings.addBindings(db, this.model);
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.indentBlockDepth),
- BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_BLOCK_DEPTH_PROP)
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.indentBlockDepth),
+ BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_BLOCK_DEPTH_PROP, Integer.TYPE)
.observe(db.getRealm(), this.model),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(1, 10,
- Messages.RCodeStyle_Indent_IndentInBlocks_error_message )),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(1, 10,
+ Messages.RCodeStyle_Indent_IndentInBlocks_error_message )),
null );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.indentGroupDepth),
- BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_GROUP_DEPTH_PROP)
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.indentGroupDepth),
+ BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_GROUP_DEPTH_PROP, Integer.TYPE)
.observe(db.getRealm(), this.model),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(1, 10, Messages.RCodeStyle_Indent_IndentInGroups_error_message)),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(1, 10,
+ Messages.RCodeStyle_Indent_IndentInGroups_error_message )),
null );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.indentWrappedCommandDepth),
- BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_WRAPPED_COMMAND_DEPTH_PROP)
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.indentWrappedCommandDepth),
+ BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.INDENT_WRAPPED_COMMAND_DEPTH_PROP, Integer.TYPE)
.observe(db.getRealm(), this.model),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(1, 10, Messages.RCodeStyle_Indent_IndentOfWrappedCommands_error_message)),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(1, 10,
+ Messages.RCodeStyle_Indent_IndentOfWrappedCommands_error_message )),
null );
for (final Operator operator : this.operators) {
db.getContext().bindValue(
- WidgetProperties.selection().observe(operator.wsBeforeControl),
- BeanProperties.value(RCodeStyleSettings.class, operator.wsBeforeProp)
+ WidgetProperties.buttonSelection()
+ .observe(operator.wsBeforeControl),
+ BeanProperties.value(RCodeStyleSettings.class, operator.wsBeforeProp, Boolean.TYPE)
.observe(db.getRealm(), this.model) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(operator.wsAfterControl),
- BeanProperties.value(RCodeStyleSettings.class, operator.wsAfterProp)
- .observe(db.getRealm(), this.model) );
+ WidgetProperties.buttonSelection()
+ .observe(operator.wsAfterControl),
+ BeanProperties.value(RCodeStyleSettings.class, operator.wsAfterProp, Boolean.TYPE)
+ .observe(db.getRealm(), this.model) );
}
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.nlFDefBodyBlockBefore),
- BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.NL_FDEF_BODYBLOCK_BEFORE_PROP)
+ WidgetProperties.buttonSelection()
+ .observe(this.nlFDefBodyBlockBefore),
+ BeanProperties.value(RCodeStyleSettings.class, RCodeStyleSettings.NL_FDEF_BODYBLOCK_BEFORE_PROP, Boolean.TYPE)
.observe(db.getRealm(), this.model) );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/REditorPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/REditorPreferencePage.java
index a0585c3..75bbaa9 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/REditorPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/REditorPreferencePage.java
@@ -18,8 +18,8 @@
import java.util.Map;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.swt.SWT;
@@ -31,7 +31,10 @@
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -51,6 +54,7 @@
/**
* Preference page for 'R Editor Options'
*/
+@NonNullByDefault
public class REditorPreferencePage extends ConfigurationBlockPreferencePage {
@@ -66,6 +70,7 @@
}
+@NonNullByDefault
class REditorConfigurationBlock extends ManagedConfigurationBlock {
@@ -91,14 +96,14 @@
private Button spellEnableControl;
- public REditorConfigurationBlock(final StatusChangeListener statusListener) {
+ public REditorConfigurationBlock(final @Nullable StatusChangeListener statusListener) {
super(null, statusListener);
}
@Override
protected void createBlockArea(final Composite pageComposite) {
- final Map<Preference<?>, String> prefs= new HashMap<>();
+ final Map<Preference<?>, @Nullable String> prefs= new HashMap<>();
prefs.put(REditorOptions.SMARTINSERT_BYDEFAULT_ENABLED_PREF, REditorOptions.SMARTINSERT_GROUP_ID);
prefs.put(REditorOptions.SMARTINSERT_TAB_ACTION_PREF, REditorOptions.SMARTINSERT_GROUP_ID);
@@ -287,7 +292,7 @@
}
private Button[] createSmartInsertOption(final Composite composite,
- final String text1, final String text2, final boolean console) {
+ final @Nullable String text1, final @Nullable String text2, final boolean console) {
GridData gd;
if (text1 != null) {
final Label label= new Label(composite, SWT.NONE);
@@ -330,85 +335,113 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertControl),
createObservable(REditorOptions.SMARTINSERT_BYDEFAULT_ENABLED_PREF) );
db.getContext().bindValue(
- ViewersObservables.observeSingleSelection(this.smartInsertTabActionControl),
+ ViewerProperties.singleSelection(TabAction.class)
+ .observe(this.smartInsertTabActionControl),
createObservable(REditorOptions.SMARTINSERT_TAB_ACTION_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertOnPasteControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertOnPasteControl[0]),
createObservable(REditorOptions.SMARTINSERT_ONPASTE_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertOnPasteControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertOnPasteControl[0]),
createObservable(REditorOptions.SMARTINSERT_ONPASTE_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseCurlyBracketsControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseCurlyBracketsControl[0]),
createObservable(REditorOptions.SMARTINSERT_CLOSECURLY_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseRoundBracketsControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseRoundBracketsControl[0]),
createObservable(REditorOptions.SMARTINSERT_CLOSEROUND_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseSquareBracketsControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseSquareBracketsControl[0]),
createObservable(REditorOptions.SMARTINSERT_CLOSESQUARE_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseSpecialControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseSpecialControl[0]),
createObservable(REditorOptions.SMARTINSERT_CLOSESPECIAL_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseStringsControl[0]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseStringsControl[0]),
createObservable(REditorOptions.SMARTINSERT_CLOSESTRINGS_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseCurlyBracketsControl[1]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseCurlyBracketsControl[1]),
createObservable(RUIPreferenceInitializer.CONSOLE_SMARTINSERT_CLOSECURLY_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseRoundBracketsControl[1]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseRoundBracketsControl[1]),
createObservable(RUIPreferenceInitializer.CONSOLE_SMARTINSERT_CLOSEROUND_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseSquareBracketsControl[1]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseSquareBracketsControl[1]),
createObservable(RUIPreferenceInitializer.CONSOLE_SMARTINSERT_CLOSESQUARE_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseSpecialControl[1]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseSpecialControl[1]),
createObservable(RUIPreferenceInitializer.CONSOLE_SMARTINSERT_CLOSESPECIAL_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.smartInsertCloseStringsControl[1]),
+ WidgetProperties.buttonSelection()
+ .observe(this.smartInsertCloseStringsControl[1]),
createObservable(RUIPreferenceInitializer.CONSOLE_SMARTINSERT_CLOSESTRINGS_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.foldingEnableControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.foldingEnableControl),
createObservable(REditorOptions.FOLDING_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.foldingRestoreStateControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.foldingRestoreStateControl),
createObservable(REditorOptions.FOLDING_RESTORE_STATE_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.foldingDefaultAllBlocksControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.foldingDefaultAllBlocksControl),
createObservable(DefaultRFoldingPreferences.PREF_OTHERBLOCKS_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.foldingDefaultMinLines),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.foldingDefaultMinLines),
createObservable(DefaultRFoldingPreferences.PREF_MINLINES_NUM),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(2, 1000, Messages.REditorOptions_Folding_MinNumOfLines_error_message)),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(2, 1000,
+ Messages.REditorOptions_Folding_MinNumOfLines_error_message )),
null );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.foldingDefaultRoxygenControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.foldingDefaultRoxygenControl),
createObservable(DefaultRFoldingPreferences.PREF_ROXYGEN_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.foldingDefaultRoxygenInitiallyControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.foldingDefaultRoxygenInitiallyControl),
createObservable(DefaultRFoldingPreferences.PREF_ROXYGEN_COLLAPSE_INITIALLY_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.foldingDefaultRoxygenMinLines),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.foldingDefaultRoxygenMinLines),
createObservable(DefaultRFoldingPreferences.PREF_ROXYGEN_MINLINES_NUM),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(2, 1000, Messages.REditorOptions_Folding_MinNumOfLines_error_message)),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(2, 1000,
+ Messages.REditorOptions_Folding_MinNumOfLines_error_message )),
null );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.markOccurrencesControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.markOccurrencesControl),
createObservable(REditorOptions.PREF_MARKOCCURRENCES_ENABLED) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.problemsEnableControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.problemsEnableControl),
createObservable(REditorBuild.PROBLEMCHECKING_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.spellEnableControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.spellEnableControl),
createObservable(REditorOptions.PREF_SPELLCHECKING_ENABLED) );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractFunctionWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractFunctionWizard.java
index 3eb5c79..e014a75 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractFunctionWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractFunctionWizard.java
@@ -16,11 +16,11 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.beans.typed.PojoProperties;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
@@ -216,14 +216,14 @@
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.variableNameControl),
- PojoProperties.value(ExtractFunctionRefactoring.class, "functionName")
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.variableNameControl),
+ PojoProperties.value(ExtractFunctionRefactoring.class, "functionName", String.class)
.observe(realm, getRefactoring()),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
- return new RefactoringBasedStatus(
- getRefactoring().checkFunctionName((String) value) );
- } ),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String value) ->
+ new RefactoringBasedStatus(
+ getRefactoring().checkFunctionName(value) )),
null );
this.argumentsViewer.addCheckStateListener(
(final CheckStateChangedEvent event) -> {
@@ -237,7 +237,8 @@
this.argumentsViewer.setInput(argumentsList);
this.argumentsButtons.connectTo(this.argumentsViewer, argumentsList, null);
-// dbc.bindValue(SWTObservables.observeSelection(fReplaceAllControl),
+// dbc.bindValue(WidgetProperties.buttonSelection()
+// .observe(this.replaceAllControl),
// PojoObservables.observeValue(realm, getRefactoring(), "replaceAllOccurrences"), null, null);
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractTempWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractTempWizard.java
index 0d18f8e..414cdf4 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractTempWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/ExtractTempWizard.java
@@ -16,9 +16,9 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.beans.typed.PojoProperties;
import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
@@ -124,18 +124,19 @@
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.variableNameControl),
- PojoProperties.value(ExtractTempRefactoring.class, "tempName") //$NON-NLS-1$
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.variableNameControl),
+ PojoProperties.value(ExtractTempRefactoring.class, "tempName", String.class) //$NON-NLS-1$
.observe(realm, getRefactoring()),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
- return new RefactoringBasedStatus(
- getRefactoring().checkTempName((String) value) );
- } ),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String value) ->
+ new RefactoringBasedStatus(
+ getRefactoring().checkTempName(value) )),
null );
dbc.bindValue(
- WidgetProperties.selection().observe(this.replaceAllControl),
- PojoProperties.value(ExtractTempRefactoring.class, "replaceAllOccurrences") //$NON-NLS-1$
+ WidgetProperties.buttonSelection()
+ .observe(this.replaceAllControl),
+ PojoProperties.value(ExtractTempRefactoring.class, "replaceAllOccurrences", Boolean.TYPE) //$NON-NLS-1$
.observe(realm, getRefactoring()) );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/FunctionToS4MethodWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/FunctionToS4MethodWizard.java
index c120a1e..b9f34c8 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/FunctionToS4MethodWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/FunctionToS4MethodWizard.java
@@ -16,11 +16,11 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.beans.typed.PojoProperties;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
@@ -267,14 +267,14 @@
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.functionNameControl),
- PojoProperties.value(FunctionToS4MethodRefactoring.class, "functionName") //$NON-NLS-1$
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.functionNameControl),
+ PojoProperties.value(FunctionToS4MethodRefactoring.class, "functionName", String.class) //$NON-NLS-1$
.observe(realm, getRefactoring()),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
- return new RefactoringBasedStatus(
- getRefactoring().checkFunctionName((String) value) );
- } ),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String value) ->
+ new RefactoringBasedStatus(
+ getRefactoring().checkFunctionName(value) )),
null );
final IObservableList<Variable> argumentsList= new WritableList<>(realm, getRefactoring().getVariables(), Variable.class);
this.argumentsViewer.addCheckStateListener(
@@ -346,8 +346,9 @@
});
dbc.bindValue(
- WidgetProperties.selection().observe(this.generateGenericControl),
- PojoProperties.value(FunctionToS4MethodRefactoring.class, "generateGeneric") //$NON-NLS-1$
+ WidgetProperties.buttonSelection()
+ .observe(this.generateGenericControl),
+ PojoProperties.value(FunctionToS4MethodRefactoring.class, "generateGeneric", Boolean.TYPE) //$NON-NLS-1$
.observe(realm, getRefactoring()) );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/RenameInWorkspaceWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/RenameInWorkspaceWizard.java
index c688fed..5f906ac 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/RenameInWorkspaceWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/refactoring/RenameInWorkspaceWizard.java
@@ -18,10 +18,10 @@
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.PojoProperties;
+import org.eclipse.core.databinding.beans.typed.PojoProperties;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.resource.JFaceResources;
@@ -191,17 +191,19 @@
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.variableNameControl),
- PojoProperties.value("newName").observe(getRefactoring()), //$NON-NLS-1$
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.variableNameControl),
+ PojoProperties.value("newName", String.class) //$NON-NLS-1$
+ .observe(getRefactoring()),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String text) -> {
final RenameInWorkspaceRefactoring refactoring= getRefactoring();
- final RefactoringStatus status= refactoring.checkNewName((String) value);
- if (status.isOK() && refactoring.getCurrentName().equals(value)) {
+ final RefactoringStatus status= refactoring.checkNewName(text);
+ if (status.isOK() && refactoring.getCurrentName().equals(text)) {
return Status.CANCEL_STATUS;
}
return new RefactoringBasedStatus(status);
- } ),
+ }),
null );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferencePage.java
index 7e93c3c..51424fa 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferencePage.java
@@ -21,7 +21,7 @@
import org.eclipse.core.databinding.observable.Diffs;
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
@@ -35,7 +35,10 @@
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Text;
-import org.eclipse.statet.ecommons.databinding.IntegerValidator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+import org.eclipse.statet.ecommons.databinding.core.validation.IntegerValidator;
import org.eclipse.statet.ecommons.databinding.jface.AbstractSWTObservableValue;
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
@@ -48,6 +51,7 @@
import org.eclipse.statet.r.core.RCore;
+@NonNullByDefault
public class RHelpPreferencePage extends ConfigurationBlockPreferencePage {
@@ -63,10 +67,11 @@
}
+@NonNullByDefault
class RHelpConfigurationBlock extends ManagedConfigurationBlock {
- class HomeObservable extends AbstractSWTObservableValue
+ class HomeObservable extends AbstractSWTObservableValue<String>
implements SelectionListener, ModifyListener {
@@ -83,6 +88,7 @@
RHelpConfigurationBlock.this.homeBlankControl.addSelectionListener(this);
RHelpConfigurationBlock.this.homeREnvControl.addSelectionListener(this);
RHelpConfigurationBlock.this.homeCustomControl.addSelectionListener(this);
+ this.url= ""; //$NON-NLS-1$
}
@Override
@@ -91,7 +97,7 @@
}
@Override
- protected Object doGetValue() {
+ protected String doGetValue() {
if (!this.isUpdating) {
this.isUpdating= true;
try {
@@ -105,12 +111,9 @@
}
@Override
- protected void doSetValue(final Object value) {
+ protected void doSetValue(final @Nullable String value) {
this.isUpdating= true;
- this.url= (String) value;
- if (this.url == null) {
- this.url= "about:blank"; //$NON-NLS-1$
- }
+ this.url= (value != null) ? value : "about:blank"; //$NON-NLS-1$
try {
if (this.url.equals("about:blank")) { //$NON-NLS-1$
RHelpConfigurationBlock.this.homeBlankControl.setSelection(true);
@@ -214,13 +217,13 @@
private Text searchMaxFragmentsControl;
- protected RHelpConfigurationBlock(final StatusChangeListener statusListener) {
+ protected RHelpConfigurationBlock(final @Nullable StatusChangeListener statusListener) {
super(null, statusListener);
}
@Override
protected void createBlockArea(final Composite pageComposite) {
- final Map<Preference<?>, String> prefs= new HashMap<>();
+ final Map<Preference<?>, @Nullable String> prefs= new HashMap<>();
prefs.put(RHelpPreferences.HOMEPAGE_URL_PREF, null);
prefs.put(RHelpPreferences.SEARCH_REUSE_PAGE_ENABLED_PREF, null);
@@ -312,13 +315,16 @@
new HomeObservable(db.getRealm()),
createObservable(RHelpPreferences.HOMEPAGE_URL_PREF) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.searchReusePageControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.searchReusePageControl),
createObservable(RHelpPreferences.SEARCH_REUSE_PAGE_ENABLED_PREF) );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.searchMaxFragmentsControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.searchMaxFragmentsControl),
createObservable(RHelpPreferences.SEARCH_PREVIEW_FRAGMENTS_MAX_PREF),
- new UpdateValueStrategy().setAfterGetValidator(new IntegerValidator(1, 1000,
- "Invalid maximum for preview fragments specified (1-1000).")),
+ new UpdateValueStrategy<String, Integer>()
+ .setAfterGetValidator(new IntegerValidator(1, 1000,
+ "Invalid maximum for preview fragments specified (1-1000).")),
null );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferences.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferences.java
index b5152bd..2420483 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferences.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/rhelp/RHelpPreferences.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.internal.r.ui.rhelp;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
import org.eclipse.statet.ecommons.preferences.core.Preference.IntPref;
@@ -22,6 +24,7 @@
import org.eclipse.statet.r.ui.RUI;
+@NonNullByDefault
public class RHelpPreferences {
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/tools/LoadRImageWizard.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/tools/LoadRImageWizard.java
index 6fd2d7b..1a412bb 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/tools/LoadRImageWizard.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/tools/LoadRImageWizard.java
@@ -113,8 +113,12 @@
final Realm realm = Realm.getDefault();
fDbc = new DataBindingContext(realm);
- fDbc.bindValue(fLocationGroup.getObservable(), fNewLocationString,
- new UpdateValueStrategy().setAfterGetValidator(fLocationGroup.getValidator()), null);
+ fDbc.bindValue(
+ fLocationGroup.getObservable(),
+ fNewLocationString,
+ new UpdateValueStrategy<>()
+ .setAfterGetValidator(fLocationGroup.getValidator()),
+ null );
WizardPageSupport.create(this, fDbc);
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/wizards/RPkgProjectWizardPage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/wizards/RPkgProjectWizardPage.java
index 0de5327..5443ff6 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/wizards/RPkgProjectWizardPage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/wizards/RPkgProjectWizardPage.java
@@ -25,7 +25,7 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.wizard.WizardPageSupport;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogSettings;
@@ -40,8 +40,8 @@
import org.eclipse.swt.widgets.Text;
import org.eclipse.statet.ecommons.databinding.core.util.DirtyTracker;
-import org.eclipse.statet.ecommons.databinding.core.workspace.RelativePathValidator;
-import org.eclipse.statet.ecommons.databinding.core.workspace.StringToPathConverter;
+import org.eclipse.statet.ecommons.resources.core.util.RelativePathValidator;
+import org.eclipse.statet.ecommons.resources.core.util.StringToPathConverter;
import org.eclipse.statet.ecommons.ui.dialogs.DialogUtils;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -170,24 +170,30 @@
this.pkgUserChanged= new DirtyTracker();
final Binding binding= dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.pkgNameControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.pkgNameControl),
this.pkgNameValue,
- new UpdateValueStrategy().setAfterGetValidator(new RPkgNameValidator()),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new RPkgNameValidator()),
null );
this.pkgUserChanged.add(binding);
dbc.bindValue(
- WidgetProperties.text().observe(this.pkgAuthorControl),
+ WidgetProperties.text()
+ .observe(this.pkgAuthorControl),
this.pkgAuthorValue );
dbc.bindValue(
- WidgetProperties.text().observe(this.pkgMaintainerControl),
+ WidgetProperties.text()
+ .observe(this.pkgMaintainerControl),
this.pkgMaintainerValue );
this.pkgFolderValidator= new RelativePathValidator(IResource.FOLDER,
null, "package root folder" );
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.pkgFolderControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.pkgFolderControl),
this.pkgFolderValue,
- new UpdateValueStrategy().setAfterGetValidator(this.pkgFolderValidator)
+ new UpdateValueStrategy<String, IPath>()
+ .setAfterGetValidator(this.pkgFolderValidator)
.setConverter(new StringToPathConverter()),
null );
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorBuild.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorBuild.java
index b7cd473..3f72a4d 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorBuild.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorBuild.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.r.ui.editors;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
import org.eclipse.statet.internal.r.ui.RUIPreferenceInitializer;
+@NonNullByDefault
public class REditorBuild {
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorOptions.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorOptions.java
index 92e4b75..0924e3f 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorOptions.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/REditorOptions.java
@@ -18,6 +18,8 @@
import java.util.Map;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.AbstractPreferencesModelObject;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
@@ -27,6 +29,7 @@
import org.eclipse.statet.ltk.ui.sourceediting.ISmartInsertSettings;
+@NonNullByDefault
public class REditorOptions extends AbstractPreferencesModelObject
implements ISmartInsertSettings {
// Default values see RUIPreferenceInitializer
@@ -42,8 +45,9 @@
public static final BooleanPref SMARTINSERT_ONPASTE_ENABLED_PREF = new BooleanPref(
REDITOR_NODE, "smartinsert.on_paste.enabled"); //$NON-NLS-1$
- public static final Preference<TabAction> SMARTINSERT_TAB_ACTION_PREF= new EnumPref<>(
- REDITOR_NODE, "SmartInsert.Tab.action", TabAction.class); //$NON-NLS-1$
+ public static final EnumPref<TabAction> SMARTINSERT_TAB_ACTION_PREF= new EnumPref<>(
+ REDITOR_NODE, "SmartInsert.Tab.action", TabAction.class, //$NON-NLS-1$
+ TabAction.INSERT_INDENT_LEVEL );
public static final BooleanPref SMARTINSERT_CLOSECURLY_ENABLED_PREF = new BooleanPref(
REDITOR_NODE, "smartinsert.close_curlybrackets.enabled"); //$NON-NLS-1$
@@ -98,7 +102,7 @@
@Override
public void loadDefaults() {
fIsSmartByDefaultEnabled = true;
- fSmartTabAction = TabAction.INSERT_INDENT_LEVEL;
+ fSmartTabAction = SMARTINSERT_TAB_ACTION_PREF.store2Usage(null);
fIsSmartCurlyBracketsEnabled = true;
fIsSmartRoundBracketsEnabled = true;
fIsSmartSquareBracketsEnabled = true;
diff --git a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/LocalREnvConfigDialog.java b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/LocalREnvConfigDialog.java
index 9fbca7e..4af0b43 100644
--- a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/LocalREnvConfigDialog.java
+++ b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/LocalREnvConfigDialog.java
@@ -33,7 +33,8 @@
import org.eclipse.core.databinding.Binding;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
+import org.eclipse.core.databinding.observable.value.IValueChangeListener;
import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
import org.eclipse.core.databinding.validation.ValidationStatus;
import org.eclipse.core.filesystem.EFS;
@@ -47,7 +48,7 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.core.variables.IStringVariableManager;
import org.eclipse.core.variables.VariablesPlugin;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.CellEditor;
@@ -601,13 +602,13 @@
protected void addBindings(final DataBindingSupport db) {
// don't specify IREnvConfiguration.WorkingCopy for BeanProperties (missing with getter)
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.nameControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.nameControl),
BeanProperties.value(IREnvConfiguration.PROP_NAME, String.class)
.observe(this.configModel),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
- String s= (String) value;
- s= s.trim();
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String value) -> {
+ final String s= value.trim();
if (s.isEmpty()) {
return ValidationStatus.error(Messages.REnv_Detail_Name_error_Missing_message);
}
@@ -618,15 +619,15 @@
return ValidationStatus.error(Messages.REnv_Detail_Name_error_InvalidChar_message);
}
return ValidationStatus.ok();
- } ),
+ }),
null );
if (this.rHomeControl != null) {
final Binding rHomeBinding= db.getContext().bindValue(
this.rHomeControl.getObservable(),
BeanProperties.value(IREnvConfiguration.PROP_RHOME, String.class)
.observe(this.configModel),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String value) -> {
final IStatus status= LocalREnvConfigDialog.this.rHomeControl.getValidator().validate(value);
if (!status.isOK()) {
return status;
@@ -636,17 +637,20 @@
}
updateArchs(!LocalREnvConfigDialog.this.isNewConfig);
return ValidationStatus.ok();
- } ),
+ }),
null );
- rHomeBinding.getValidationStatus().addValueChangeListener(
- (final ValueChangeEvent<? extends IStatus> event) -> {
- final IStatus status= event.diff.getNewValue();
- LocalREnvConfigDialog.this.loadButton.setEnabled(status.isOK());
- } );
+ rHomeBinding.getValidationStatus().addValueChangeListener(new IValueChangeListener<IStatus>() {
+ @Override
+ public void handleValueChange(final ValueChangeEvent<? extends IStatus> event) {
+ final IStatus status= event.diff.getNewValue();
+ LocalREnvConfigDialog.this.loadButton.setEnabled(status.isOK());
+ }
+ });
rHomeBinding.validateTargetToModel();
}
db.getContext().bindValue(
- WidgetProperties.text().observe(this.rArchControl),
+ WidgetProperties.text()
+ .observe(this.rArchControl),
BeanProperties.value(IREnvConfiguration.PROP_SUBARCH, String.class)
.observe(this.configModel) );
diff --git a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/REnvPreferencePage.java b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/REnvPreferencePage.java
index fca5e43..432c5a9 100644
--- a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/REnvPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/REnvPreferencePage.java
@@ -38,8 +38,8 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ColumnLabelProvider;
@@ -142,8 +142,8 @@
private TableViewer listViewer;
private ButtonGroup<IREnvConfiguration.WorkingCopy> listButtons;
- private final IObservableList<IREnvConfiguration> envList= new WritableList<>();
- private final IObservableValue<IREnvConfiguration> envDefault= new WritableValue<>();
+ private final IObservableList<IREnvConfiguration.WorkingCopy> envList= new WritableList<>();
+ private final IObservableValue<IREnvConfiguration.WorkingCopy> envDefault= new WritableValue<>();
private final IObservableValue<IStatus> envListStatus= new WritableValue<>();
private ComboViewer indexConsoleViewer;
@@ -452,10 +452,12 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindValue(
- ViewersObservables.observeSingleSelection(this.indexConsoleViewer),
+ ViewerProperties.singleSelection(String.class)
+ .observe(this.indexConsoleViewer),
createObservable(RRunDebugPreferenceConstants.PREF_RENV_CHECK_UPDATE) );
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.networkEclipseControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.networkEclipseControl),
createObservable(RCorePreferenceNodes.PREF_RENV_NETWORK_USE_ECLIPSE) );
}
@@ -480,7 +482,7 @@
try {
final IREnvConfiguration defaultREnv= this.envDefault.getValue();
RCore.getREnvManager().set(
- ImCollections.toList((List<IREnvConfiguration>) this.envList),
+ ImCollections.toList(this.envList),
(defaultREnv != null) ? defaultREnv.getREnv().getId() : null );
return true;
}
@@ -500,7 +502,7 @@
final REnv defaultEnv= manager.getDefault().resolve();
final List<IREnvConfiguration> rEnvConfigs= manager.getConfigurations();
for (final IREnvConfiguration rEnvConfig : rEnvConfigs) {
- final IREnvConfiguration config= rEnvConfig.createWorkingCopy();
+ final IREnvConfiguration.WorkingCopy config= rEnvConfig.createWorkingCopy();
this.envList.add(config);
if (config.getREnv() == defaultEnv) {
this.envDefault.setValue(config);
diff --git a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/RemoteREnvConfigDialog.java b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/RemoteREnvConfigDialog.java
index 379a6db..bc2d016 100644
--- a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/RemoteREnvConfigDialog.java
+++ b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/internal/r/debug/ui/preferences/RemoteREnvConfigDialog.java
@@ -19,11 +19,11 @@
import java.util.Set;
import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.beans.BeanProperties;
+import org.eclipse.core.databinding.beans.typed.BeanProperties;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.SelectObservableValue;
import org.eclipse.core.databinding.validation.ValidationStatus;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
@@ -166,13 +166,13 @@
protected void addBindings(final DataBindingSupport db) {
// don't specify IREnvConfiguration.WorkingCopy for BeanProperties (missing with getter)
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.nameControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.nameControl),
BeanProperties.value(IREnvConfiguration.PROP_NAME, String.class)
.observe(this.configModel),
- new UpdateValueStrategy().setAfterGetValidator(
- (final Object value) -> {
- String s= (String) value;
- s= s.trim();
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator((final String text) -> {
+ final String s= text.trim();
if (s.isEmpty()) {
return ValidationStatus.error(Messages.REnv_Detail_Name_error_Missing_message);
}
@@ -183,23 +183,26 @@
return ValidationStatus.error(Messages.REnv_Detail_Name_error_InvalidChar_message);
}
return ValidationStatus.ok();
- } ),
+ }),
null );
final IObservableValue<Boolean> indexDirectoryValue=
- WidgetProperties.selection().observe(this.indexDirectorySelectionControl);
+ WidgetProperties.buttonSelection()
+ .observe(this.indexDirectorySelectionControl);
final IObservableValue<Boolean> indexServerValue=
- WidgetProperties.selection().observe(this.indexServerSelectionControl);
+ WidgetProperties.buttonSelection()
+ .observe(this.indexServerSelectionControl);
final SelectObservableValue<String> typeValue= new SelectObservableValue<>();
typeValue.addOption(REnvConfiguration.SHARED_DIRECTORY, indexDirectoryValue);
typeValue.addOption(REnvConfiguration.SHARED_SERVER, indexServerValue);
db.getContext().bindValue(typeValue,
BeanProperties.value(IREnvConfiguration.PROP_STATE_SHARED_TYPE, String.class)
- .observe(this.configModel) );
+ .observe(this.configModel) );
db.getContext().bindValue(
- WidgetProperties.enabled().observe(this.indexDirectorResourceControl),
+ WidgetProperties.enabled()
+ .observe(this.indexDirectorResourceControl),
indexDirectoryValue );
db.getContext().bindValue(
this.indexDirectorResourceControl.getObservable(),
@@ -207,10 +210,12 @@
.observe(this.configModel) );
db.getContext().bindValue(
- WidgetProperties.enabled().observe(this.indexServerUrlControl),
+ WidgetProperties.enabled()
+ .observe(this.indexServerUrlControl),
indexServerValue );
db.getContext().bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.indexServerUrlControl),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.indexServerUrlControl),
BeanProperties.value(IREnvConfiguration.PROP_STATE_SHARED_SERVER, String.class)
.observe(this.configModel) );
}
diff --git a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/r/launching/ui/REnvTab.java b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/r/launching/ui/REnvTab.java
index bd34b01..f9b5a99 100644
--- a/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/r/launching/ui/REnvTab.java
+++ b/r/org.eclipse.statet.r.ui/srcDebug/org/eclipse/statet/r/launching/ui/REnvTab.java
@@ -163,9 +163,12 @@
@Override
protected void addBindings(final DataBindingContext dbc, final Realm realm) {
- this.rEnvBinding= dbc.bindValue(this.rEnvControl.createObservable(realm), this.rEnvSettingValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(this.rEnvControl.createValidator(dbc))),
+ this.rEnvBinding= dbc.bindValue(
+ this.rEnvControl.createObservable(realm),
+ this.rEnvSettingValue,
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ this.rEnvControl.createValidator(dbc) )),
null );
}
@@ -179,7 +182,7 @@
@Override
protected void doInitialize(final ILaunchConfiguration configuration) {
try {
- final String code= configuration.getAttribute(RLaunching.ATTR_RENV_CODE, (String) null);
+ final String code= configuration.getAttribute(RLaunching.ATTR_RENV_CODE, (String)null);
this.rEnvSettingValue.setValue(code);
} catch (final CoreException e) {
this.rEnvSettingValue.setValue(null);
diff --git a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/internal/redocs/r/Messages.java b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/internal/redocs/r/Messages.java
index 5477a65..2d9a65d 100644
--- a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/internal/redocs/r/Messages.java
+++ b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/internal/redocs/r/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
@@ -41,7 +45,6 @@
public static String ProcessingOperation_RunRCmdTool_Wd_error_SpecInvalid_message;
public static String ProcessingOperation_RunRCmdTool_RCmdResource_error_SpecInvalid_message;
public static String ProcessingOperation_RunRCmdTool_RCmdOptions_error_SpecInvalid_message;
-
static {
diff --git a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRCmdToolOperation.java b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRCmdToolOperation.java
index b94e293..0ba64e3 100644
--- a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRCmdToolOperation.java
+++ b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRCmdToolOperation.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.redocs.r.ui.processing;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
import java.util.HashMap;
import java.util.Map;
@@ -24,6 +26,8 @@
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.debug.core.util.OverlayLaunchConfiguration;
import org.eclipse.statet.ecommons.variables.core.VariableText2;
import org.eclipse.statet.ecommons.variables.core.VariableUtils;
@@ -36,6 +40,7 @@
import org.eclipse.statet.r.cmd.ui.launching.RCmdLaunching;
+@NonNullByDefault
public class RunRCmdToolOperation extends AbstractLaunchConfigOperation {
@@ -68,10 +73,11 @@
additionalAttributes.put(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, false);
try {
- String value= config.getAttribute(RCmdLaunching.WORKING_DIRECTORY_ATTR_NAME, ""); //$NON-NLS-1$
+ String value= nonNullAssert(config.getAttribute(
+ RCmdLaunching.WORKING_DIRECTORY_ATTR_NAME, "" )); //$NON-NLS-1$
if (value.isEmpty()) {
- value= VariableUtils.getValue(getStepConfig().getToolConfig().getVariables()
- .get(DocProcessingConfig.WD_LOC_VAR_NAME) );
+ value= VariableUtils.getValue(VariableUtils.getChecked(
+ getStepConfig().getToolConfig().getVariables(), DocProcessingConfig.WD_LOC_VAR_NAME ));
additionalAttributes.put(ExternalProgramLaunchConfig.WORKING_DIRECTORY_ATTR_NAME, value);
}
else {
diff --git a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRConsoleSnippetOperationSettings.java b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRConsoleSnippetOperationSettings.java
index 9f72731..438f972 100644
--- a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRConsoleSnippetOperationSettings.java
+++ b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RunRConsoleSnippetOperationSettings.java
@@ -21,7 +21,7 @@
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -33,6 +33,8 @@
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.PlatformUI;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.databinding.core.validation.UpdateableErrorValidator;
import org.eclipse.statet.ecommons.resources.core.variables.ResourceVariables;
import org.eclipse.statet.ecommons.templates.TemplateVariableProcessor;
@@ -55,6 +57,7 @@
import org.eclipse.statet.r.ui.sourceediting.RTemplateSourceViewerConfigurator;
+@NonNullByDefault
public class RunRConsoleSnippetOperationSettings extends DocProcessingOperationSettings {
@@ -82,7 +85,7 @@
public String getInfo() {
final String label= getLabel();
final String code= this.snippetValue.getValue();
- return label + ": " + ((code != null) ? limitInfo(code) : ""); //$NON-NLS-1$ //$NON-NLS-2$
+ return label + ": " + limitInfo(code); //$NON-NLS-1$
}
@@ -91,7 +94,7 @@
super.init(tab);
final Realm realm= getRealm();
- this.snippetValue= new WritableValue<>(realm);
+ this.snippetValue= new WritableValue<>(realm, "", String.class); //$NON-NLS-1$
}
@Override
@@ -174,12 +177,14 @@
@Override
protected void addBindings(final DataBindingContext dbc) {
dbc.bindValue(
- WidgetProperties.text(SWT.Modify).observe(this.snippetEditor.getTextControl()),
+ WidgetProperties.text(SWT.Modify)
+ .observe(this.snippetEditor.getTextControl()),
this.snippetValue,
- new UpdateValueStrategy().setAfterGetValidator(
- new UpdateableErrorValidator(new VariableTextValidator(
- this.snippetVariableResolver,
- Messages.ProcessingOperation_RunRConsoleSnippet_RCode_error_SpecInvalid_message ))),
+ new UpdateValueStrategy<String, String>()
+ .setAfterGetValidator(new UpdateableErrorValidator<>(
+ new VariableTextValidator(
+ this.snippetVariableResolver,
+ Messages.ProcessingOperation_RunRConsoleSnippet_RCode_error_SpecInvalid_message ))),
null );
}
diff --git a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RweaveDocProcessingManager.java b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RweaveDocProcessingManager.java
index c970acf..ea91fd6 100644
--- a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RweaveDocProcessingManager.java
+++ b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/ui/processing/RweaveDocProcessingManager.java
@@ -16,11 +16,15 @@
import org.eclipse.swt.graphics.Image;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingManager;
import org.eclipse.statet.internal.redocs.r.Messages;
import org.eclipse.statet.redocs.r.ui.RedocsRUIResources;
+@NonNullByDefault
public class RweaveDocProcessingManager extends DocProcessingManager {
@@ -29,7 +33,7 @@
@Override
- protected Image getActionImage(final byte bits) {
+ protected @Nullable Image getActionImage(final byte bits) {
switch (bits) {
case WEAVE_BIT:
return RedocsRUIResources.INSTANCE.getImage(RedocsRUIResources.TOOL_RWEAVE_IMAGE_ID);
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/EditorPreferencePage.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/EditorPreferencePage.java
index 8f11274..e0983e9 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/EditorPreferencePage.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/EditorPreferencePage.java
@@ -19,7 +19,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -27,6 +27,9 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Link;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -39,6 +42,7 @@
import org.eclipse.statet.redocs.tex.r.ui.sourceediting.TexRweaveEditingOptions;
+@NonNullByDefault
public class EditorPreferencePage extends ConfigurationBlockPreferencePage {
@@ -54,13 +58,14 @@
}
+@NonNullByDefault
class EditorConfigurationBlock extends ManagedConfigurationBlock {
private Button spellEnableControl;
- public EditorConfigurationBlock(final StatusChangeListener statusListener) {
+ public EditorConfigurationBlock(final @Nullable StatusChangeListener statusListener) {
super(null, Messages.EditorOptions_title, statusListener);
}
@@ -120,7 +125,8 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.spellEnableControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.spellEnableControl),
createObservable(LTX_SPELLCHECK_ENABLED_PREF) );
}
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/Messages.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/Messages.java
index 203e7e6..f0744ce 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/Messages.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/config/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/Messages.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/Messages.java
index 1ea9857..6935489 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/Messages.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/ProduceTab.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/ProduceTab.java
index 5fae6d5..b41e69a 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/ProduceTab.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/ProduceTab.java
@@ -23,6 +23,8 @@
import org.eclipse.swt.graphics.Image;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingConfig.Format;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingConfigIOStepTab;
@@ -35,6 +37,7 @@
import org.eclipse.statet.redocs.r.ui.processing.RunRConsoleSnippetOperationSettings;
+@NonNullByDefault
public class ProduceTab extends DocProcessingConfigIOStepTab
implements DocProcessingConfigStepTab.Listener {
@@ -109,7 +112,7 @@
}
@Override
- protected IFile getInputFile(final Format format) throws CoreException {
+ protected @Nullable IFile getInputFile(final Format format) throws CoreException {
if (this.weaveTab.isEnabled()) {
return this.weaveTab.getOutputFile();
}
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfig.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfig.java
index a4a7dd6..f7364f6 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfig.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfig.java
@@ -18,10 +18,12 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.redocs.r.ui.processing.RWeaveDocProcessingConfig;
+@NonNullByDefault
public class TexRweaveConfig extends RWeaveDocProcessingConfig {
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfigTabGroup.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfigTabGroup.java
index 3a95996..f75e990 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfigTabGroup.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveConfigTabGroup.java
@@ -24,6 +24,7 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ecommons.debug.ui.config.LaunchConfigPresets;
import org.eclipse.statet.ecommons.debug.ui.util.CheckedCommonTab;
@@ -36,6 +37,7 @@
/**
* Tab group for Sweave (LaTeX+R) output creation toolchain.
*/
+@NonNullByDefault
public class TexRweaveConfigTabGroup extends AbstractLaunchConfigurationTabGroup {
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveLaunchDelegate.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveLaunchDelegate.java
index b172c49..c9af1dc 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveLaunchDelegate.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexRweaveLaunchDelegate.java
@@ -26,6 +26,9 @@
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingOperation;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingToolConfig;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingToolConfig.StepConfig;
@@ -42,6 +45,7 @@
import org.eclipse.statet.redocs.tex.r.ui.TexRweaveUI;
+@NonNullByDefault
public class TexRweaveLaunchDelegate extends DocProcessingToolLaunchDelegate {
@@ -111,7 +115,7 @@
@Override
- protected DocProcessingOperation createStepOperation(final String id) {
+ protected @Nullable DocProcessingOperation createStepOperation(final String id) {
if (id.equals(RunRConsoleSnippetOperation.ID)) {
return new RunRConsoleSnippetOperation();
}
@@ -140,7 +144,7 @@
@Override
public void launch(final ILaunchConfiguration configuration, final String mode,
final ILaunch launch,
- final IProgressMonitor monitor) throws CoreException {
+ final @Nullable IProgressMonitor monitor) throws CoreException {
final Config config= new Config();
if (!config.initRun(configuration)) {
return; // nothing to do
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexTab.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexTab.java
index ecec2c2..ceff1e4 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexTab.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/internal/redocs/tex/r/ui/processing/TexTab.java
@@ -26,6 +26,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -39,6 +40,7 @@
import org.eclipse.statet.redocs.r.ui.processing.RunRConsoleSnippetOperationSettings;
+@NonNullByDefault
public class TexTab extends DocProcessingConfigIOStepTab {
diff --git a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/TexRweaveEditingOptions.java b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/TexRweaveEditingOptions.java
index f7cdbaa..6035db8 100644
--- a/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/TexRweaveEditingOptions.java
+++ b/redocs/org.eclipse.statet.redocs.tex.r/src/org/eclipse/statet/redocs/tex/r/ui/sourceediting/TexRweaveEditingOptions.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.redocs.tex.r.ui.sourceediting;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
import org.eclipse.statet.redocs.tex.r.ui.TexRweaveUI;
+@NonNullByDefault
public class TexRweaveEditingOptions {
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/EditorPreferencePage.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/EditorPreferencePage.java
index 4d6dfe5..0e53f6e 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/EditorPreferencePage.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/EditorPreferencePage.java
@@ -19,7 +19,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
@@ -27,6 +27,9 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Link;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.databinding.jface.DataBindingSupport;
import org.eclipse.statet.ecommons.preferences.core.Preference;
import org.eclipse.statet.ecommons.preferences.ui.ConfigurationBlock;
@@ -39,6 +42,7 @@
import org.eclipse.statet.redocs.wikitext.r.ui.sourceediting.WikitextRweaveEditingSettings;
+@NonNullByDefault
public class EditorPreferencePage extends ConfigurationBlockPreferencePage {
@@ -54,13 +58,14 @@
}
+@NonNullByDefault
class EditorConfigurationBlock extends ManagedConfigurationBlock {
private Button spellEnableControl;
- public EditorConfigurationBlock(final StatusChangeListener statusListener) {
+ public EditorConfigurationBlock(final @Nullable StatusChangeListener statusListener) {
super(null, statusListener);
}
@@ -120,7 +125,8 @@
@Override
protected void addBindings(final DataBindingSupport db) {
db.getContext().bindValue(
- WidgetProperties.selection().observe(this.spellEnableControl),
+ WidgetProperties.buttonSelection()
+ .observe(this.spellEnableControl),
createObservable(WIKIDOC_SPELLCHECK_ENABLED_PREF) );
}
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/Messages.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/Messages.java
index 19eb7b1..050834e 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/Messages.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/config/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/Messages.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/Messages.java
index eb5f30d..7f656cd 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/Messages.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/Messages.java
@@ -16,7 +16,11 @@
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+@NonNullByDefault
+@SuppressWarnings("null")
public class Messages extends NLS {
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/ProduceTab.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/ProduceTab.java
index 2548c81..08d4855 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/ProduceTab.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/ProduceTab.java
@@ -23,6 +23,8 @@
import org.eclipse.swt.graphics.Image;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingConfig.Format;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingConfigIOStepTab;
@@ -35,6 +37,7 @@
import org.eclipse.statet.redocs.r.ui.processing.RunRConsoleSnippetOperationSettings;
+@NonNullByDefault
public class ProduceTab extends DocProcessingConfigIOStepTab
implements DocProcessingConfigStepTab.Listener {
@@ -109,7 +112,7 @@
}
@Override
- protected IFile getInputFile(final Format format) throws CoreException {
+ protected @Nullable IFile getInputFile(final Format format) throws CoreException {
if (this.weaveTab.isEnabled()) {
return this.weaveTab.getOutputFile();
}
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WeaveTab.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WeaveTab.java
index ea61323..10b67f2 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WeaveTab.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WeaveTab.java
@@ -26,6 +26,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ecommons.ui.util.LayoutUtils;
@@ -39,6 +40,7 @@
import org.eclipse.statet.redocs.r.ui.processing.RunRConsoleSnippetOperationSettings;
+@NonNullByDefault
public class WeaveTab extends DocProcessingConfigIOStepTab {
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfig.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfig.java
index d4d4598..c24497e 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfig.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfig.java
@@ -18,10 +18,13 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.redocs.r.ui.processing.RWeaveDocProcessingConfig;
+@NonNullByDefault
public class WikitextRweaveConfig extends RWeaveDocProcessingConfig {
@@ -46,7 +49,7 @@
Messages.Format_AutoWikitext_label, "md / textile / \u2026") { //$NON-NLS-1$
@Override
- public String getExt(final String inputExt) {
+ public @Nullable String getExt(final @Nullable String inputExt) {
if (inputExt != null && inputExt.length() > 1
&& (inputExt.charAt(0) == 'R' || inputExt.charAt(0) == 'r') ) {
return inputExt.substring(1);
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfigTabGroup.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfigTabGroup.java
index 91da0ce..0e1fdc7 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfigTabGroup.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveConfigTabGroup.java
@@ -24,6 +24,7 @@
import org.eclipse.statet.jcommons.collections.ImCollections;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.ecommons.debug.ui.config.LaunchConfigPresets;
import org.eclipse.statet.ecommons.debug.ui.util.CheckedCommonTab;
@@ -36,6 +37,7 @@
/**
* Tab group for Wikitext+R output creation toolchain.
*/
+@NonNullByDefault
public class WikitextRweaveConfigTabGroup extends AbstractLaunchConfigurationTabGroup {
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveLaunchDelegate.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveLaunchDelegate.java
index 08eaf5b..249d328 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveLaunchDelegate.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/WikitextRweaveLaunchDelegate.java
@@ -27,6 +27,9 @@
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingOperation;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingToolConfig;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingToolConfig.StepConfig;
@@ -44,6 +47,7 @@
import org.eclipse.statet.redocs.wikitext.r.ui.WikitextRweaveUI;
+@NonNullByDefault
public class WikitextRweaveLaunchDelegate extends DocProcessingToolLaunchDelegate {
@@ -134,7 +138,7 @@
}
@Override
- protected DocProcessingOperation createStepOperation(final String id) {
+ protected @Nullable DocProcessingOperation createStepOperation(final String id) {
if (id.equals(RunRConsoleSnippetOperation.ID)) {
return new RunRConsoleSnippetOperation();
}
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikitextRweaveEditingSettings.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikitextRweaveEditingSettings.java
index 8c65c4c..3f3d84c 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikitextRweaveEditingSettings.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/redocs/wikitext/r/ui/sourceediting/WikitextRweaveEditingSettings.java
@@ -14,11 +14,14 @@
package org.eclipse.statet.redocs.wikitext.r.ui.sourceediting;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
import org.eclipse.statet.ecommons.preferences.core.Preference.BooleanPref;
import org.eclipse.statet.redocs.wikitext.r.ui.WikitextRweaveUI;
+@NonNullByDefault
public class WikitextRweaveEditingSettings {
diff --git a/rtm/org.eclipse.statet.rtm.base.core/src/org/eclipse/statet/rtm/rtdata/types/RExpr.java b/rtm/org.eclipse.statet.rtm.base.core/src/org/eclipse/statet/rtm/rtdata/types/RExpr.java
index 63a13a3..8488f8f 100644
--- a/rtm/org.eclipse.statet.rtm.base.core/src/org/eclipse/statet/rtm/rtdata/types/RExpr.java
+++ b/rtm/org.eclipse.statet.rtm.base.core/src/org/eclipse/statet/rtm/rtdata/types/RExpr.java
@@ -14,7 +14,11 @@
package org.eclipse.statet.rtm.rtdata.types;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+@NonNullByDefault
public class RExpr {
@@ -40,7 +44,7 @@
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/EObjectListProperty.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/EObjectListProperty.java
index 25d0548..3bcbec1 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/EObjectListProperty.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/EObjectListProperty.java
@@ -38,7 +38,7 @@
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
+import org.eclipse.jface.databinding.viewers.typed.ViewerProperties;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
@@ -230,7 +230,9 @@
getEditingDomain(), this.widget.viewer ));
}
- this.singleSelectionObservable= ViewersObservables.observeSinglePostSelection(this.widget.viewer);
+ this.singleSelectionObservable=
+ ViewerProperties.singlePostSelection((Class<TProperty>)this.modelObservable.getElementType())
+ .observe(this.widget.viewer);
this.buttonGroup.updateState();
}
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/TextProperty.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/TextProperty.java
index 5dd05e5..5b8edd6 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/TextProperty.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/ecommons/emf/ui/forms/TextProperty.java
@@ -19,7 +19,7 @@
import org.eclipse.emf.databinding.edit.IEMFEditValueProperty;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -28,13 +28,12 @@
import org.eclipse.statet.ecommons.emf.core.databinding.IEMFEditContext;
-
public class TextProperty extends EFProperty {
private Text widget;
- private IObservableValue modelObservable;
+ private IObservableValue<String> modelObservable;
public TextProperty(final String label, final String tooltip,
@@ -63,14 +62,16 @@
final IEMFEditValueProperty emfProperty= EMFEditProperties.value(getEditingDomain(),
getEFeature() );
this.modelObservable= emfProperty.observeDetail(getBaseObservable());
- final IObservableValue swtObservable= WidgetProperties.text(SWT.Modify).observe(
- getRealm(), this.widget );
+ final IObservableValue<String> swtObservable= WidgetProperties.text(SWT.Modify)
+ .observe(getRealm(), this.widget );
- getDataBindingContext().bindValue(swtObservable, this.modelObservable);
+ getDataBindingContext().bindValue(
+ swtObservable,
+ this.modelObservable);
}
@Override
- public IObservableValue getPropertyObservable() {
+ public IObservableValue<String> getPropertyObservable() {
return this.modelObservable;
}
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/actions/PerspectiveUtil.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/actions/PerspectiveUtil.java
index a169ba5..96e09ec 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/actions/PerspectiveUtil.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/actions/PerspectiveUtil.java
@@ -41,7 +41,7 @@
import org.eclipse.ui.statushandlers.StatusManager;
import org.eclipse.statet.ecommons.preferences.core.Preference;
-import org.eclipse.statet.ecommons.preferences.core.Preference.StringPref2;
+import org.eclipse.statet.ecommons.preferences.core.Preference.NullableStringPref;
import org.eclipse.statet.ecommons.preferences.core.util.PreferenceUtils;
import org.eclipse.statet.ecommons.ui.util.UIAccess;
@@ -67,7 +67,7 @@
if (finalPerspId == null) {
return;
}
- final Preference<String> pref= new StringPref2(QUALIFIER, "SwitchTo-" + finalPerspId + "-.action"); //$NON-NLS-1$ //$NON-NLS-2$
+ final Preference<String> pref= new NullableStringPref(QUALIFIER, "SwitchTo-" + finalPerspId + "-.action"); //$NON-NLS-1$ //$NON-NLS-2$
final String prefValue= PreferenceUtils.getInstancePrefs().getPreferenceValue(pref);
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExpr2StringConverter.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExpr2StringConverter.java
index c59e7c6..6407872 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExpr2StringConverter.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExpr2StringConverter.java
@@ -16,10 +16,14 @@
import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rtm.rtdata.types.RExpr;
-public class RExpr2StringConverter implements IConverter {
+@NonNullByDefault
+public class RExpr2StringConverter implements IConverter<@Nullable RExpr, String> {
public RExpr2StringConverter() {
@@ -37,11 +41,11 @@
}
@Override
- public String convert(final Object fromObject) {
+ public String convert(final @Nullable RExpr fromObject) {
if (fromObject == null) {
return ""; //$NON-NLS-1$
}
- return ((RExpr) fromObject).getExpr();
+ return fromObject.getExpr();
}
}
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExprListProperty.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExprListProperty.java
index ddf76bc..d87ea2b 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExprListProperty.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/RExprListProperty.java
@@ -37,7 +37,7 @@
import org.eclipse.emf.edit.command.MoveCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.jface.databinding.swt.WidgetProperties;
+import org.eclipse.jface.databinding.swt.typed.WidgetProperties;
import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
import org.eclipse.jface.databinding.viewers.ObservableValueEditingSupport;
import org.eclipse.jface.util.LocalSelectionTransfer;
@@ -55,6 +55,8 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.ecommons.emf.core.IContext;
import org.eclipse.statet.ecommons.emf.core.databinding.IEMFEditContext;
import org.eclipse.statet.ecommons.emf.core.databinding.IEMFEditPropertyContext;
@@ -74,7 +76,7 @@
public class RExprListProperty extends EFProperty implements ButtonGroup.IActions<RTypedExpr> {
- private class RExprEditing extends ObservableValueEditingSupport {
+ private class RExprEditing extends ObservableValueEditingSupport<RTypedExpr, RTypedExpr, String> {
private CellEditor cellEditor;
@@ -104,25 +106,25 @@
@Override
protected IObservableValue<String> doCreateCellEditorObservable(final CellEditor cellEditor) {
-// return new ObjValueObservable<RTypedExpr>(this.modelObservable.getRealm(),
-// (IObjValueWidget<RTypedExpr>) this.cellEditor.getControl() );
return WidgetProperties.text(SWT.Modify)
- .observe(((TextCellEditor) this.cellEditor).getControl());
+ .observe(((TextCellEditor)this.cellEditor).getControl());
}
@Override
- protected Binding createBinding(final IObservableValue target, final IObservableValue model) {
- return getDataBindingContext().bindValue(target, model,
- new UpdateValueStrategy(UpdateValueStrategy.POLICY_CONVERT)
+ protected Binding createBinding(final IObservableValue<String> target, final IObservableValue<RTypedExpr> model) {
+ return getDataBindingContext().bindValue(
+ target,
+ model,
+ new UpdateValueStrategy<String, @Nullable RTypedExpr>(UpdateValueStrategy.POLICY_CONVERT)
.setConverter(new String2RTypedExprConverter(RExprListProperty.this.types.getDefaultTypeKey())),
- new UpdateValueStrategy()
+ new UpdateValueStrategy<@Nullable RTypedExpr, String>()
.setConverter(new RExpr2StringConverter()) );
}
@Override
- protected IObservableValue<RTypedExpr> doCreateElementObservable(final Object element, final ViewerCell cell) {
+ protected IObservableValue<RTypedExpr> doCreateElementObservable(final RTypedExpr element, final ViewerCell cell) {
return new AbstractObservableValue<RTypedExpr>() {
- RTypedExpr value= (RTypedExpr) element;
+ RTypedExpr value= element;
@Override
public Object getValueType() {
return RTypedExpr.class;
@@ -132,7 +134,7 @@
return this.value;
}
@Override
- protected void doSetValue(final RTypedExpr value) {
+ protected void doSetValue(final @Nullable RTypedExpr value) {
final int index= getIndex(value);
final CommandStack commandStack= getEditingDomain().getCommandStack();
final IEMFObservable emfObservable= (IEMFObservable) RExprListProperty.this.modelObservable;
diff --git a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/String2RTypedExprConverter.java b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/String2RTypedExprConverter.java
index 506c736..632000b 100644
--- a/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/String2RTypedExprConverter.java
+++ b/rtm/org.eclipse.statet.rtm.base.ui/src/org/eclipse/statet/rtm/base/ui/rexpr/String2RTypedExprConverter.java
@@ -16,10 +16,14 @@
import org.eclipse.core.databinding.conversion.IConverter;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
import org.eclipse.statet.rtm.rtdata.types.RTypedExpr;
-public class String2RTypedExprConverter implements IConverter {
+@NonNullByDefault
+public class String2RTypedExprConverter implements IConverter<String, @Nullable RTypedExpr> {
private final String type;
@@ -45,12 +49,12 @@
}
@Override
- public RTypedExpr convert(final Object fromObject) {
- final String s= (String) fromObject;
+ public @Nullable RTypedExpr convert(final @Nullable String fromObject) {
+ final String s= fromObject;
if (s == null || s.isEmpty()) {
return null;
}
- return new RTypedExpr(this.type, (String) fromObject);
+ return new RTypedExpr(this.type, fromObject);
}
}