diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/DebuggerTreeRenderer.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/DebuggerTreeRenderer.java index d72c967f67be..5ec8f8b57192 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/DebuggerTreeRenderer.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/DebuggerTreeRenderer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,8 +91,18 @@ public class DebuggerTreeRenderer extends ColoredTreeCellRenderer { public static Icon getValueIcon(ValueDescriptorImpl valueDescriptor) { Icon nodeIcon; - if (valueDescriptor instanceof FieldDescriptorImpl && ((FieldDescriptorImpl)valueDescriptor).isStatic()) { + if (valueDescriptor instanceof FieldDescriptorImpl) { + FieldDescriptorImpl fieldDescriptor = (FieldDescriptorImpl)valueDescriptor; nodeIcon = PlatformIcons.FIELD_ICON; + if (fieldDescriptor.getField().isFinal()) { + nodeIcon = new LayeredIcon(nodeIcon, AllIcons.Nodes.FinalMark); + } + if (fieldDescriptor.isStatic()) { + nodeIcon = new LayeredIcon(nodeIcon, AllIcons.Nodes.StaticMark); + } + } + else if (valueDescriptor.isEnumConstant()) { + nodeIcon = PlatformIcons.ENUM_ICON; } else if (valueDescriptor.isArray()) { nodeIcon = AllIcons.Debugger.Db_array; diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java index 69cba9845312..651ed9859b77 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/impl/watch/ValueDescriptorImpl.java @@ -94,6 +94,8 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements assertValueReady(); return myValue instanceof ArrayReference; } + + public boolean isDirty() { assertValueReady(); @@ -123,6 +125,11 @@ public abstract class ValueDescriptorImpl extends NodeDescriptorImpl implements assertValueReady(); return myValue instanceof PrimitiveValue; } + + public boolean isEnumConstant() { + assertValueReady(); + return myValue instanceof ObjectReference && isEnumConstant(((ObjectReference)myValue)); + } public boolean isValueValid() { return myValueException == null;