diff --git a/.idea/modules.xml b/.idea/modules.xml index d0916bb1096d..d7c5d4aea264 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -193,6 +193,11 @@ + + + + + diff --git a/build/scripts/layouts.gant b/build/scripts/layouts.gant index 02d32fc8abe5..8a9c8d069137 100644 --- a/build/scripts/layouts.gant +++ b/build/scripts/layouts.gant @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -75,6 +75,7 @@ def layoutFull(String home, String targetDirectory, String patchedDescriptorDir "java-indexing-impl", "java-impl", "java-psi-impl", + "java-structure-view", "jsp-spi", "manifest", "platform-main", diff --git a/build/scripts/utils.gant b/build/scripts/utils.gant index ad21749a63bb..7eb7c83f2333 100644 --- a/build/scripts/utils.gant +++ b/build/scripts/utils.gant @@ -255,6 +255,7 @@ binding.setVariable("platformApiModules", [ "lvcs-api", "projectModel-api", "platform-api", + "structure-view-api", "usageView", "vcs-api", "vcs-log-api", @@ -262,6 +263,7 @@ binding.setVariable("platformApiModules", [ "xml-analysis-api", "xml-openapi", "xml-psi-api", + "xml-structure-view-api", ]) @@ -278,6 +280,7 @@ binding.setVariable("platformImplementationModules", [ "lvcs-impl", "projectModel-impl", "platform-impl", + "structure-view-impl", "vcs-impl", "vcs-log-graph", "vcs-log-impl", @@ -290,6 +293,7 @@ binding.setVariable("platformImplementationModules", [ "xml", "xml-analysis-impl", "xml-psi-impl", + "xml-structure-view-impl", ]) binding.setVariable("layoutMacApp", { String path, String ch, Map args -> diff --git a/java/java-impl/java-impl.iml b/java/java-impl/java-impl.iml index 0e65b921e41f..688a8d303608 100644 --- a/java/java-impl/java-impl.iml +++ b/java/java-impl/java-impl.iml @@ -52,6 +52,7 @@ + diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaAnonymousMembersFilter.java b/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaAnonymousMembersFilter.java deleted file mode 100644 index d6d92b6a2655..000000000000 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaAnonymousMembersFilter.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2000-2014 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.ide.structureView.impl.java; - -import com.intellij.ide.util.FileStructureFilter; -import com.intellij.ide.util.treeView.smartTree.ActionPresentation; -import com.intellij.ide.util.treeView.smartTree.ActionPresentationData; -import com.intellij.ide.util.treeView.smartTree.TreeElement; -import com.intellij.openapi.actionSystem.Shortcut; -import com.intellij.util.PlatformIcons; -import org.jetbrains.annotations.NotNull; - -/** - * @author Konstantin Bulenkov - */ -public class JavaAnonymousMembersFilter implements FileStructureFilter { - - private static final String ID = "SHOW_ANONYMOUS"; - - @NotNull - @Override - public String getCheckBoxText() { - return "Show Anonymous Classes"; - } - - @NotNull - @Override - public Shortcut[] getShortcut() { - return Shortcut.EMPTY_ARRAY; - } - - @Override - public boolean isVisible(TreeElement treeNode) { - return !(treeNode instanceof JavaAnonymousClassTreeElement); - } - - @Override - public boolean isReverted() { - return true; - } - - @NotNull - @Override - public ActionPresentation getPresentation() { - return new ActionPresentationData(getCheckBoxText(), null, PlatformIcons.ANONYMOUS_CLASS_ICON); - } - - @NotNull - @Override - public String getName() { - return ID; - } -} diff --git a/java/java-structure-view/java-structure-view.iml b/java/java-structure-view/java-structure-view.iml new file mode 100644 index 000000000000..036dead74222 --- /dev/null +++ b/java/java-structure-view/java-structure-view.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/java/java-impl/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java b/java/java-structure-view/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java similarity index 98% rename from java/java-impl/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java rename to java/java-structure-view/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java index 7361877b7e69..0d7e2f08206f 100644 --- a/java/java-impl/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java +++ b/java/java-structure-view/src/com/intellij/ide/highlighter/JavaClsStructureViewBuilderProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/AddAllMembersProcessor.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/AddAllMembersProcessor.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/AddAllMembersProcessor.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/AddAllMembersProcessor.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java similarity index 94% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java index 1f153aadffbd..97b5d3e47c4e 100644 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AccessLevelProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java similarity index 96% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java index a6412f050460..b18f9afe5716 100644 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/AnonymousClassesSorter.java @@ -28,7 +28,7 @@ import java.util.Comparator; public class AnonymousClassesSorter implements Sorter { public static Sorter INSTANCE = new AnonymousClassesSorter(); - private Comparator myComparator = new Comparator() { + private final Comparator myComparator = new Comparator() { @Override public int compare(Object o1, Object o2) { String s1 = SorterUtil.getStringPresentation(o1); diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java similarity index 99% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java index 52119084e8e2..400578037217 100644 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/ClassInitializerTreeElement.java @@ -68,4 +68,4 @@ public class ClassInitializerTreeElement extends PsiTreeElementBase imple return result; } -} \ No newline at end of file +} diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java similarity index 85% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java index 609dc1570a46..a18a4cc271bd 100644 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaFileTreeModel.java @@ -15,14 +15,10 @@ */ package com.intellij.ide.structureView.impl.java; -import com.intellij.ide.actions.ViewStructureAction; import com.intellij.ide.structureView.StructureViewModel; import com.intellij.ide.structureView.StructureViewTreeElement; import com.intellij.ide.structureView.TextEditorBasedStructureViewModel; -import com.intellij.ide.util.treeView.smartTree.Filter; -import com.intellij.ide.util.treeView.smartTree.Grouper; -import com.intellij.ide.util.treeView.smartTree.NodeProvider; -import com.intellij.ide.util.treeView.smartTree.Sorter; +import com.intellij.ide.util.treeView.smartTree.*; import com.intellij.openapi.editor.Editor; import com.intellij.psi.*; import com.intellij.ui.PlaceHolder; @@ -35,19 +31,16 @@ import java.util.Collection; public class JavaFileTreeModel extends TextEditorBasedStructureViewModel implements StructureViewModel.ElementInfoProvider, PlaceHolder { private static final Collection NODE_PROVIDERS = Arrays.asList(new JavaInheritedMembersNodeProvider(), new JavaAnonymousClassesNodeProvider()); - private final PsiClassOwner myFile; private String myPlace; public JavaFileTreeModel(@NotNull PsiClassOwner file, @Nullable Editor editor) { super(editor, file); - myFile = file; } @Override @NotNull public Filter[] getFilters() { - return new Filter[]{new FieldsFilter(), - new PublicElementsFilter()}; + return new Filter[]{new FieldsFilter(), new PublicElementsFilter()}; } @NotNull @@ -65,7 +58,7 @@ public class JavaFileTreeModel extends TextEditorBasedStructureViewModel impleme @Override @NotNull public StructureViewTreeElement getRoot() { - return new JavaFileTreeElement(myFile); + return new JavaFileTreeElement(getPsiFile()); } @Override @@ -77,15 +70,15 @@ public class JavaFileTreeModel extends TextEditorBasedStructureViewModel impleme @NotNull public Sorter[] getSorters() { return new Sorter[] { - ViewStructureAction.isInStructureViewPopup(this) ? KindSorter.POPUP_INSTANCE : KindSorter.INSTANCE, + TreeStructureUtil.isInStructureViewPopup(this) ? KindSorter.POPUP_INSTANCE : KindSorter.INSTANCE, VisibilitySorter.INSTANCE, AnonymousClassesSorter.INSTANCE, Sorter.ALPHA_SORTER}; } @Override - protected PsiFile getPsiFile() { - return myFile; + protected PsiClassOwner getPsiFile() { + return (PsiClassOwner)super.getPsiFile(); } @Override diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaInheritedMembersNodeProvider.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaInheritedMembersNodeProvider.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/JavaInheritedMembersNodeProvider.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaInheritedMembersNodeProvider.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/KindSorter.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/KindSorter.java similarity index 90% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/KindSorter.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/KindSorter.java index 37cc7454abe2..10d8c6057c7e 100644 --- a/java/java-impl/src/com/intellij/ide/structureView/impl/java/KindSorter.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/KindSorter.java @@ -24,12 +24,15 @@ import org.jetbrains.annotations.NotNull; import java.util.Comparator; public class KindSorter implements Sorter { - public static final Sorter INSTANCE = new KindSorter(); - public static final Sorter POPUP_INSTANCE = new KindSorter(){{isPopup = true;}}; + public static final Sorter INSTANCE = new KindSorter(false); + public static final Sorter POPUP_INSTANCE = new KindSorter(true); + public KindSorter(boolean isPopup) { + this.isPopup = isPopup; + } @NonNls public static final String ID = "KIND"; - boolean isPopup = false; + private final boolean isPopup; private final Comparator COMPARATOR = new Comparator() { @Override diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/PropertiesGrouper.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertiesGrouper.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/PropertiesGrouper.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertiesGrouper.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PropertyGroup.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/PsiFieldTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiFieldTreeElement.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/PsiFieldTreeElement.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiFieldTreeElement.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PsiMethodTreeElement.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/PublicElementsFilter.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PublicElementsFilter.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/PublicElementsFilter.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/PublicElementsFilter.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/SuperTypeGroup.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/SuperTypesGrouper.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/SuperTypesGrouper.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/SuperTypesGrouper.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/SuperTypesGrouper.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/VisibilityComparator.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/VisibilityComparator.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/VisibilityComparator.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/VisibilityComparator.java diff --git a/java/java-impl/src/com/intellij/ide/structureView/impl/java/VisibilitySorter.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/VisibilitySorter.java similarity index 100% rename from java/java-impl/src/com/intellij/ide/structureView/impl/java/VisibilitySorter.java rename to java/java-structure-view/src/com/intellij/ide/structureView/impl/java/VisibilitySorter.java diff --git a/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java b/java/java-structure-view/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java similarity index 97% rename from java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java rename to java/java-structure-view/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java index e8d4eba8a8ed..857191fdf4ad 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java +++ b/java/java-structure-view/src/com/intellij/lang/java/JavaStructureViewBuilderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java/java-tests/testSrc/com/intellij/ide/fileStructure/JavaFileStructureTestCase.java b/java/java-tests/testSrc/com/intellij/ide/fileStructure/JavaFileStructureTestCase.java index 674d3160fb37..b031f0e96796 100644 --- a/java/java-tests/testSrc/com/intellij/ide/fileStructure/JavaFileStructureTestCase.java +++ b/java/java-tests/testSrc/com/intellij/ide/fileStructure/JavaFileStructureTestCase.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +18,8 @@ package com.intellij.ide.fileStructure; import com.intellij.JavaTestUtil; import com.intellij.ide.structureView.impl.java.JavaAnonymousClassesNodeProvider; import com.intellij.ide.structureView.impl.java.JavaInheritedMembersNodeProvider; -import com.intellij.ide.util.FileStructurePopup; import com.intellij.ide.util.PropertiesComponent; +import com.intellij.ide.util.treeView.smartTree.TreeStructureUtil; import com.intellij.testFramework.FileStructureTestBase; import com.intellij.testFramework.IdeaTestCase; @@ -66,7 +66,7 @@ public abstract class JavaFileStructureTestCase extends FileStructureTestBase { } private static String getAnonymousPropertyName() { - return FileStructurePopup.getPropertyName(JavaAnonymousClassesNodeProvider.JAVA_ANONYMOUS_PROPERTY_NAME); + return TreeStructureUtil.getPropertyName(JavaAnonymousClassesNodeProvider.JAVA_ANONYMOUS_PROPERTY_NAME); } @Override diff --git a/platform/editor-ui-api/editor-ui-api.iml b/platform/editor-ui-api/editor-ui-api.iml index 3de8227812bb..d45353c10fc4 100644 --- a/platform/editor-ui-api/editor-ui-api.iml +++ b/platform/editor-ui-api/editor-ui-api.iml @@ -12,6 +12,8 @@ + + diff --git a/platform/lang-api/src/com/intellij/ide/projectView/ProjectViewNode.java b/platform/lang-api/src/com/intellij/ide/projectView/ProjectViewNode.java index eabf799ba1bd..64972b0c8308 100644 --- a/platform/lang-api/src/com/intellij/ide/projectView/ProjectViewNode.java +++ b/platform/lang-api/src/com/intellij/ide/projectView/ProjectViewNode.java @@ -44,7 +44,7 @@ import java.util.List; * @see TreeStructureProvider#modify(com.intellij.ide.util.treeView.AbstractTreeNode, java.util.Collection, com.intellij.ide.projectView.ViewSettings) */ -public abstract class ProjectViewNode extends AbstractTreeNode implements RootsProvider { +public abstract class ProjectViewNode extends AbstractTreeNode implements RootsProvider, SettingsProvider { protected static final Logger LOG = Logger.getInstance("#com.intellij.ide.projectView.ProjectViewNode"); @@ -82,6 +82,7 @@ public abstract class ProjectViewNode extends AbstractTreeNode im return null; } + @Override public final ViewSettings getSettings() { return mySettings; } diff --git a/platform/lang-impl/lang-impl.iml b/platform/lang-impl/lang-impl.iml index d1580e0bc141..7528850108a3 100644 --- a/platform/lang-impl/lang-impl.iml +++ b/platform/lang-impl/lang-impl.iml @@ -30,6 +30,7 @@ + diff --git a/platform/lang-impl/src/com/intellij/ide/actions/ViewStructureAction.java b/platform/lang-impl/src/com/intellij/ide/actions/ViewStructureAction.java index 3acb49a1b4ba..b2533d5fad35 100644 --- a/platform/lang-impl/src/com/intellij/ide/actions/ViewStructureAction.java +++ b/platform/lang-impl/src/com/intellij/ide/actions/ViewStructureAction.java @@ -22,6 +22,7 @@ import com.intellij.ide.structureView.StructureViewBuilder; import com.intellij.ide.structureView.StructureViewModel; import com.intellij.ide.util.FileStructureDialog; import com.intellij.ide.util.FileStructurePopup; +import com.intellij.ide.util.treeView.smartTree.TreeStructureUtil; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; @@ -41,7 +42,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class ViewStructureAction extends AnAction { - private static final String PLACE = "StructureViewPopup"; public ViewStructureAction() { setEnabledInModalContext(true); @@ -107,15 +107,11 @@ public class ViewStructureAction extends AnAction { StructureViewModel model = structureView.getTreeModel(); if (model instanceof PlaceHolder) { //noinspection unchecked - ((PlaceHolder)model).setPlace(PLACE); + ((PlaceHolder)model).setPlace(TreeStructureUtil.PLACE); } return createStructureViewPopup(project, fileEditor, structureView); } - public static boolean isInStructureViewPopup(@NotNull PlaceHolder model) { - return PLACE.equals(model.getPlace()); - } - @NotNull private static FileStructureDialog createStructureViewBasedDialog(@NotNull StructureViewModel structureViewModel, @NotNull Editor editor, diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructureDialog.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructureDialog.java index 4abeb0787727..c3ebb42dd5ef 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructureDialog.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructureDialog.java @@ -284,8 +284,7 @@ public class FileStructureDialog extends DialogWrapper { if (text == null) return; - Shortcut[] shortcuts = action instanceof FileStructureFilter ? - ((FileStructureFilter)action).getShortcut() : ((FileStructureNodeProvider)action).getShortcut(); + Shortcut[] shortcuts = FileStructurePopup.extractShortcutFor(action); final JCheckBox chkFilter = new JCheckBox(); diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java index 176e1b7c7a22..f260c732adf5 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java +++ b/platform/lang-impl/src/com/intellij/ide/util/FileStructurePopup.java @@ -43,6 +43,7 @@ import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.fileEditor.ex.IdeDocumentHistory; +import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.keymap.KeymapUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.popup.JBPopup; @@ -713,8 +714,7 @@ public class FileStructurePopup implements Disposable { if (text == null) return; - Shortcut[] shortcuts = action instanceof FileStructureFilter ? - ((FileStructureFilter)action).getShortcut() : ((FileStructureNodeProvider)action).getShortcut(); + Shortcut[] shortcuts = extractShortcutFor(action); final JCheckBox chkFilter = new JCheckBox(); @@ -783,10 +783,20 @@ public class FileStructurePopup implements Disposable { myCheckBoxes.put(action.getClass(), chkFilter); } + @NotNull + static Shortcut[] extractShortcutFor(@NotNull TreeAction action) { + if (action instanceof ActionShortcutProvider) { + String actionId = ((ActionShortcutProvider)action).getActionIdForShortcut(); + return KeymapManager.getInstance().getActiveKeymap().getShortcuts(actionId); + } + return action instanceof FileStructureFilter ? + ((FileStructureFilter)action).getShortcut() : ((FileStructureNodeProvider)action).getShortcut(); + } + private static boolean getDefaultValue(TreeAction action) { if (action instanceof PropertyOwner) { final String propertyName = ((PropertyOwner)action).getPropertyName(); - return PropertiesComponent.getInstance().getBoolean(getPropertyName(propertyName), false); + return PropertiesComponent.getInstance().getBoolean(TreeStructureUtil.getPropertyName(propertyName), false); } return false; @@ -795,15 +805,10 @@ public class FileStructurePopup implements Disposable { private static void saveState(TreeAction action, boolean state) { if (action instanceof PropertyOwner) { final String propertyName = ((PropertyOwner)action).getPropertyName(); - PropertiesComponent.getInstance().setValue(getPropertyName(propertyName), Boolean.toString(state)); + PropertiesComponent.getInstance().setValue(TreeStructureUtil.getPropertyName(propertyName), Boolean.toString(state)); } } - @NonNls - public static String getPropertyName(String propertyName) { - return propertyName + ".file.structure.state"; - } - public void setTitle(String title) { myTitle = title; } diff --git a/platform/platform-api/platform-api.iml b/platform/platform-api/platform-api.iml index df91a1972748..3a4898f7c5cd 100644 --- a/platform/platform-api/platform-api.iml +++ b/platform/platform-api/platform-api.iml @@ -35,6 +35,7 @@ + diff --git a/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java b/platform/structure-view-api/src/com/intellij/ide/projectView/PresentationData.java similarity index 99% rename from platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java rename to platform/structure-view-api/src/com/intellij/ide/projectView/PresentationData.java index 18cd07311f41..435c5ef9279d 100644 --- a/platform/platform-api/src/com/intellij/ide/projectView/PresentationData.java +++ b/platform/structure-view-api/src/com/intellij/ide/projectView/PresentationData.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-api/src/com/intellij/ide/projectView/RootsProvider.java b/platform/structure-view-api/src/com/intellij/ide/projectView/RootsProvider.java similarity index 100% rename from platform/lang-api/src/com/intellij/ide/projectView/RootsProvider.java rename to platform/structure-view-api/src/com/intellij/ide/projectView/RootsProvider.java diff --git a/platform/structure-view-api/src/com/intellij/ide/projectView/SettingsProvider.java b/platform/structure-view-api/src/com/intellij/ide/projectView/SettingsProvider.java new file mode 100644 index 000000000000..e7163ba361c1 --- /dev/null +++ b/platform/structure-view-api/src/com/intellij/ide/projectView/SettingsProvider.java @@ -0,0 +1,20 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ide.projectView; + +public interface SettingsProvider { + ViewSettings getSettings(); +} diff --git a/platform/lang-api/src/com/intellij/ide/projectView/TreeStructureProvider.java b/platform/structure-view-api/src/com/intellij/ide/projectView/TreeStructureProvider.java similarity index 100% rename from platform/lang-api/src/com/intellij/ide/projectView/TreeStructureProvider.java rename to platform/structure-view-api/src/com/intellij/ide/projectView/TreeStructureProvider.java diff --git a/platform/lang-api/src/com/intellij/ide/projectView/ViewSettings.java b/platform/structure-view-api/src/com/intellij/ide/projectView/ViewSettings.java similarity index 98% rename from platform/lang-api/src/com/intellij/ide/projectView/ViewSettings.java rename to platform/structure-view-api/src/com/intellij/ide/projectView/ViewSettings.java index bc11154a08ad..4229fcf47440 100644 --- a/platform/lang-api/src/com/intellij/ide/projectView/ViewSettings.java +++ b/platform/structure-view-api/src/com/intellij/ide/projectView/ViewSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java b/platform/structure-view-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java similarity index 96% rename from platform/platform-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java index 9dc167caac50..ad7a2ce32239 100644 --- a/platform/platform-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/FileEditorPositionListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/structureView/ModelListener.java b/platform/structure-view-api/src/com/intellij/ide/structureView/ModelListener.java similarity index 96% rename from platform/platform-api/src/com/intellij/ide/structureView/ModelListener.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/ModelListener.java index e633d227dfc7..3ec8c284c6ca 100644 --- a/platform/platform-api/src/com/intellij/ide/structureView/ModelListener.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/ModelListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureView.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureView.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureView.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureView.java index ee4817ae5a5f..604fa00b2841 100644 --- a/platform/platform-api/src/com/intellij/ide/structureView/StructureView.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureView.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewBuilder.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewBuilder.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureViewBuilder.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewBuilder.java diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java similarity index 97% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java index 55495001457f..5d70e3d95c7d 100644 --- a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewBuilderProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewFactory.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewFactory.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureViewFactory.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewFactory.java diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewModel.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewModel.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureViewModel.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewModel.java diff --git a/platform/lang-api/src/com/intellij/ide/structureView/StructureViewModelBase.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewModelBase.java similarity index 98% rename from platform/lang-api/src/com/intellij/ide/structureView/StructureViewModelBase.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewModelBase.java index d30c5906f4bb..ac191b813ffd 100644 --- a/platform/lang-api/src/com/intellij/ide/structureView/StructureViewModelBase.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewModelBase.java @@ -37,9 +37,7 @@ public class StructureViewModelBase extends TextEditorBasedStructureViewModel { } public StructureViewModelBase(@NotNull PsiFile psiFile, @NotNull StructureViewTreeElement root) { - super(psiFile); - - myRoot = root; + this(psiFile, null, root); } @Override diff --git a/platform/platform-api/src/com/intellij/ide/structureView/StructureViewTreeElement.java b/platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewTreeElement.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/structureView/StructureViewTreeElement.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/StructureViewTreeElement.java diff --git a/platform/lang-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java b/platform/structure-view-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java similarity index 97% rename from platform/lang-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java index 17a8c21b2ec8..5cef3a5801a6 100644 --- a/platform/lang-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/TextEditorBasedStructureViewModel.java @@ -24,7 +24,7 @@ import com.intellij.openapi.editor.event.CaretListener; import com.intellij.openapi.util.Disposer; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; -import com.intellij.psi.util.PsiUtilBase; +import com.intellij.psi.util.PsiEditorUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.ReflectionUtil; import com.intellij.util.containers.ContainerUtil; @@ -54,7 +54,7 @@ public abstract class TextEditorBasedStructureViewModel implements StructureView * @param psiFile the file for which the structure view model is requested. */ protected TextEditorBasedStructureViewModel(@NotNull PsiFile psiFile) { - this(PsiUtilBase.findEditor(psiFile), psiFile); + this(PsiEditorUtil.Service.getInstance().findEditorByPsiElement(psiFile), psiFile); } /** diff --git a/platform/lang-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java b/platform/structure-view-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java similarity index 99% rename from platform/lang-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java rename to platform/structure-view-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java index 987b28f7e3c4..c0152c7f64ad 100644 --- a/platform/lang-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java +++ b/platform/structure-view-api/src/com/intellij/ide/structureView/TreeBasedStructureViewBuilder.java @@ -78,4 +78,4 @@ public abstract class TreeBasedStructureViewBuilder implements StructureViewBuil public boolean isRootNodeShown() { return true; } -} \ No newline at end of file +} diff --git a/platform/platform-api/src/com/intellij/ide/structureView/package.html b/platform/structure-view-api/src/com/intellij/ide/structureView/package.html similarity index 100% rename from platform/platform-api/src/com/intellij/ide/structureView/package.html rename to platform/structure-view-api/src/com/intellij/ide/structureView/package.html diff --git a/platform/structure-view-api/src/com/intellij/ide/util/ActionShortcutProvider.java b/platform/structure-view-api/src/com/intellij/ide/util/ActionShortcutProvider.java new file mode 100644 index 000000000000..26c5c9388373 --- /dev/null +++ b/platform/structure-view-api/src/com/intellij/ide/util/ActionShortcutProvider.java @@ -0,0 +1,24 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ide.util; + +import org.jetbrains.annotations.NotNull; + +// used in the implementation of FileStructureNodeProvider to avoid dependency on KeyMapManager in com.intellij.ide.util.FileStructureNodeProvider.getShortcut() +public interface ActionShortcutProvider { + @NotNull + String getActionIdForShortcut(); +} diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructureFilter.java b/platform/structure-view-api/src/com/intellij/ide/util/FileStructureFilter.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/util/FileStructureFilter.java rename to platform/structure-view-api/src/com/intellij/ide/util/FileStructureFilter.java diff --git a/platform/lang-impl/src/com/intellij/ide/util/FileStructureNodeProvider.java b/platform/structure-view-api/src/com/intellij/ide/util/FileStructureNodeProvider.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/util/FileStructureNodeProvider.java rename to platform/structure-view-api/src/com/intellij/ide/util/FileStructureNodeProvider.java diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeNode.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/AbstractTreeNode.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeNode.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/AbstractTreeNode.java diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java index 380c76e2351d..acd6548ff26d 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/AbstractTreeStructure.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AlphaComparator.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/AlphaComparator.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/AlphaComparator.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/AlphaComparator.java index b5a71e4375d2..c97bfe5c9296 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AlphaComparator.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/AlphaComparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/IndexComparator.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/IndexComparator.java similarity index 96% rename from platform/platform-api/src/com/intellij/ide/util/treeView/IndexComparator.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/IndexComparator.java index 07d38c9662a8..662b358aeea6 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/IndexComparator.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/IndexComparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java similarity index 99% rename from platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java index dc5e236f6717..b49d89bea205 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java similarity index 94% rename from platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java index 2755f0292458..2bca0fc31b84 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeDescriptorProvidingKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeOptions.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeOptions.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/NodeOptions.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeOptions.java index 376a25b554b1..324f1a58009c 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/NodeOptions.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/NodeOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java index c6b832350fbe..1850778d706b 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/PresentableNodeDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,7 +99,7 @@ public abstract class PresentableNodeDescriptor extends NodeDescriptor { return new PresentationData(); } - protected void postprocess(PresentationData date) { + protected void postprocess(@NotNull PresentationData date) { } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java similarity index 97% rename from platform/platform-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java index 058139e34ef7..1da325dcd5db 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeAnchorizer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java index 4884ca1f804e..7b4e1f83b690 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeUpdatePass.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeVisitor.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeVisitor.java similarity index 94% rename from platform/platform-api/src/com/intellij/ide/util/treeView/TreeVisitor.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeVisitor.java index 2744537e60e4..211abb1b5c72 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/TreeVisitor.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/TreeVisitor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/ValidateableNode.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/ValidateableNode.java similarity index 94% rename from platform/platform-api/src/com/intellij/ide/util/treeView/ValidateableNode.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/ValidateableNode.java index f08ba88976f5..f8f3c3d6fddf 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/ValidateableNode.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/ValidateableNode.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/WeighedItem.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/WeighedItem.java similarity index 94% rename from platform/platform-api/src/com/intellij/ide/util/treeView/WeighedItem.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/WeighedItem.java index ad2552cd62f2..edbe752d3208 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/WeighedItem.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/WeighedItem.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,4 +20,4 @@ package com.intellij.ide.util.treeView; */ public interface WeighedItem { int getWeight(); -} \ No newline at end of file +} diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java similarity index 93% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java index 0a95507ac9f1..8ba47d5b32e1 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentation.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ */ package com.intellij.ide.util.treeView.smartTree; +import org.jetbrains.annotations.NotNull; + import javax.swing.*; /** @@ -31,6 +33,7 @@ public interface ActionPresentation { * * @return the action name. */ + @NotNull String getText(); /** diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java similarity index 90% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java index d5194afe675d..1a85799128cc 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ActionPresentationData.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,6 +15,8 @@ */ package com.intellij.ide.util.treeView.smartTree; +import org.jetbrains.annotations.NotNull; + import javax.swing.*; /** @@ -35,13 +37,14 @@ public class ActionPresentationData implements ActionPresentation { * @param icon the icon for the action, displayed on the toolbar button. */ - public ActionPresentationData(String text, String description, Icon icon) { + public ActionPresentationData(@NotNull String text, String description, Icon icon) { myText = text; myDescription = description; myIcon = icon; } @Override + @NotNull public String getText() { return myText; } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java similarity index 97% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java index f418858a8f1b..3cd07474612f 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Filter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Group.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Group.java similarity index 91% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Group.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Group.java index b1ba9a31d8e0..9623cf6a5c4e 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Group.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Group.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.ide.util.treeView.smartTree; import com.intellij.navigation.ItemPresentation; +import org.jetbrains.annotations.NotNull; import java.util.Collection; @@ -30,6 +31,7 @@ public interface Group { * * @return the group presentation. */ + @NotNull ItemPresentation getPresentation(); /** @@ -37,5 +39,6 @@ public interface Group { * * @return the list of nodes. */ + @NotNull Collection getChildren(); } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java similarity index 88% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java index 83381b65c2b0..9c36f0c5f867 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Grouper.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,5 +37,6 @@ public interface Grouper extends TreeAction { * @param children the children of the parent node. * @return the collection of groups */ - @NotNull Collection group(final AbstractTreeNode parent, Collection children); + @NotNull + Collection group(@NotNull AbstractTreeNode parent, @NotNull Collection children); } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/NodeProvider.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/NodeProvider.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/NodeProvider.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/NodeProvider.java diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java similarity index 95% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java index 8e2263cf6bca..cd2f7a0df243 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/ProvidingTreeModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java similarity index 89% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java index fda76a576379..6ec0f5484b57 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/SortableTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,13 @@ package com.intellij.ide.util.treeView.smartTree; +import org.jetbrains.annotations.NotNull; + /** * Item in a smart tree which allows using a custom text (other than the presentable text) * as a key for alphabetic sorting. */ public interface SortableTreeElement { + @NotNull String getAlphaSortKey(); } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java similarity index 98% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java index 1b0728de37de..cd0f2dbf6516 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/Sorter.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/SorterUtil.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/SorterUtil.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/SorterUtil.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/SorterUtil.java diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java similarity index 97% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java index e35ec5df5dbb..82b907195b04 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java similarity index 88% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java index b672bfa947ef..407c4437e57b 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java +++ b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package com.intellij.ide.util.treeView.smartTree; import com.intellij.navigation.ItemPresentation; +import org.jetbrains.annotations.NotNull; /** * An element in a generic tree control displayed in the IDEA user interface. @@ -24,11 +25,13 @@ import com.intellij.navigation.ItemPresentation; */ public interface TreeElement { + TreeElement[] EMPTY_ARRAY = new TreeElement[0]; /** * Returns the presentation of the tree element. * * @return the element presentation. */ + @NotNull ItemPresentation getPresentation(); /** @@ -36,5 +39,6 @@ public interface TreeElement { * * @return the list of children. */ + @NotNull TreeElement[] getChildren(); } diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeModel.java b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeModel.java similarity index 100% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/TreeModel.java rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/TreeModel.java diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/package.html b/platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/package.html similarity index 100% rename from platform/platform-api/src/com/intellij/ide/util/treeView/smartTree/package.html rename to platform/structure-view-api/src/com/intellij/ide/util/treeView/smartTree/package.html diff --git a/platform/lang-api/src/com/intellij/lang/LanguageStructureViewBuilder.java b/platform/structure-view-api/src/com/intellij/lang/LanguageStructureViewBuilder.java similarity index 97% rename from platform/lang-api/src/com/intellij/lang/LanguageStructureViewBuilder.java rename to platform/structure-view-api/src/com/intellij/lang/LanguageStructureViewBuilder.java index 924f53f6f6f5..df4d76cabf1b 100644 --- a/platform/lang-api/src/com/intellij/lang/LanguageStructureViewBuilder.java +++ b/platform/structure-view-api/src/com/intellij/lang/LanguageStructureViewBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-api/src/com/intellij/lang/PsiStructureViewFactory.java b/platform/structure-view-api/src/com/intellij/lang/PsiStructureViewFactory.java similarity index 96% rename from platform/lang-api/src/com/intellij/lang/PsiStructureViewFactory.java rename to platform/structure-view-api/src/com/intellij/lang/PsiStructureViewFactory.java index ca9ab8589ed6..afe96269e775 100644 --- a/platform/lang-api/src/com/intellij/lang/PsiStructureViewFactory.java +++ b/platform/structure-view-api/src/com/intellij/lang/PsiStructureViewFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-api/src/com/intellij/navigation/AnonymousElementProvider.java b/platform/structure-view-api/src/com/intellij/navigation/AnonymousElementProvider.java similarity index 100% rename from platform/lang-api/src/com/intellij/navigation/AnonymousElementProvider.java rename to platform/structure-view-api/src/com/intellij/navigation/AnonymousElementProvider.java diff --git a/platform/platform-api/src/com/intellij/openapi/util/PropertyOwner.java b/platform/structure-view-api/src/com/intellij/openapi/util/PropertyOwner.java similarity index 94% rename from platform/platform-api/src/com/intellij/openapi/util/PropertyOwner.java rename to platform/structure-view-api/src/com/intellij/openapi/util/PropertyOwner.java index d8aa8b40840b..c344f15a4e23 100644 --- a/platform/platform-api/src/com/intellij/openapi/util/PropertyOwner.java +++ b/platform/structure-view-api/src/com/intellij/openapi/util/PropertyOwner.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2012 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/structure-view-api/structure-view-api.iml b/platform/structure-view-api/structure-view-api.iml new file mode 100644 index 000000000000..199e5f92fca9 --- /dev/null +++ b/platform/structure-view-api/structure-view-api.iml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/platform/lang-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java b/platform/structure-view-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java similarity index 97% rename from platform/lang-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java rename to platform/structure-view-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java index 9601bfb5dc26..e07d30e77c6e 100644 --- a/platform/lang-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java +++ b/platform/structure-view-impl/src/com/intellij/ide/highlighter/LanguageFileTypeStructureViewBuilderProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewExtension.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewExtension.java similarity index 96% rename from platform/lang-impl/src/com/intellij/ide/structureView/StructureViewExtension.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewExtension.java index f92690bacb90..ee94c38030b8 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewExtension.java +++ b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewExtension.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java similarity index 99% rename from platform/lang-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java index ceb4fa72ca14..d1cf194d0ddb 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java +++ b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewFactoryEx.java @@ -43,4 +43,4 @@ public abstract class StructureViewFactoryEx extends StructureViewFactory { } public abstract void runWhenInitialized(@NotNull Runnable runnable); -} \ No newline at end of file +} diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java similarity index 95% rename from platform/lang-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java index 17edcf03b9e1..df3f820f708c 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java +++ b/platform/structure-view-impl/src/com/intellij/ide/structureView/StructureViewWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java similarity index 98% rename from platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java index 5d5f42974461..7251d0917ad4 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java +++ b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewComposite.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewElementWrapper.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewElementWrapper.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewElementWrapper.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewElementWrapper.java diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewModelWrapper.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewModelWrapper.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewModelWrapper.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewModelWrapper.java diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java similarity index 96% rename from platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java index 2e2f7252b81a..403487d4a8e1 100644 --- a/platform/lang-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java +++ b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/StructureViewState.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java b/platform/structure-view-impl/src/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java rename to platform/structure-view-impl/src/com/intellij/ide/structureView/impl/common/PsiTreeElementBase.java diff --git a/platform/lang-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java b/platform/structure-view-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java similarity index 84% rename from platform/lang-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java rename to platform/structure-view-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java index 3b7a1d6257b9..c74d7e06887e 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java +++ b/platform/structure-view-impl/src/com/intellij/ide/util/InheritedMembersNodeProvider.java @@ -21,14 +21,14 @@ import com.intellij.ide.util.treeView.smartTree.ActionPresentation; import com.intellij.ide.util.treeView.smartTree.ActionPresentationData; import com.intellij.ide.util.treeView.smartTree.TreeElement; import com.intellij.openapi.actionSystem.Shortcut; -import com.intellij.openapi.keymap.KeymapManager; +import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; /** * @author Konstantin Bulenkov */ -public abstract class InheritedMembersNodeProvider implements FileStructureNodeProvider { +public abstract class InheritedMembersNodeProvider implements FileStructureNodeProvider, ActionShortcutProvider { @NonNls public static final String ID = "SHOW_INHERITED"; @NotNull @@ -40,9 +40,14 @@ public abstract class InheritedMembersNodeProvider implem @NotNull @Override public Shortcut[] getShortcut() { - return KeymapManager.getInstance().getActiveKeymap().getShortcuts("FileStructurePopup"); + throw new IncorrectOperationException("see getActionIdForShortcut()"); } + @NotNull + @Override + public String getActionIdForShortcut() { + return "FileStructurePopup"; + } @Override @NotNull diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java similarity index 95% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java index 6ba301ad9b67..0a516ae16501 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java +++ b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/AbstractTreeStructureBase.java @@ -16,7 +16,7 @@ package com.intellij.ide.util.treeView; -import com.intellij.ide.projectView.ProjectViewNode; +import com.intellij.ide.projectView.SettingsProvider; import com.intellij.ide.projectView.TreeStructureProvider; import com.intellij.ide.projectView.ViewSettings; import com.intellij.openapi.diagnostic.Logger; @@ -47,7 +47,7 @@ public abstract class AbstractTreeStructureBase extends AbstractTreeStructure { Collection elements = treeNode.getChildren(); List providers = getProvidersDumbAware(); if (!providers.isEmpty()) { - ViewSettings settings = treeNode instanceof ProjectViewNode ? ((ProjectViewNode) treeNode).getSettings() : ViewSettings.DEFAULT; + ViewSettings settings = treeNode instanceof SettingsProvider ? ((SettingsProvider)treeNode).getSettings() : ViewSettings.DEFAULT; for (TreeStructureProvider provider : providers) { try { elements = provider.modify(treeNode, (Collection)elements, settings); diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/CachingChildrenTreeNode.java diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/GroupWrapper.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/GroupWrapper.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/GroupWrapper.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/GroupWrapper.java diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java similarity index 98% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java index e2a10b4d421b..478c160b8c14 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java +++ b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/SmartTreeStructure.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/TreeElementWrapper.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/TreeElementWrapper.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/TreeElementWrapper.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/TreeElementWrapper.java diff --git a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java similarity index 71% rename from platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java rename to platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java index a08f3180b109..ce62a748559e 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java +++ b/platform/structure-view-impl/src/com/intellij/ide/util/treeView/smartTree/TreeStructureUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,6 +17,9 @@ package com.intellij.ide.util.treeView.smartTree; import com.intellij.ide.util.treeView.AbstractTreeStructure; +import com.intellij.ui.PlaceHolder; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import java.util.HashSet; @@ -24,6 +27,8 @@ import java.util.HashSet; * @author Maxim.Mossienko */ public class TreeStructureUtil { + public static final String PLACE = "StructureViewPopup"; + private TreeStructureUtil() {} public static Object[] getChildElementsFromTreeStructure(AbstractTreeStructure treeStructure, Object element) { @@ -37,4 +42,13 @@ public class TreeStructureUtil { return items; } + + public static boolean isInStructureViewPopup(@NotNull PlaceHolder model) { + return PLACE.equals(model.getPlace()); + } + + @NonNls + public static String getPropertyName(String propertyName) { + return propertyName + ".file.structure.state"; + } } diff --git a/platform/structure-view-impl/structure-view-impl.iml b/platform/structure-view-impl/structure-view-impl.iml new file mode 100644 index 000000000000..35a80b95dec3 --- /dev/null +++ b/platform/structure-view-impl/structure-view-impl.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/xml/impl/xml.iml b/xml/impl/xml.iml index 20135bdba460..2fda30d0d4af 100644 --- a/xml/impl/xml.iml +++ b/xml/impl/xml.iml @@ -20,6 +20,7 @@ + diff --git a/xml/openapi/xml-openapi.iml b/xml/openapi/xml-openapi.iml index d6d222394004..ca52bae6ea88 100644 --- a/xml/openapi/xml-openapi.iml +++ b/xml/openapi/xml-openapi.iml @@ -10,6 +10,7 @@ + diff --git a/xml/tests/src/com/intellij/xml/structureView/HtmlFileStructureTest.java b/xml/tests/src/com/intellij/xml/structureView/HtmlFileStructureTest.java index 77aab443bd03..d71aa3b25e87 100644 --- a/xml/tests/src/com/intellij/xml/structureView/HtmlFileStructureTest.java +++ b/xml/tests/src/com/intellij/xml/structureView/HtmlFileStructureTest.java @@ -1,7 +1,22 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.intellij.xml.structureView; -import com.intellij.ide.util.FileStructurePopup; import com.intellij.ide.util.PropertiesComponent; +import com.intellij.ide.util.treeView.smartTree.TreeStructureUtil; import com.intellij.lang.html.structureView.Html5SectionsNodeProvider; import com.intellij.testFramework.FileStructureTestBase; @@ -22,7 +37,7 @@ public class HtmlFileStructureTest extends FileStructureTestBase { } private static String getHtml5OutlineModePropertyName() { - return FileStructurePopup.getPropertyName(Html5SectionsNodeProvider.HTML5_OUTLINE_PROVIDER_PROPERTY); + return TreeStructureUtil.getPropertyName(Html5SectionsNodeProvider.HTML5_OUTLINE_PROVIDER_PROPERTY); } @Override diff --git a/xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java b/xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java similarity index 96% rename from xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java rename to xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java index 8099e2de1107..6ca6a5953729 100644 --- a/xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java +++ b/xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewBuilderProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java b/xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java similarity index 96% rename from xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java rename to xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java index 74b0aae2965d..4ff17cac86b4 100644 --- a/xml/openapi/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java +++ b/xml/xml-structure-view-api/src/com/intellij/ide/structureView/xml/XmlStructureViewElementProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/xml-structure-view-api/xml-structure-view-api.iml b/xml/xml-structure-view-api/xml-structure-view-api.iml new file mode 100644 index 000000000000..15af705d61aa --- /dev/null +++ b/xml/xml-structure-view-api/xml-structure-view-api.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/xml/impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java similarity index 98% rename from xml/impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java index fde490604718..2383784267ae 100644 --- a/xml/impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/AbstractXmlTagTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java similarity index 99% rename from xml/impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java index c8f23585d100..8ca2b8933572 100644 --- a/xml/impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/DtdFileTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java similarity index 98% rename from xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java index e1cd6a213410..f13fe1ccba61 100644 --- a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlFileTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java similarity index 89% rename from xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java rename to xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java index 3067f38411a9..34790afb56d3 100644 --- a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java +++ b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlStructureViewTreeModel.java @@ -23,25 +23,23 @@ import com.intellij.ide.util.treeView.smartTree.Sorter; import com.intellij.lang.dtd.DTDLanguage; import com.intellij.openapi.editor.Editor; import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiFile; import com.intellij.psi.xml.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class XmlStructureViewTreeModel extends TextEditorBasedStructureViewModel { - private final XmlFile myFile; private static final Class[] CLASSES = {XmlTag.class, XmlFile.class, XmlEntityDecl.class, XmlElementDecl.class, XmlAttlistDecl.class, XmlConditionalSection.class}; private static final Sorter[] SORTERS = {Sorter.ALPHA_SORTER}; - public XmlStructureViewTreeModel(XmlFile file, @Nullable Editor editor) { + public XmlStructureViewTreeModel(@NotNull XmlFile file, @Nullable Editor editor) { super(editor, file); - myFile = file; } @Override @NotNull public StructureViewTreeElement getRoot() { + XmlFile myFile = getPsiFile(); if (myFile.getLanguage() == DTDLanguage.INSTANCE) return new DtdFileTreeElement(myFile); return new XmlFileTreeElement(myFile); } @@ -52,8 +50,8 @@ public class XmlStructureViewTreeModel extends TextEditorBasedStructureViewModel } @Override - protected PsiFile getPsiFile() { - return myFile; + protected XmlFile getPsiFile() { + return (XmlFile)super.getPsiFile(); } @Override @@ -66,7 +64,7 @@ public class XmlStructureViewTreeModel extends TextEditorBasedStructureViewModel public Object getCurrentEditorElement() { final Object editorElement = super.getCurrentEditorElement(); if (editorElement instanceof XmlTag) { - for (StructureViewExtension extension : StructureViewFactoryEx.getInstanceEx(myFile.getProject()).getAllExtensions(XmlTag.class)) { + for (StructureViewExtension extension : StructureViewFactoryEx.getInstanceEx(getPsiFile().getProject()).getAllExtensions(XmlTag.class)) { final Object element = extension.getCurrentEditorElement(getEditor(), (PsiElement)editorElement); if (element != null) return element; } diff --git a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java similarity index 98% rename from xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java index ee75742ad237..eddd19cf5b4c 100644 --- a/xml/impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/ide/structureView/impl/xml/XmlTagTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java b/xml/xml-structure-view-impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java similarity index 97% rename from xml/impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java index fcccefe44f88..d6dc3c8cade3 100644 --- a/xml/impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/dtd/DtdStructureViewBuilderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java similarity index 98% rename from xml/impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java index f18222f69592..baee9a1534ec 100644 --- a/xml/impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java similarity index 87% rename from xml/impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java index fb7e5a30caed..97409f894622 100644 --- a/xml/impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/Html5SectionsNodeProvider.java @@ -16,18 +16,19 @@ package com.intellij.lang.html.structureView; import com.intellij.icons.AllIcons; +import com.intellij.ide.util.ActionShortcutProvider; import com.intellij.ide.util.FileStructureNodeProvider; import com.intellij.ide.util.treeView.smartTree.ActionPresentation; import com.intellij.ide.util.treeView.smartTree.ActionPresentationData; import com.intellij.ide.util.treeView.smartTree.TreeElement; import com.intellij.openapi.actionSystem.Shortcut; -import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.util.PropertyOwner; import com.intellij.psi.filters.XmlTagFilter; import com.intellij.psi.scope.processor.FilterElementProcessor; import com.intellij.psi.xml.XmlDocument; import com.intellij.psi.xml.XmlFile; import com.intellij.psi.xml.XmlTag; +import com.intellij.util.IncorrectOperationException; import com.intellij.xml.XmlBundle; import org.jetbrains.annotations.NotNull; @@ -36,7 +37,8 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -public class Html5SectionsNodeProvider implements FileStructureNodeProvider, PropertyOwner { +public class Html5SectionsNodeProvider implements FileStructureNodeProvider, PropertyOwner, + ActionShortcutProvider { public static final String ACTION_ID = "HTML5_OUTLINE_MODE"; public static final String HTML5_OUTLINE_PROVIDER_PROPERTY = "html5.sections.node.provider"; @@ -59,10 +61,16 @@ public class Html5SectionsNodeProvider implements FileStructureNodeProvider { if (xmlFile == null) return false; if (myInStructureViewPopup) { - final String propertyName = FileStructurePopup.getPropertyName(Html5SectionsNodeProvider.HTML5_OUTLINE_PROVIDER_PROPERTY); + final String propertyName = TreeStructureUtil.getPropertyName(Html5SectionsNodeProvider.HTML5_OUTLINE_PROVIDER_PROPERTY); if (PropertiesComponent.getInstance().getBoolean(propertyName, false)) { return true; } diff --git a/xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java similarity index 97% rename from xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java index 9a8741d308a8..91e17be3b451 100644 --- a/xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewBuilderProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java similarity index 92% rename from xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java index f4f080d43c26..6efe68c75ceb 100644 --- a/xml/impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlStructureViewTreeModel.java @@ -17,7 +17,6 @@ package com.intellij.lang.html.structureView; import com.intellij.icons.AllIcons; import com.intellij.ide.IdeBundle; -import com.intellij.ide.actions.ViewStructureAction; import com.intellij.ide.structureView.StructureViewTreeElement; import com.intellij.ide.structureView.impl.xml.XmlStructureViewTreeModel; import com.intellij.ide.util.treeView.smartTree.*; @@ -36,7 +35,7 @@ class HtmlStructureViewTreeModel extends XmlStructureViewTreeModel implements Pl private final Collection myNodeProviders; private String myStructureViewPlace; - private static Sorter HTML_ALPHA_SORTER = new Sorter() { + private static final Sorter HTML_ALPHA_SORTER = new Sorter() { @NotNull @Override public Comparator getComparator() { @@ -106,7 +105,7 @@ class HtmlStructureViewTreeModel extends XmlStructureViewTreeModel implements Pl @Override @NotNull public Sorter[] getSorters() { - if (ViewStructureAction.isInStructureViewPopup(this)) { + if (TreeStructureUtil.isInStructureViewPopup(this)) { return Sorter.EMPTY_ARRAY; // because in popup there's no option to disable sorter } @@ -122,6 +121,6 @@ class HtmlStructureViewTreeModel extends XmlStructureViewTreeModel implements Pl @Override @NotNull public StructureViewTreeElement getRoot() { - return new HtmlFileTreeElement(ViewStructureAction.isInStructureViewPopup(this), (XmlFile)getPsiFile()); + return new HtmlFileTreeElement(TreeStructureUtil.isInStructureViewPopup(this), (XmlFile)getPsiFile()); } } diff --git a/xml/impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java similarity index 99% rename from xml/impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java index f896146608db..ad060e2261e3 100644 --- a/xml/impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/html/structureView/HtmlTagTreeElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java b/xml/xml-structure-view-impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java similarity index 98% rename from xml/impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java rename to xml/xml-structure-view-impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java index ba2721457763..97bb3ec1460c 100644 --- a/xml/impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java +++ b/xml/xml-structure-view-impl/src/com/intellij/lang/xml/XmlStructureViewBuilderFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/xml/xml-structure-view-impl/xml-structure-view-impl.iml b/xml/xml-structure-view-impl/xml-structure-view-impl.iml new file mode 100644 index 000000000000..538b123a1fc9 --- /dev/null +++ b/xml/xml-structure-view-impl/xml-structure-view-impl.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + +