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 extends AbstractTreeNode> 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+