/******************************************************************************* * Copyright (c) 2012-2017 Codenvy, S.A. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.ui.smartTree; import org.eclipse.che.ide.api.data.tree.Node; import org.eclipse.che.ide.ui.smartTree.event.GoIntoStateEvent.HasGoIntoStateHandlers; /** * Go Into controller for specified tree. * By Go Into operation it means that tree isolates selected node if last one's support this feature. * * @author Vlad Zhukovskyi * @see Node#supportGoInto() */ public interface GoInto extends HasGoIntoStateHandlers { /** * Bind specified tree to Go Into processor. * * @param tree * instance of {@link Tree} */ void bind(Tree tree); /** * Try to setup Go Into mode on specified node if last on's support it. * * @param node * node to perform Go Into * @return true if Go Into was activated, otherwise false */ boolean activate(Node node); /** * Returns true if current tree is in Go Into mode now. * * @return true if it is, otherwise false */ boolean isActive(); /** * Resets Go Into mode. Method will do nothing if Go Into mode wasn't activated. */ void reset(); /** * Returns last used node for Go Into or null if no node was used. * * @return {@link Node} or null */ Node getLastUsed(); }