structure view extracted

This commit is contained in:
Alexey Kudravtsev
2014-02-21 17:51:14 +04:00
parent 9739a4d3c4
commit ac1554975d
128 changed files with 330 additions and 195 deletions
+5
View File
@@ -193,6 +193,11 @@
<module fileurl="file://$PROJECT_DIR$/plugins/xslt-debugger/engine/xslt-debugger-engine.iml" filepath="$PROJECT_DIR$/plugins/xslt-debugger/engine/xslt-debugger-engine.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/xslt-debugger/engine/impl/xslt-debugger-engine-impl.iml" filepath="$PROJECT_DIR$/plugins/xslt-debugger/engine/impl/xslt-debugger-engine-impl.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/plugins/xpath/xslt-rt/xslt-rt.iml" filepath="$PROJECT_DIR$/plugins/xpath/xslt-rt/xslt-rt.iml" group="plugins" />
<module fileurl="file://$PROJECT_DIR$/platform/structure-view-api/structure-view-api.iml" filepath="$PROJECT_DIR$/platform/structure-view-api/structure-view-api.iml" group="platform" />
<module fileurl="file://$PROJECT_DIR$/platform/structure-view-impl/structure-view-impl.iml" filepath="$PROJECT_DIR$/platform/structure-view-impl/structure-view-impl.iml" group="platform" />
<module fileurl="file://$PROJECT_DIR$/java/java-structure-view/java-structure-view.iml" filepath="$PROJECT_DIR$/java/java-structure-view/java-structure-view.iml" group="java"/>
<module fileurl="file://$PROJECT_DIR$/xml/xml-structure-view-api/xml-structure-view-api.iml" filepath="$PROJECT_DIR$/xml/xml-structure-view-api/xml-structure-view-api.iml" group="xml" />
<module fileurl="file://$PROJECT_DIR$/xml/xml-structure-view-impl/xml-structure-view-impl.iml" filepath="$PROJECT_DIR$/xml/xml-structure-view-impl/xml-structure-view-impl.iml" group="xml" />
</modules>
</component>
</project>
+2 -1
View File
@@ -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",
+4
View File
@@ -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 ->
+1
View File
@@ -52,6 +52,7 @@
<orderEntry type="library" name="Xerces" level="project" />
<orderEntry type="library" name="Velocity" level="project" />
<orderEntry type="module" module-name="testFramework-java" scope="TEST" />
<orderEntry type="module" module-name="java-structure-view" exported="" />
</component>
<component name="copyright">
<Base>
@@ -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;
}
}
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="structure-view-impl" />
<orderEntry type="module" module-name="java-psi-impl" />
</component>
</module>
@@ -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.
@@ -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.
@@ -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);
@@ -68,4 +68,4 @@ public class ClassInitializerTreeElement extends PsiTreeElementBase<PsiClassInit
public int getSubLevel() {
return 0;
}
}
}
@@ -47,4 +47,4 @@ public class JavaFileTreeElement extends PsiTreeElementBase<PsiClassOwner> imple
return result;
}
}
}
@@ -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<String> {
private static final Collection<NodeProvider> NODE_PROVIDERS = Arrays.<NodeProvider>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
@@ -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
@@ -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.
@@ -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
+2
View File
@@ -12,6 +12,8 @@
<orderEntry type="module" module-name="annotations" />
<orderEntry type="module" module-name="projectModel-api" />
<orderEntry type="module" module-name="indexing-api" />
<orderEntry type="module" module-name="structure-view-api" />
<orderEntry type="module" module-name="analysis-api" />
</component>
</module>
@@ -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 <Value> extends AbstractTreeNode<Value> implements RootsProvider {
public abstract class ProjectViewNode <Value> extends AbstractTreeNode<Value> implements RootsProvider, SettingsProvider {
protected static final Logger LOG = Logger.getInstance("#com.intellij.ide.projectView.ProjectViewNode");
@@ -82,6 +82,7 @@ public abstract class ProjectViewNode <Value> extends AbstractTreeNode<Value> im
return null;
}
@Override
public final ViewSettings getSettings() {
return mySettings;
}
+1
View File
@@ -30,6 +30,7 @@
<orderEntry type="library" name="gson" level="project" />
<orderEntry type="module" module-name="jps-model-impl" />
<orderEntry type="module" module-name="analysis-impl" exported="" />
<orderEntry type="module" module-name="structure-view-impl" exported="" />
</component>
</module>
@@ -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<String> model) {
return PLACE.equals(model.getPlace());
}
@NotNull
private static FileStructureDialog createStructureViewBasedDialog(@NotNull StructureViewModel structureViewModel,
@NotNull Editor editor,
@@ -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();
@@ -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;
}
+1
View File
@@ -35,6 +35,7 @@
<orderEntry type="library" name="pty4j" level="project" />
<orderEntry type="library" name="Guava" level="project" />
<orderEntry type="library" name="http-client" level="project" />
<orderEntry type="module" module-name="structure-view-api" exported="" />
</component>
</module>
@@ -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.
@@ -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();
}
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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,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
@@ -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);
}
/**
@@ -78,4 +78,4 @@ public abstract class TreeBasedStructureViewBuilder implements StructureViewBuil
public boolean isRootNodeShown() {
return true;
}
}
}
@@ -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();
}
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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<E> extends NodeDescriptor<E> {
return new PresentationData();
}
protected void postprocess(PresentationData date) {
protected void postprocess(@NotNull PresentationData date) {
}
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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();
}
}
@@ -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();
/**
@@ -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;
}
@@ -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.
@@ -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<TreeElement> getChildren();
}
@@ -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> group(final AbstractTreeNode parent, Collection<TreeElement> children);
@NotNull
Collection<Group> group(@NotNull AbstractTreeNode parent, @NotNull Collection<TreeElement> children);
}
@@ -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.
@@ -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();
}
@@ -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.
@@ -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.
@@ -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();
}
@@ -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.
@@ -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.
@@ -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.
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="util" exported="" />
<orderEntry type="module" module-name="extensions" exported="" />
<orderEntry type="module" module-name="core-api" exported="" />
<orderEntry type="library" exported="" name="picocontainer" level="project" />
<orderEntry type="module" module-name="bootstrap" />
<orderEntry type="library" exported="" name="commons-codec" level="project" />
<orderEntry type="module" module-name="platform-resources-en" exported="" />
<orderEntry type="module" module-name="icons" />
<orderEntry type="module-library">
<library>
<CLASSES>
<root url="jar://$MODULE_DIR$/../../lib/automaton.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</orderEntry>
<orderEntry type="module" module-name="projectModel-api" exported="" />
<orderEntry type="module" module-name="editor-ui-api" exported="" />
</component>
</module>
@@ -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.
@@ -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.
@@ -43,4 +43,4 @@ public abstract class StructureViewFactoryEx extends StructureViewFactory {
}
public abstract void runWhenInitialized(@NotNull Runnable runnable);
}
}
@@ -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.
@@ -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.
@@ -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.
@@ -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<T extends TreeElement> implements FileStructureNodeProvider<T> {
public abstract class InheritedMembersNodeProvider<T extends TreeElement> implements FileStructureNodeProvider<T>, ActionShortcutProvider {
@NonNls public static final String ID = "SHOW_INHERITED";
@NotNull
@@ -40,9 +40,14 @@ public abstract class InheritedMembersNodeProvider<T extends TreeElement> 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

Some files were not shown because too many files have changed in this diff Show More