com.google.gwt.user.cellview.client.TreeNode.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.user.cellview.client.TreeNode.java

Source

/*
 * Copyright 2010 Google Inc.
 *
 * 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.google.gwt.user.cellview.client;

/**
 * A representation of a node in a tree.
 */
public interface TreeNode {

    /**
     * Get the number of children of the node.
     *
     * @return the child count
     */
    int getChildCount();

    /**
     * Get the value associated with a child node.
     *
     * @param index the child index
     * @return the value
     */
    Object getChildValue(int index);

    /**
     * Get the index of the current node relative to its parent.
     *
     * @return the index of the current node
     */
    int getIndex();

    /**
     * Get the parent node of this node.
     *
     * @return the parent node, or null if this node is the root node
     */
    TreeNode getParent();

    /**
     * Get the value associated with this node. This method can be called on
     * destroyed nodes.
     *
     * @return the value
     */
    Object getValue();

    /**
     * Check whether or not a child node is a leaf node.
     *
     * @param index the index of the child
     * @return true if a leaf node, false if not
     */
    boolean isChildLeaf(int index);

    /**
     * Check whether or not a child node is open.
     *
     * @param index the index of the child
     * @return true if open, false if closed
     */
    boolean isChildOpen(int index);

    /**
     * Check whether or not the current node is destroyed. The node is destroyed
     * when it is closed, even if it still appears in the tree as an unopened
     * non-leaf node. Once a node is destroyed, calling most methods on the node
     * results in an {@link IllegalStateException}.
     *
     * @return true if destroyed, false if active
     */
    boolean isDestroyed();

    /**
     * Open or close a child node and fire an event. If <code>open</code> is true
     * and the {@link TreeNode} successfully opens, returns the child
     * {@link TreeNode}. Delegates to {@link #setChildOpen(int,boolean, boolean)}.
     *
     * @param index the index of the child
     * @param open true to open, false to close
     * @return the {@link TreeNode} that was opened, or null if the node was
     *         closed or could not be opened
     */
    TreeNode setChildOpen(int index, boolean open);

    /**
     * Open or close the node, optionally firing an event. If <code>open</code> is
     * true and the {@link TreeNode} successfully opens, returns the child
     * {@link TreeNode}.
     *
     * @param index the index of the child
     * @param open true to open, false to flose
     * @param fireEvents true to fire an event, false not to
     * @return the {@link TreeNode} that was opened, or null if the node was
     *         closed or could not be opened
     */
    TreeNode setChildOpen(int index, boolean open, boolean fireEvents);
}