diff options
author | David Dubrow | 2010-03-13 14:59:57 +0000 |
---|---|---|
committer | David Dubrow | 2010-03-13 14:59:57 +0000 |
commit | e7d0761389fb894064a243a7eeae461067863c93 (patch) | |
tree | a3e9280bd7715a225b688fbe1b522e5e4d732bfc /dsf | |
parent | 900aeefc478f301388690f3116430b2e8e837a1e (diff) | |
download | org.eclipse.cdt-e7d0761389fb894064a243a7eeae461067863c93.tar.gz org.eclipse.cdt-e7d0761389fb894064a243a7eeae461067863c93.tar.xz org.eclipse.cdt-e7d0761389fb894064a243a7eeae461067863c93.zip |
Bug 305365 allowing editable value to differ from formatted value
Diffstat (limited to 'dsf')
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 |