package com.jetbrains.actionscript.profiler.base;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.pom.Navigatable;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.tree.TreePath;
/**
* @author: Fedor.Korotkov
*/
public class NavigatableTree extends JTree implements DataProvider {
@Override
@Nullable
public Object getData(@NonNls String dataId) {
if (CommonDataKeys.NAVIGATABLE.is(dataId)) {
return navigatableSelectedItem();
}
return null;
}
@Nullable
private Navigatable navigatableSelectedItem() {
final TreePath path = getSelectionPath();
if (path == null) {
return null;
}
final Object component = path.getLastPathComponent();
if (component instanceof NavigatableDataProducer) {
return ((NavigatableDataProducer)component).getNavigatable();
}
return null;
}
}