public Object getData(String dataId) {
   PackageDependenciesNode node = getSelectedNode();
   if (PlatformDataKeys.NAVIGATABLE.is(dataId)) {
     return node;
   }
   if (LangDataKeys.PSI_ELEMENT.is(dataId) && node != null) {
     final PsiElement element = node.getPsiElement();
     return element != null && element.isValid() ? element : null;
   }
   return null;
 }
 public void actionPerformed(AnActionEvent e) {
   PackageDependenciesNode node = myRightTree.getSelectedNode();
   if (node != null) {
     PsiElement elt = node.getPsiElement();
     if (elt != null) {
       DependencyUISettings.getInstance().UI_FILTER_LEGALS = false;
       mySettings.UI_FILTER_LEGALS = false;
       selectElementInLeftTree(elt);
     }
   }
 }
  private void selectElementInLeftTree(PsiElement elt) {
    PsiManager manager = PsiManager.getInstance(myProject);

    PackageDependenciesNode root = (PackageDependenciesNode) myLeftTree.getModel().getRoot();
    Enumeration enumeration = root.breadthFirstEnumeration();
    while (enumeration.hasMoreElements()) {
      PackageDependenciesNode child = (PackageDependenciesNode) enumeration.nextElement();
      if (manager.areElementsEquivalent(child.getPsiElement(), elt)) {
        myLeftTree.setSelectionPath(
            new TreePath(((DefaultTreeModel) myLeftTree.getModel()).getPathToRoot(child)));
        break;
      }
    }
  }
 @Nullable
 @NonNls
 public Object getData(@NonNls String dataId) {
   if (LangDataKeys.PSI_ELEMENT.is(dataId)) {
     final PackageDependenciesNode selectedNode = myRightTree.getSelectedNode();
     if (selectedNode != null) {
       final PsiElement element = selectedNode.getPsiElement();
       return element != null && element.isValid() ? element : null;
     }
   }
   if (PlatformDataKeys.HELP_ID.is(dataId)) {
     return "dependency.viewer.tool.window";
   }
   return null;
 }