diff --git a/ExtendedApi/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java b/ExtendedApi/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java index 9bf75e344a12..09c425be1134 100644 --- a/ExtendedApi/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java +++ b/ExtendedApi/src/com/intellij/extapi/psi/ASTWrapperPsiElement.java @@ -22,6 +22,7 @@ import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.SearchScope; import com.intellij.util.IncorrectOperationException; +import com.intellij.pom.Navigatable; import java.util.ArrayList; import java.util.List; @@ -258,6 +259,11 @@ public class ASTWrapperPsiElement extends ElementBase implements PsiElement, Nav return true; } + public boolean canNavigateToSource() { + final Navigatable descriptor = EditSourceUtil.getDescriptor(getNavigationElement()); + return descriptor != null && descriptor.canNavigateToSource(); + } + public FileStatus getFileStatus() { if (!isPhysical()) return FileStatus.NOT_CHANGED; PsiFile contFile = getContainingFile(); diff --git a/UsageView/src/com/intellij/usages/UsageInfo2UsageAdapter.java b/UsageView/src/com/intellij/usages/UsageInfo2UsageAdapter.java index 65a50f6b346f..8774f3fb9753 100644 --- a/UsageView/src/com/intellij/usages/UsageInfo2UsageAdapter.java +++ b/UsageView/src/com/intellij/usages/UsageInfo2UsageAdapter.java @@ -136,6 +136,9 @@ public class UsageInfo2UsageAdapter implements Usage, UsageInModule, UsageInLibr return descriptor != null ? descriptor.canNavigate() : false; } + public boolean canNavigateToSource() { + return canNavigate(); + } private OpenFileDescriptor getDescriptor() { return isValid() ? new OpenFileDescriptor(getProject(), getFile(), myRangeMarkers.get(0).getStartOffset()) : null; diff --git a/UsageView/src/com/intellij/usages/impl/GroupNode.java b/UsageView/src/com/intellij/usages/impl/GroupNode.java index e83df5b22e42..2c5c573ce309 100644 --- a/UsageView/src/com/intellij/usages/impl/GroupNode.java +++ b/UsageView/src/com/intellij/usages/impl/GroupNode.java @@ -191,6 +191,11 @@ class GroupNode extends Node implements Navigatable { return myGroup != null && myGroup.canNavigate(); } + public boolean canNavigateToSource() { + return myGroup != null && myGroup.canNavigateToSource(); + } + + protected boolean isDataExcluded() { Enumeration enumeration = children(); while (enumeration.hasMoreElements()) { diff --git a/UsageView/src/com/intellij/usages/impl/UsageNode.java b/UsageView/src/com/intellij/usages/impl/UsageNode.java index 4041688e939b..4b315d26f6be 100644 --- a/UsageView/src/com/intellij/usages/impl/UsageNode.java +++ b/UsageView/src/com/intellij/usages/impl/UsageNode.java @@ -49,6 +49,10 @@ class UsageNode extends Node implements Comparable, Navigatable { return myUsage.isValid() && myUsage.canNavigate(); } + public boolean canNavigateToSource() { + return myUsage.isValid() && myUsage.canNavigate(); + } + protected boolean isDataValid() { return myUsage.isValid(); } diff --git a/UsageView/src/com/intellij/usages/impl/rules/ClassGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/ClassGroupingRule.java index bdd633cb644b..4add73ca7b3a 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/ClassGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/ClassGroupingRule.java @@ -129,6 +129,10 @@ public class ClassGroupingRule implements UsageGroupingRule { return isValid(); } + public boolean canNavigateToSource() { + return canNavigate(); + } + public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/UsageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java index ed190d7c32dd..c5fa8be06178 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/FileGroupingRule.java @@ -90,6 +90,10 @@ public class FileGroupingRule implements UsageGroupingRule { return true; } + public boolean canNavigateToSource() { + return canNavigate(); + } + public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/UsageView/src/com/intellij/usages/impl/rules/MethodGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/MethodGroupingRule.java index e14fc9290ddd..6ab7a82cf81f 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/MethodGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/MethodGroupingRule.java @@ -104,6 +104,10 @@ public class MethodGroupingRule implements UsageGroupingRule { return isValid(); } + public boolean canNavigateToSource() { + return canNavigate(); + } + public int compareTo(UsageGroup usageGroup) { if (!(usageGroup instanceof MethodUsageGroup)) { LOG.error("MethodUsageGroup expected but " + usageGroup.getClass() + " found"); diff --git a/UsageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java index c53ac8adc3e7..fb6dab009aa4 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/ModuleGroupingRule.java @@ -76,6 +76,10 @@ public class ModuleGroupingRule implements UsageGroupingRule { return false; } + public boolean canNavigateToSource() { + return canNavigate(); + } + public Object getData(String dataId) { return null; } @@ -137,6 +141,10 @@ public class ModuleGroupingRule implements UsageGroupingRule { return false; } + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup o) { if (o instanceof LibraryUsageGroup) return -1; return o.getText(null).compareTo(getText(null)); diff --git a/UsageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java index ff58af7dca71..227d95ad33a9 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/NonCodeUsageGroupingRule.java @@ -32,6 +32,10 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { public int compareTo(UsageGroup usageGroup) { return usageGroup == this ? 0 : 1; } public void navigate(boolean requestFocus) { } public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return canNavigate(); + } } private static class NonCodeUsageGroup implements UsageGroup { @@ -49,6 +53,10 @@ public class NonCodeUsageGroupingRule implements UsageGroupingRule { public int compareTo(UsageGroup usageGroup) { return usageGroup == this ? 0 : -1; } public void navigate(boolean requestFocus) { } public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return canNavigate(); + } } public UsageGroup groupUsage(Usage usage) { diff --git a/UsageView/src/com/intellij/usages/impl/rules/PackageGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/PackageGroupingRule.java index 506a6b9756e6..ced542c96d40 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/PackageGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/PackageGroupingRule.java @@ -81,6 +81,10 @@ public class PackageGroupingRule implements UsageGroupingRule { return myPackage.canNavigate(); } + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } @@ -142,6 +146,10 @@ public class PackageGroupingRule implements UsageGroupingRule { return directory != null && directory.canNavigate(); } + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/UsageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java b/UsageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java index 8ae827f05e33..9328d46be036 100644 --- a/UsageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java +++ b/UsageView/src/com/intellij/usages/impl/rules/UsageTypeGroupingRule.java @@ -124,6 +124,10 @@ public class UsageTypeGroupingRule implements UsageGroupingRule { public void navigate(boolean focus) { } public boolean canNavigate() { return false; } + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup usageGroup) { return getText(null).compareTo(usageGroup.getText(null)); } diff --git a/UsageView/testSource/com/intellij/usages/impl/UsageNodeTreeBuilderTest.java b/UsageView/testSource/com/intellij/usages/impl/UsageNodeTreeBuilderTest.java index a2ffe29e2937..39598afd368f 100644 --- a/UsageView/testSource/com/intellij/usages/impl/UsageNodeTreeBuilderTest.java +++ b/UsageView/testSource/com/intellij/usages/impl/UsageNodeTreeBuilderTest.java @@ -130,6 +130,10 @@ public class UsageNodeTreeBuilderTest extends TestCase { public void navigate(boolean requestFocus) { } public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return false; + } } private static class OddEvenGroupingRule implements UsageGroupingRule { @@ -147,6 +151,11 @@ public class UsageNodeTreeBuilderTest extends TestCase { public void navigate(boolean focus) throws UnsupportedOperationException { } public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup o) { return o == ODD ? -1 : 0; } public String toString() { return getText(null); } }; @@ -165,6 +174,11 @@ public class UsageNodeTreeBuilderTest extends TestCase { public void navigate(boolean focus) throws UnsupportedOperationException { } public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return false; + } + public int compareTo(UsageGroup o) { return o == EVEN ? 1 : 0; } public String toString() { return getText(null); } }; @@ -229,6 +243,10 @@ public class UsageNodeTreeBuilderTest extends TestCase { return false; } + public boolean canNavigateToSource() { + return false; + } + public boolean isReadOnly() { return false; } diff --git a/openapi/src/com/intellij/ide/util/treeView/AbstractTreeNode.java b/openapi/src/com/intellij/ide/util/treeView/AbstractTreeNode.java index 872f01cd4567..d334fef18f42 100644 --- a/openapi/src/com/intellij/ide/util/treeView/AbstractTreeNode.java +++ b/openapi/src/com/intellij/ide/util/treeView/AbstractTreeNode.java @@ -148,6 +148,10 @@ public abstract class AbstractTreeNode extends NodeDescriptor implements return false; } + public boolean canNavigateToSource() { + return false; + } + protected final Object getParentValue() { return getParent() == null ? null : getParent().getValue(); } diff --git a/openapi/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java b/openapi/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java index 9f834612de94..d6e60fd33c9f 100644 --- a/openapi/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java +++ b/openapi/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java @@ -105,6 +105,10 @@ public class OpenFileDescriptor implements Navigatable { return true; } + public boolean canNavigateToSource() { + return true; + } + public Project getProject() { return myProject; } diff --git a/openapi/src/com/intellij/util/EditSourceOnDoubleClickHandler.java b/openapi/src/com/intellij/util/EditSourceOnDoubleClickHandler.java index 78b02ec054df..ef25a92e3e14 100644 --- a/openapi/src/com/intellij/util/EditSourceOnDoubleClickHandler.java +++ b/openapi/src/com/intellij/util/EditSourceOnDoubleClickHandler.java @@ -31,7 +31,7 @@ public class EditSourceOnDoubleClickHandler { if (((TreeNode)selectionPath.getLastPathComponent()).isLeaf() || !expandOnDoubleClick(((TreeNode)selectionPath.getLastPathComponent()))) { //Node expansion for non-leafs has a higher priority Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(true); } } @@ -58,7 +58,7 @@ public class EditSourceOnDoubleClickHandler { Project project = (Project)dataContext.getData(DataConstants.PROJECT); if (project == null) return; Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(true); } } @@ -75,7 +75,7 @@ public class EditSourceOnDoubleClickHandler { Project project = (Project)dataContext.getData(DataConstants.PROJECT); if (project == null) return; Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(true); } } @@ -93,7 +93,7 @@ public class EditSourceOnDoubleClickHandler { if (!list.getCellBounds(index, index).contains(point)) return; DataContext dataContext = DataManager.getInstance().getDataContext(list); Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable == null || !navigatable.canNavigate()) { return; } + if (navigatable == null || !navigatable.canNavigateToSource()) { return; } navigatable.navigate(true); diff --git a/openapi/src/com/intellij/util/EditSourceOnEnterKeyHandler.java b/openapi/src/com/intellij/util/EditSourceOnEnterKeyHandler.java index 4a7aedea6cce..516bdcbc6ef1 100644 --- a/openapi/src/com/intellij/util/EditSourceOnEnterKeyHandler.java +++ b/openapi/src/com/intellij/util/EditSourceOnEnterKeyHandler.java @@ -28,7 +28,7 @@ public class EditSourceOnEnterKeyHandler{ if (project == null) return; Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(false); } } @@ -43,7 +43,7 @@ public class EditSourceOnEnterKeyHandler{ public void actionPerformed(ActionEvent e) { DataContext dataContext = DataManager.getInstance().getDataContext(component); final Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable == null || !navigatable.canNavigate()) return; + if (navigatable == null || !navigatable.canNavigateToSource()) return; navigatable.navigate(true); diff --git a/source/com/intellij/find/findInProject/FindInProjectManager.java b/source/com/intellij/find/findInProject/FindInProjectManager.java index 0a44a586dee1..3fab91b9b14e 100644 --- a/source/com/intellij/find/findInProject/FindInProjectManager.java +++ b/source/com/intellij/find/findInProject/FindInProjectManager.java @@ -171,6 +171,10 @@ public class FindInProjectManager implements ProjectComponent { public boolean canNavigate() { return false; } + + public boolean canNavigateToSource() { + return false; + } } if (manager!=null) { diff --git a/source/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java b/source/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java index 487713402436..4cab9d15142b 100644 --- a/source/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java +++ b/source/com/intellij/find/findUsages/PsiElement2UsageTargetAdapter.java @@ -81,6 +81,10 @@ public class PsiElement2UsageTargetAdapter implements UsageTarget { return isValid() && getNavigationItem().canNavigate(); } + public boolean canNavigateToSource() { + return isValid() && getNavigationItem().canNavigateToSource(); + } + private NavigationItem getNavigationItem() { return (NavigationItem)myPointer.getElement(); } diff --git a/source/com/intellij/ide/actions/BaseNavigateToSourceAction.java b/source/com/intellij/ide/actions/BaseNavigateToSourceAction.java index 6d6167280fb0..7e84c2acf548 100644 --- a/source/com/intellij/ide/actions/BaseNavigateToSourceAction.java +++ b/source/com/intellij/ide/actions/BaseNavigateToSourceAction.java @@ -29,7 +29,7 @@ public abstract class BaseNavigateToSourceAction extends AnAction { public void actionPerformed(AnActionEvent e) { DataContext dataContext = e.getDataContext(); Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable.canNavigate()) { + if (navigatable.canNavigateToSource()) { navigatable.navigate(myFocusEditor); } } @@ -38,11 +38,7 @@ public abstract class BaseNavigateToSourceAction extends AnAction { public void update(AnActionEvent event){ DataContext dataContext = event.getDataContext(); Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - event.getPresentation().setEnabled(navigatable != null && navigatable.canNavigate()); - } - - private static void navigate(DataContext dataContext, OpenFileDescriptor descriptor, boolean focusEditor) { - SourceNavigator.fromContext(dataContext).navigate(descriptor, focusEditor); + event.getPresentation().setEnabled(navigatable != null && navigatable.canNavigateToSource()); } public static abstract class SourceNavigator { diff --git a/source/com/intellij/ide/commander/CommanderPanel.java b/source/com/intellij/ide/commander/CommanderPanel.java index 4494018077f7..366fd33314c6 100644 --- a/source/com/intellij/ide/commander/CommanderPanel.java +++ b/source/com/intellij/ide/commander/CommanderPanel.java @@ -225,8 +225,7 @@ public class CommanderPanel extends JPanel { public boolean navigateSelectedElement() { final AbstractTreeNode selectedNode = getSelectedNode(); if (selectedNode != null) { - final Object value = selectedNode.getValue(); - if (selectedNode.canNavigate()) { + if (selectedNode.canNavigateToSource()) { selectedNode.navigate(true); return true; } diff --git a/source/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java b/source/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java index ad4c93008620..5e1255a399db 100644 --- a/source/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java +++ b/source/com/intellij/ide/projectView/impl/AbstractProjectViewPSIPane.java @@ -103,7 +103,7 @@ public abstract class AbstractProjectViewPSIPane extends AbstractProjectViewPane DataContext dataContext = DataManager.getInstance().getDataContext(myTree); Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(false); } } diff --git a/source/com/intellij/ide/projectView/impl/nodes/BasePsiNode.java b/source/com/intellij/ide/projectView/impl/nodes/BasePsiNode.java index 35793322b0a8..5a59f068a9f5 100644 --- a/source/com/intellij/ide/projectView/impl/nodes/BasePsiNode.java +++ b/source/com/intellij/ide/projectView/impl/nodes/BasePsiNode.java @@ -121,6 +121,10 @@ public abstract class BasePsiNode extends ProjectViewN return getValue() instanceof NavigationItem && ((NavigationItem)getValue()).canNavigate(); } + public boolean canNavigateToSource() { + return getValue() instanceof NavigationItem && ((NavigationItem)getValue()).canNavigateToSource(); + } + public static VirtualFile getVirtualFile(PsiElement element) { return element instanceof PsiDirectory ? ((PsiDirectory)element).getVirtualFile() diff --git a/source/com/intellij/ide/projectView/impl/nodes/Form.java b/source/com/intellij/ide/projectView/impl/nodes/Form.java index cfb344aea5ec..9cfeea6274e2 100644 --- a/source/com/intellij/ide/projectView/impl/nodes/Form.java +++ b/source/com/intellij/ide/projectView/impl/nodes/Form.java @@ -47,6 +47,14 @@ public class Form implements Navigatable{ } } + public boolean canNavigateToSource() { + for (Iterator iterator = myFormFiles.iterator(); iterator.hasNext();) { + PsiFile psiFile = iterator.next(); + if (psiFile instanceof Navigatable && ((Navigatable)psiFile).canNavigateToSource()) return true; + } + return false; + } + public boolean canNavigate() { for (Iterator iterator = myFormFiles.iterator(); iterator.hasNext();) { PsiFile psiFile = iterator.next(); diff --git a/source/com/intellij/ide/projectView/impl/nodes/FormNode.java b/source/com/intellij/ide/projectView/impl/nodes/FormNode.java index 90b3b7d3079f..c2703faf74b9 100644 --- a/source/com/intellij/ide/projectView/impl/nodes/FormNode.java +++ b/source/com/intellij/ide/projectView/impl/nodes/FormNode.java @@ -53,6 +53,10 @@ public class FormNode extends ProjectViewNode
{ return getValue().canNavigate(); } + public boolean canNavigateToSource() { + return getValue().canNavigateToSource(); + } + public String getToolTip() { return "UI Designer Form"; } diff --git a/source/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java b/source/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java index aea10201d212..85175bb58c6c 100644 --- a/source/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java +++ b/source/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java @@ -132,5 +132,9 @@ public abstract class PsiTreeElementBase implements S } } + public boolean canNavigateToSource() { + return canNavigate(); + } + public abstract StructureViewTreeElement[] getChildrenBase(); } diff --git a/source/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java b/source/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java index ea31b9f91adb..c6ddbd13a10b 100644 --- a/source/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java +++ b/source/com/intellij/ide/structureView/newStructureView/StructureViewComponent.java @@ -166,7 +166,7 @@ public class StructureViewComponent extends JPanel implements TreeActionsOwner, if (KeyEvent.VK_ENTER == e.getKeyCode()) { DataContext dataContext = DataManager.getInstance().getDataContext(getTree()); Navigatable navigatable = (Navigatable)dataContext.getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(false); } } @@ -530,7 +530,7 @@ public class StructureViewComponent extends JPanel implements TreeActionsOwner, Navigatable editSourceDescriptor = (Navigatable)DataManager.getInstance().getDataContext(getTree()) .getData(DataConstants.NAVIGATABLE); - if (myFileEditor != null && editSourceDescriptor != null && editSourceDescriptor.canNavigate()) { + if (myFileEditor != null && editSourceDescriptor != null && editSourceDescriptor.canNavigateToSource()) { editSourceDescriptor.navigate(false); } } diff --git a/source/com/intellij/ide/todo/TodoPanel.java b/source/com/intellij/ide/todo/TodoPanel.java index 662c83a3c86a..8c6d3e3b4563 100644 --- a/source/com/intellij/ide/todo/TodoPanel.java +++ b/source/com/intellij/ide/todo/TodoPanel.java @@ -116,7 +116,7 @@ abstract class TodoPanel extends JPanel implements OccurenceNavigator, DataProvi return; } Navigatable navigatable = (Navigatable)getData(DataConstants.NAVIGATABLE); - if (navigatable != null && navigatable.canNavigate()) { + if (navigatable != null && navigatable.canNavigateToSource()) { navigatable.navigate(false); } } diff --git a/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java b/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java index 04c5b08257ee..d83590cbb666 100644 --- a/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java +++ b/source/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java @@ -221,6 +221,10 @@ public abstract class CachingChildrenTreeNode extends AbstractTreeNode