From b26810db0022a3e635bb33c7057bed4adb689b4d Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 22 Apr 2010 20:33:43 +0400 Subject: [PATCH] append "Jump to sources" (IDEA-41192) --- .../ModulesDependenciesPanel.java | 26 ++++++++++++++++++- .../packageDependencies/ui/ModuleNode.java | 16 ++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/moduleDependencies/ModulesDependenciesPanel.java b/platform/lang-impl/src/com/intellij/moduleDependencies/ModulesDependenciesPanel.java index 8a622b3883fb..76a8c28d14fb 100644 --- a/platform/lang-impl/src/com/intellij/moduleDependencies/ModulesDependenciesPanel.java +++ b/platform/lang-impl/src/com/intellij/moduleDependencies/ModulesDependenciesPanel.java @@ -33,8 +33,10 @@ import com.intellij.openapi.progress.ProgressManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootEvent; import com.intellij.openapi.roots.ModuleRootListener; +import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.openapi.ui.Splitter; import com.intellij.openapi.util.IconLoader; +import com.intellij.pom.Navigatable; import com.intellij.ui.*; import com.intellij.ui.content.Content; import com.intellij.ui.treeStructure.Tree; @@ -352,6 +354,7 @@ public class ModulesDependenciesPanel extends JPanel implements ModuleRootListen group.add(actionManager.createExpandAllAction(treeExpander, tree)); } group.add(actionManager.createCollapseAllAction(treeExpander, tree)); + group.add(ActionManager.getInstance().getAction(IdeActions.ACTION_EDIT_SOURCE)); group.add(ActionManager.getInstance().getAction(IdeActions.MODULE_SETTINGS)); appendDependenciesAction(group); return group; @@ -406,7 +409,7 @@ public class ModulesDependenciesPanel extends JPanel implements ModuleRootListen TreeUtil.selectFirstNode(myLeftTree); } - private static class MyUserObject{ + private static class MyUserObject implements Navigatable{ private boolean myInCycle; private final Module myModule; @@ -438,6 +441,18 @@ public class ModulesDependenciesPanel extends JPanel implements ModuleRootListen public String toString() { return myModule.getName(); } + + public void navigate(boolean requestFocus) { + ProjectSettingsService.getInstance(myModule.getProject()).openModuleSettings(myModule); + } + + public boolean canNavigate() { + return myModule != null && !myModule.isDisposed(); + } + + public boolean canNavigateToSource() { + return false; + } } private static class MyTreePanel extends JPanel implements DataProvider{ @@ -466,6 +481,15 @@ public class ModulesDependenciesPanel extends JPanel implements ModuleRootListen if (PlatformDataKeys.HELP_ID.is(dataId)) { return ourHelpID; } + if (PlatformDataKeys.NAVIGATABLE.is(dataId)) { + final TreePath selectionPath = myTree.getLeadSelectionPath(); + if (selectionPath != null && selectionPath.getLastPathComponent() instanceof DefaultMutableTreeNode){ + DefaultMutableTreeNode node = (DefaultMutableTreeNode)selectionPath.getLastPathComponent(); + if (node.getUserObject() instanceof MyUserObject){ + return node.getUserObject(); + } + } + } return null; } } diff --git a/platform/lang-impl/src/com/intellij/packageDependencies/ui/ModuleNode.java b/platform/lang-impl/src/com/intellij/packageDependencies/ui/ModuleNode.java index 77aabfd07e16..d68e4068857f 100644 --- a/platform/lang-impl/src/com/intellij/packageDependencies/ui/ModuleNode.java +++ b/platform/lang-impl/src/com/intellij/packageDependencies/ui/ModuleNode.java @@ -18,6 +18,7 @@ package com.intellij.packageDependencies.ui; import com.intellij.analysis.AnalysisScopeBundle; import com.intellij.openapi.module.Module; +import com.intellij.openapi.roots.ui.configuration.ProjectSettingsService; import com.intellij.openapi.util.Comparing; import com.intellij.psi.PsiFile; @@ -40,6 +41,21 @@ public class ModuleNode extends PackageDependenciesNode { } } + @Override + public boolean canNavigate() { + return myModule != null && !myModule.isDisposed(); + } + + @Override + public boolean canNavigateToSource() { + return false; + } + + @Override + public void navigate(boolean focus) { + ProjectSettingsService.getInstance(myModule.getProject()).openModuleSettings(myModule); + } + public Icon getOpenIcon() { return myModule == null ? null : myModule.getModuleType().getNodeIcon(true); }