blob: 6c4f6c9c17fefac3e7512c28414d8955b97fcb2a [file] [log] [blame]
/*
* 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);
}
}