Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJared Burns2003-08-07 23:55:52 +0000
committerJared Burns2003-08-07 23:55:52 +0000
commit4d13031db2d6df3beb6fea2ec97466c5076425c6 (patch)
tree469d859c0561d5a35f142602177da1b9997a7232 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java
parentc89741f2c7516db5a13b9d9b420eed62bfa25287 (diff)
downloadeclipse.platform.debug-4d13031db2d6df3beb6fea2ec97466c5076425c6.tar.gz
eclipse.platform.debug-4d13031db2d6df3beb6fea2ec97466c5076425c6.tar.xz
eclipse.platform.debug-4d13031db2d6df3beb6fea2ec97466c5076425c6.zip
Bug 27281 - The watch expressions don't persist across workbench invocations
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java37
1 files changed, 36 insertions, 1 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java
index 2c4e1baae..567b9ed83 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DefaultLabelProvider.java
@@ -31,6 +31,7 @@ import org.eclipse.debug.core.model.ITerminate;
import org.eclipse.debug.core.model.IThread;
import org.eclipse.debug.core.model.IValue;
import org.eclipse.debug.core.model.IVariable;
+import org.eclipse.debug.core.model.IWatchExpression;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ILabelProvider;
@@ -169,6 +170,8 @@ public class DefaultLabelProvider implements ILabelProvider {
label.append(((ILaunchConfiguration)element).getName());
} else if (element instanceof ILaunchConfigurationType) {
label.append(((ILaunchConfigurationType)element).getName());
+ } else if (element instanceof String) {
+ label.append(element);
} else {
label.append(getAdapterLabel(element));
}
@@ -221,10 +224,13 @@ public class DefaultLabelProvider implements ILabelProvider {
}
protected String getExpressionText(IExpression expression) {
+ if (expression instanceof IWatchExpression) {
+ return getWatchExpressionText((IWatchExpression) expression);
+ }
StringBuffer buffer= new StringBuffer(expression.getExpressionText());
String valueString= null;
IValue value= expression.getValue();
- if ((valueString == null) || (valueString.length() < 1)) {
+ if (value != null && (valueString == null || valueString.length() < 1)) {
try {
valueString= value.getValueString();
} catch (DebugException de) {
@@ -238,6 +244,35 @@ public class DefaultLabelProvider implements ILabelProvider {
return buffer.toString();
}
+ /**
+ * @param expression
+ * @return
+ */
+ protected String getWatchExpressionText(IWatchExpression expression) {
+ StringBuffer result= new StringBuffer();
+ result.append('"').append(expression.getExpressionText()).append('"');
+ if (expression.isPending()) {
+ result.append(" (pending)");
+ } else if (expression.hasErrors()) {
+ result.append(" <error(s)_during_the_evaluation>");
+ } else {
+ IValue value= expression.getValue();
+ if (value != null) {
+ String valueString= DebugUIPlugin.getModelPresentation().getText(value);
+ if (valueString.length() > 0) {
+ result.append(" = ").append(valueString); //$NON-NLS-1$
+ }
+ }
+ }
+ if (expression.isObsolete()) {
+ result.append(" (obsolete)");
+ }
+ if (!expression.isEnabled()) {
+ result.append(" (disabled)");
+ }
+ return result.toString();
+ }
+
protected String getVariableText(IVariable variable) {
StringBuffer buffer= new StringBuffer();
try {

Back to the top