@Override
  protected ValueIconRenderer getIconRenderer() {
    return (descriptor, evaluationContext, listener) -> {
      Value value = descriptor.getValue();
      if (value instanceof ObjectReference) {
        try {
          ObjectReference objRef = (ObjectReference)value;
          ReferenceType refType = objRef.referenceType();
          if (refType instanceof ClassType) {
            Value rgbValue = null;
            Method getRGBMethod = DebuggerUtils.findMethod(refType, "getRGB", "()I");
            if (getRGBMethod != null) {
              ReferenceType rgbMethodDeclaringType = getRGBMethod.declaringType();
              if (rgbMethodDeclaringType.name().equals("java.awt.Color")) { // getRGB is not overridden
                Field valueField = rgbMethodDeclaringType.fieldByName("value");
                if (valueField != null) {
                  rgbValue = objRef.getValue(valueField);
                }
              }
              if (rgbValue instanceof IntegerValue) {
                return createIcon((IntegerValue)rgbValue);
              }
              else {
                EvaluationContextImpl evalContext = ((EvaluationContextImpl)evaluationContext);
                DebugProcessImpl debugProcess = evalContext.getDebugProcess();
                debugProcess.getManagerThread().schedule(new SuspendContextCommandImpl(evalContext.getSuspendContext()) {
                  @Override
                  public void contextAction(@NotNull SuspendContextImpl suspendContext) {
                    try {
                      Value rgbValue = debugProcess.invokeMethod(evaluationContext, objRef, getRGBMethod, Collections.emptyList());
                      if (rgbValue instanceof IntegerValue) {
                        descriptor.setValueIcon(createIcon((IntegerValue)rgbValue));
                        listener.labelChanged();
                      }
                    }
                    catch (EvaluateException e) {
                      LOG.info(e);
                    }
                  }
                });
              }
            }
          }
        }
        catch (Exception e) {
          throw new EvaluateException(e.getMessage(), e);
        }
      }
      return null;
    };
  }
@Override
  protected ValueIconRenderer getIconRenderer()