From a9f8dca70dab655fffc574c31d062d7a91b6258d Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Thu, 21 May 2015 20:31:52 +0300 Subject: [PATCH] IDEA-140560 In Debug Variables & Watches views, indicate whether a variable is final --- .../debugger/ui/impl/DebuggerTreeRenderer.java | 14 ++++++++++++-- .../ui/impl/watch/ValueDescriptorImpl.java | 7 +++++++ 2 files changed, 19 insertions(+), 2 deletions(-) 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;