| /* |
| * Copyright 2000-2009 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.ui.SimpleTextAttributes; |
| import com.intellij.xdebugger.Obsolescent; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import javax.swing.*; |
| |
| /** |
| * Represents a node with children in a debugger tree. This interface isn't supposed to be implemented by a plugin. |
| * |
| * @see XValueContainer |
| * |
| * @author nik |
| */ |
| public interface XCompositeNode extends Obsolescent { |
| /** |
| * If node has more children than this constant it's recommended to stop adding children and call {@link #tooManyChildren(int)} method |
| */ |
| int MAX_CHILDREN_TO_SHOW = 100; |
| |
| /** |
| * Add children to the node. |
| * @param children child nodes to add |
| * @param last <code>true</code> if all children added |
| */ |
| void addChildren(@NotNull XValueChildrenList children, final boolean last); |
| |
| /** |
| * Add an ellipsis node ("...") indicating that the node has too many children. If user double-click on that node |
| * {@link XValueContainer#computeChildren(XCompositeNode)} method will be called again to add next children. |
| * @param remaining number of remaining children or <code>-1</code> if unknown |
| * @see #MAX_CHILDREN_TO_SHOW |
| */ |
| void tooManyChildren(int remaining); |
| |
| /** |
| * Use sort specified in data view settings (alreadySorted false, by default) or not |
| */ |
| void setAlreadySorted(boolean alreadySorted); |
| |
| /** |
| * Indicates that an error occurs |
| * @param errorMessage message describing the error |
| */ |
| void setErrorMessage(@NotNull String errorMessage); |
| |
| /** |
| * Indicates that an error occurs |
| * @param errorMessage message describing the error |
| * @param link describes a hyperlink which will be appended to the error message |
| */ |
| void setErrorMessage(@NotNull String errorMessage, @Nullable XDebuggerTreeNodeHyperlink link); |
| |
| void setMessage(@NotNull String message, final @Nullable Icon icon, final @NotNull SimpleTextAttributes attributes, @Nullable XDebuggerTreeNodeHyperlink link); |
| } |