/*******************************************************************************
* Copyright (c) 2012-2015 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.part.projectexplorer;
import org.eclipse.che.ide.api.project.tree.AbstractTreeNode;
import org.eclipse.che.ide.api.project.tree.TreeNode;
import org.eclipse.che.ide.collections.Array;
import org.eclipse.che.ide.ui.tree.NodeDataAdapter;
import org.eclipse.che.ide.ui.tree.TreeNodeElement;
/**
* An {@link NodeDataAdapter} that allows to visit the {@link AbstractTreeNode}.
*
* @author Artem Zatsarynnyy
*/
public class ProjectTreeNodeDataAdapter implements NodeDataAdapter<TreeNode<?>> {
/** {@inheritDoc} */
@Override
public int compare(TreeNode<?> a, TreeNode<?> b) {
return a.getId().compareTo(b.getId());
}
/** {@inheritDoc} */
@Override
public boolean hasChildren(TreeNode<?> data) {
return !data.isLeaf();
}
/** {@inheritDoc} */
@Override
public Array<TreeNode<?>> getChildren(TreeNode<?> data) {
return data.getChildren();
}
/** {@inheritDoc} */
@Override
public String getNodeId(TreeNode<?> data) {
return data.getId();
}
/** {@inheritDoc} */
@Override
public String getNodeName(TreeNode<?> data) {
return data.getDisplayName();
}
/** {@inheritDoc} */
@Override
public TreeNode<?> getParent(TreeNode<?> data) {
return data.getParent();
}
/** {@inheritDoc} */
@Override
public TreeNodeElement<TreeNode<?>> getRenderedTreeNode(TreeNode<?> data) {
return data.getTreeNodeElement();
}
/** {@inheritDoc} */
@Override
public void setNodeName(TreeNode<?> data, String name) {
}
/** {@inheritDoc} */
@Override
public void setRenderedTreeNode(TreeNode<?> data, TreeNodeElement<TreeNode<?>> renderedNode) {
data.setTreeNodeElement(renderedNode);
}
/** {@inheritDoc} */
@Override
public TreeNode<?> getDragDropTarget(TreeNode<?> data) {
return null;
}
/** {@inheritDoc} */
@Override
public Array<String> getNodePath(TreeNode<?> data) {
return PathUtils.getNodePath(this, data);
}
/** {@inheritDoc} */
@Override
public TreeNode<?> getNodeByPath(TreeNode<?> root, Array<String> relativeNodePath) {
return null;
}
}