Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/dsf
diff options
context:
space:
mode:
Diffstat (limited to 'dsf')
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/SyncVariableDataAccess.java19
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java2
-rw-r--r--dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java9
3 files changed, 23 insertions, 7 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/SyncVariableDataAccess.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/SyncVariableDataAccess.java
index bfbf41e93b1..049af3a6756 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/SyncVariableDataAccess.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/SyncVariableDataAccess.java
@@ -374,11 +374,13 @@ public class SyncVariableDataAccess {
private IFormattedDataDMContext fDmc;
private String fFormatId;
+ private boolean fEditable;
- public GetFormattedValueValueQuery(IFormattedDataDMContext dmc, String formatId) {
+ public GetFormattedValueValueQuery(IFormattedDataDMContext dmc, String formatId, boolean editable) {
super();
fDmc = dmc;
fFormatId = formatId;
+ fEditable = editable;
}
@Override
@@ -413,10 +415,7 @@ public class SyncVariableDataAccess {
service.getFormattedExpressionValue(formDmc, new DataRequestMonitor<FormattedValueDMData>(session.getExecutor(), rm) {
@Override
protected void handleSuccess() {
- /*
- * All good set return value.
- */
- rm.setData(getData().getFormattedValue());
+ rm.setData(fEditable ? getData().getEditableValue() : getData().getFormattedValue());
rm.done();
}
});
@@ -424,6 +423,14 @@ public class SyncVariableDataAccess {
}
public String getFormattedValue(Object element, String formatId) {
+ return getValue(element, formatId, false);
+ }
+
+ public String getEditableValue(Object element, String formatId) {
+ return getValue(element, formatId, true);
+ }
+
+ public String getValue(Object element, String formatId, boolean editable) {
/*
* Get the DMC and the session. If element is not an register DMC, or
@@ -439,7 +446,7 @@ public class SyncVariableDataAccess {
* guard against RejectedExecutionException, because
* DsfSession.getSession() above would only return an active session.
*/
- GetFormattedValueValueQuery query = new GetFormattedValueValueQuery(dmc, formatId);
+ GetFormattedValueValueQuery query = new GetFormattedValueValueQuery(dmc, formatId, editable);
session.getExecutor().execute(query);
/*
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java
index aea2966637b..b390e2aefd7 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/variable/VariableCellModifier.java
@@ -90,7 +90,7 @@ public class VariableCellModifier extends WatchExpressionCellModifier {
formatId = IFormattedValues.NATURAL_FORMAT;
}
- String value = fDataAccess.getFormattedValue(element, formatId);
+ String value = fDataAccess.getEditableValue(element, formatId);
if (value == null) {
return "..."; //$NON-NLS-1$
diff --git a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java
index adea8d9d25d..30c54c5067f 100644
--- a/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java
+++ b/dsf/org.eclipse.cdt.dsf/src/org/eclipse/cdt/dsf/debug/service/IFormattedValues.java
@@ -114,15 +114,24 @@ public interface IFormattedValues extends IDsfService {
public static class FormattedValueDMData implements IDMData {
private final String fValue;
+ private String fEditableValue;
public FormattedValueDMData(String value) {
fValue = value;
+ fEditableValue = value;
}
public String getFormattedValue() {
return fValue;
}
+ public void setEditableValue(String editableValue) {
+ fEditableValue = editableValue;
+ }
+
+ public String getEditableValue() {
+ return fEditableValue;
+ }
}
} \ No newline at end of file

Back to the top