diff --git a/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectNode.java b/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectNode.java index fd5b95ac8..f8fc603d4 100644 --- a/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectNode.java +++ b/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectNode.java @@ -3,16 +3,20 @@ package org.intellij.sdk.view.pane; import com.intellij.icons.AllIcons; -import com.intellij.ide.projectView.*; -import com.intellij.ide.projectView.impl.ProjectViewImpl; +import com.intellij.ide.projectView.PresentationData; +import com.intellij.ide.projectView.ProjectView; import com.intellij.ide.util.treeView.AbstractTreeNode; import com.intellij.openapi.Disposable; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectUtil; -import com.intellij.openapi.util.*; +import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Key; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.*; +import com.intellij.openapi.vfs.LocalFileSystem; +import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.openapi.vfs.VirtualFileEvent; +import com.intellij.openapi.vfs.VirtualFileListener; import com.intellij.psi.search.FilenameIndex; import com.intellij.util.Alarm; import org.jetbrains.annotations.NotNull; @@ -58,7 +62,7 @@ public class ImagesProjectNode extends AbstractTreeNode { private Set getImagesFiles(Project project) { Set files = project.getUserData(IMAGES_PROJECT_DIRS); if (files == null) { - files = new HashSet(); + files = new HashSet<>(); project.putUserData(IMAGES_PROJECT_DIRS, files); } return files; @@ -80,19 +84,16 @@ public class ImagesProjectNode extends AbstractTreeNode { } if (files.isEmpty()) return Collections.emptyList(); final List nodes = new ArrayList(files.size()); - final boolean alwaysOnTop = ((ProjectViewImpl) ProjectView.getInstance(myProject)).isFoldersAlwaysOnTop(""); - Collections.sort(files, new Comparator() { - @Override - public int compare(VirtualFile o1, VirtualFile o2) { - if (alwaysOnTop) { - final boolean d1 = o1.isDirectory(); - final boolean d2 = o2.isDirectory(); - if (d1 && !d2) return -1; - if (!d1 && d2) return 1; - } - - return StringUtil.naturalCompare(o1.getName(), o2.getName()); + final boolean alwaysOnTop = ProjectView.getInstance(myProject).isFoldersAlwaysOnTop(""); + Collections.sort(files, (o1, o2) -> { + if (alwaysOnTop) { + final boolean d1 = o1.isDirectory(); + final boolean d2 = o2.isDirectory(); + if (d1 && !d2) return -1; + if (!d1 && d2) return 1; } + + return StringUtil.naturalCompare(o1.getName(), o2.getName()); }); for (VirtualFile file : files) { nodes.add(new ImagesProjectNode(myProject, file)); @@ -158,8 +159,8 @@ public class ImagesProjectNode extends AbstractTreeNode { @Override public void run() { ProjectView.getInstance(myProject) - .getProjectViewPaneById(ImagesProjectViewPane.ID) - .updateFromRoot(true); + .getProjectViewPaneById(ImagesProjectViewPane.ID) + .updateFromRoot(true); } }); } diff --git a/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectViewPane.java b/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectViewPane.java index 11bdbee7c..e013d3b7a 100644 --- a/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectViewPane.java +++ b/project_view_pane/src/main/java/org/intellij/sdk/view/pane/ImagesProjectViewPane.java @@ -23,11 +23,13 @@ public class ImagesProjectViewPane extends AbstractProjectViewPSIPane { super(project); } + @NotNull @Override public String getTitle() { return "SDK-Images"; } + @NotNull @Override public javax.swing.Icon getIcon() { return AllIcons.FileTypes.Custom; @@ -44,6 +46,7 @@ public class ImagesProjectViewPane extends AbstractProjectViewPSIPane { return 10; } + @NotNull @Override public SelectInTarget createSelectInTarget() { return new ProjectViewSelectInTarget(myProject) { @@ -66,23 +69,26 @@ public class ImagesProjectViewPane extends AbstractProjectViewPSIPane { }; } + @NotNull @Override protected ProjectAbstractTreeStructureBase createStructure() { return new ProjectTreeStructure(myProject, ID) { @Override - protected AbstractTreeNode createRoot(Project project, ViewSettings settings) { + protected AbstractTreeNode createRoot(@NotNull Project project, @NotNull ViewSettings settings) { return new ImagesProjectNode(project); } + @NotNull @Override - public Object[] getChildElements(Object element) { + public Object[] getChildElements(@NotNull Object element) { return super.getChildElements(element); } }; } + @NotNull @Override - protected ProjectViewTree createTree(DefaultTreeModel model) { + protected ProjectViewTree createTree(@NotNull DefaultTreeModel model) { return new ProjectViewTree(myProject, model) { @Override public boolean isRootVisible() { @@ -91,8 +97,9 @@ public class ImagesProjectViewPane extends AbstractProjectViewPSIPane { }; } + @NotNull @Override - protected AbstractTreeUpdater createTreeUpdater(AbstractTreeBuilder builder) { + protected AbstractTreeUpdater createTreeUpdater(@NotNull AbstractTreeBuilder builder) { return new AbstractTreeUpdater(builder); } }