protected void evaluateAndShowHint() {
    myEvaluator.evaluate(myExpression, new XEvaluationCallbackBase() {
      public void evaluated(@NotNull final XValue result) {
        result.computePresentation(new XValueNode() {
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String value, boolean hasChildren) {
            setPresentation(icon, type, XDebuggerUIConstants.EQ_TEXT, value, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String separator, @NonNls @NotNull String value,
                                      boolean hasChildren) {
            setPresentation(icon, type, separator, value, null, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String value,
                                      @Nullable NotNullFunction<String, String> valuePresenter, boolean hasChildren) {
            setPresentation(icon, type, XDebuggerUIConstants.EQ_TEXT, value, valuePresenter, hasChildren);
          }
          @Override
          public void setGroupingPresentation(@Nullable Icon icon, @NonNls @Nullable String value, @Nullable XValuePresenter valuePresenter, boolean expand) {
            setPresentation(icon, value, valuePresenter, true);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String value, @Nullable XValuePresenter valuePresenter, boolean hasChildren) {
            doSetPresentation(icon, null, XDebuggerUIConstants.EQ_TEXT, value, valuePresenter, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @NotNull final String value, @Nullable final NotNullFunction<String, String> valuePresenter, final boolean hasChildren) {
            doSetPresentation(icon, type, separator, value, valuePresenter == null ? null : new XValuePresenterAdapter(valuePresenter), hasChildren);
          }
          private void doSetPresentation(@Nullable Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @Nullable final String value, @Nullable final XValuePresenter valuePresenter, final boolean hasChildren) {
            AppUIUtil.invokeOnEdt(new Runnable() {
              public void run() {
                doShowHint(result, separator, value, type, valuePresenter == null ? XValueNodeImpl.DEFAULT_VALUE_PRESENTER : valuePresenter, hasChildren);
              }
            });
          }
          public void setPresentation(@NonNls final String name, @Nullable final Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String value,
                                      final boolean hasChildren) {
            setPresentation(icon, type, value, hasChildren);
          }
          public void setPresentation(@NonNls final String name, @Nullable final Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @NotNull final String value,
                                      final boolean hasChildren) {
            setPresentation(icon, type, separator, value, hasChildren);
          }
          public void setFullValueEvaluator(@NotNull XFullValueEvaluator fullValueEvaluator) {
            //todo[nik] implement?
          }
          public boolean isObsolete() {
            //todo[nik]
            return false;
          }
        }, XValuePlace.TOOLTIP);
      }
      public void errorOccurred(@NotNull final String errorMessage) {
        LOG.debug("Cannot evaluate '" + myExpression + "':" + errorMessage);
      }
    }, myExpressionPosition);
  }
protected void evaluateAndShowHint() {
    myEvaluator.evaluate(myExpression, new XEvaluationCallbackBase() {
      public void evaluated(@NotNull final XValue result) {
        result.computePresentation(new XValueNode() {
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String value, boolean hasChildren) {
            setPresentation(icon, type, XDebuggerUIConstants.EQ_TEXT, value, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String separator, @NonNls @NotNull String value,
                                      boolean hasChildren) {
            setPresentation(icon, type, separator, value, null, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String type, @NonNls @NotNull String value,
                                      @Nullable NotNullFunction<String, String> valuePresenter, boolean hasChildren) {
            setPresentation(icon, type, XDebuggerUIConstants.EQ_TEXT, value, valuePresenter, hasChildren);
          }
          @Override
          public void setGroupingPresentation(@Nullable Icon icon, @NonNls @Nullable String value, @Nullable XValuePresenter valuePresenter, boolean expand) {
            setPresentation(icon, value, valuePresenter, true);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable String value, @Nullable XValuePresenter valuePresenter, boolean hasChildren) {
            doSetPresentation(icon, null, XDebuggerUIConstants.EQ_TEXT, value, valuePresenter, hasChildren);
          }
          @Override
          public void setPresentation(@Nullable Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @NotNull final String value, @Nullable final NotNullFunction<String, String> valuePresenter, final boolean hasChildren) {
            doSetPresentation(icon, type, separator, value, valuePresenter == null ? null : new XValuePresenterAdapter(valuePresenter), hasChildren);
          }
          private void doSetPresentation(@Nullable Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @Nullable final String value, @Nullable final XValuePresenter valuePresenter, final boolean hasChildren) {
            AppUIUtil.invokeOnEdt(new Runnable() {
              public void run() {
                doShowHint(result, separator, value, type, valuePresenter == null ? XValueNodeImpl.DEFAULT_VALUE_PRESENTER : valuePresenter, hasChildren);
              }
            });
          }
          public void setPresentation(@NonNls final String name, @Nullable final Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String value,
                                      final boolean hasChildren) {
            setPresentation(icon, type, value, hasChildren);
          }
          public void setPresentation(@NonNls final String name, @Nullable final Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator,
                                      @NonNls @NotNull final String value,
                                      final boolean hasChildren) {
            setPresentation(icon, type, separator, value, hasChildren);
          }
          public void setFullValueEvaluator(@NotNull XFullValueEvaluator fullValueEvaluator) {
           
          }
          public boolean isObsolete() {
           
            return false;
          }
        }, XValuePlace.TOOLTIP);
      }
      public void errorOccurred(@NotNull final String errorMessage) {
        LOG.debug("Cannot evaluate '" + myExpression + "':" + errorMessage);
      }
    }, myExpressionPosition);
  }
protected void evaluateandshowhint() { myevaluator.evaluate(myexpression, new xevaluationcallbackbase() { public void evaluated(@notnull final xvalue result) { result.computepresentation(new xvaluenode() { @override public void setpresentation(@nullable icon icon, @nonnls @nullable string type, @nonnls @notnull string value, boolean haschildren) { setpresentation(icon, type, xdebuggeruiconstants.eq_text, value, haschildren); } @override public void setpresentation(@nullable icon icon, @nonnls @nullable string type, @nonnls @notnull string separator, @nonnls @notnull string value, boolean haschildren) { setpresentation(icon, type, separator, value, null, haschildren); } @override public void setpresentation(@nullable icon icon, @nonnls @nullable string type, @nonnls @notnull string value, @nullable notnullfunction<string, string> valuepresenter, boolean haschildren) { setpresentation(icon, type, xdebuggeruiconstants.eq_text, value, valuepresenter, haschildren); } @override public void setgroupingpresentation(@nullable icon icon, @nonnls @nullable string value, @nullable xvaluepresenter valuepresenter, boolean expand) { setpresentation(icon, value, valuepresenter, true); } @override public void setpresentation(@nullable icon icon, @nonnls @nullable string value, @nullable xvaluepresenter valuepresenter, boolean haschildren) { dosetpresentation(icon, null, xdebuggeruiconstants.eq_text, value, valuepresenter, haschildren); } @override public void setpresentation(@nullable icon icon, @nonnls @nullable final string type, @nonnls @notnull final string separator, @nonnls @notnull final string value, @nullable final notnullfunction<string, string> valuepresenter, final boolean haschildren) { dosetpresentation(icon, type, separator, value, valuepresenter == null ? null : new xvaluepresenteradapter(valuepresenter), haschildren); } private void dosetpresentation(@nullable icon icon, @nonnls @nullable final string type, @nonnls @notnull final string separator, @nonnls @nullable final string value, @nullable final xvaluepresenter valuepresenter, final boolean haschildren) { appuiutil.invokeonedt(new runnable() { public void run() { doshowhint(result, separator, value, type, valuepresenter == null ? xvaluenodeimpl.default_value_presenter : valuepresenter, haschildren); } }); } public void setpresentation(@nonnls final string name, @nullable final icon icon, @nonnls @nullable final string type, @nonnls @notnull final string value, final boolean haschildren) { setpresentation(icon, type, value, haschildren); } public void setpresentation(@nonnls final string name, @nullable final icon icon, @nonnls @nullable final string type, @nonnls @notnull final string separator, @nonnls @notnull final string value, final boolean haschildren) { setpresentation(icon, type, separator, value, haschildren); } public void setfullvalueevaluator(@notnull xfullvalueevaluator fullvalueevaluator) { } public boolean isobsolete() { return false; } }, xvalueplace.tooltip); } public void erroroccurred(@notnull final string errormessage) { log.debug("cannot evaluate '" + myexpression + "':" + errormessage); } }, myexpressionposition); }