| /* |
| * Copyright 2000-2013 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. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.intellij.xdebugger.frame; |
| |
| import com.intellij.xdebugger.Obsolescent; |
| import com.intellij.xdebugger.XDebuggerBundle; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import java.awt.*; |
| |
| /** |
| * Supports asynchronous fetching full text of a value. If full text is already computed use {@link ImmediateFullValueEvaluator} |
| * @see XValueNode#setFullValueEvaluator |
| * @see ImmediateFullValueEvaluator |
| * |
| * @author nik |
| */ |
| public abstract class XFullValueEvaluator { |
| private final String myLinkText; |
| private boolean myShowValuePopup = true; |
| |
| protected XFullValueEvaluator() { |
| this(XDebuggerBundle.message("node.test.show.full.value")); |
| } |
| |
| protected XFullValueEvaluator(int actualLength) { |
| this(XDebuggerBundle.message("node.text.ellipsis.truncated", actualLength)); |
| } |
| |
| /** |
| * @param linkText text of the link what will be appended to a variables tree node text |
| */ |
| protected XFullValueEvaluator(@NotNull String linkText) { |
| myLinkText = linkText; |
| } |
| |
| public boolean isShowValuePopup() { |
| return myShowValuePopup; |
| } |
| |
| public XFullValueEvaluator setShowValuePopup(boolean value) { |
| myShowValuePopup = value; |
| return this; |
| } |
| |
| /** |
| * Start fetching full text of the value. Note that this method is called from the Event Dispatch Thread so it should return quickly |
| * @param callback used to notify that the full text has been successfully evaluated or an error occurs |
| */ |
| public abstract void startEvaluation(@NotNull XFullValueEvaluationCallback callback); |
| |
| public String getLinkText() { |
| return myLinkText; |
| } |
| |
| public interface XFullValueEvaluationCallback extends Obsolescent, XValueCallback { |
| void evaluated(@NotNull String fullValue); |
| |
| void evaluated(@NotNull String fullValue, @Nullable Font font); |
| } |
| } |