mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 15:50:53 +07:00
64 lines
2.6 KiB
Kotlin
64 lines
2.6 KiB
Kotlin
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
|
package com.intellij.projectView
|
|
|
|
import com.intellij.ide.projectView.ProjectView
|
|
import com.intellij.ide.projectView.ProjectViewSettings
|
|
import com.intellij.ide.projectView.impl.AbstractProjectViewPane
|
|
import com.intellij.ide.projectView.impl.PackageViewPane
|
|
import com.intellij.ide.projectView.impl.ProjectViewImpl
|
|
import com.intellij.ide.projectView.impl.ProjectViewPane
|
|
import com.intellij.ide.scopeView.ScopeViewPane
|
|
import com.intellij.psi.search.scope.ProblemsScope
|
|
import com.intellij.psi.search.scope.ProjectFilesScope
|
|
import com.intellij.psi.search.scope.packageSet.NamedScope
|
|
import com.intellij.testFramework.PlatformTestUtil
|
|
import com.intellij.testFramework.TestSourceBasedTestCase
|
|
import com.intellij.ui.tree.TreeTestUtil
|
|
import com.intellij.ui.tree.ui.DefaultTreeUI
|
|
import javax.swing.JTree
|
|
import javax.swing.UIManager
|
|
|
|
abstract class AbstractProjectViewTest : TestSourceBasedTestCase() {
|
|
override fun getTestPath(): String? = null
|
|
|
|
override fun setUp() {
|
|
// TODO: move the following line to HeadlessLafManagerImpl
|
|
// TODO: when FilteringTreeBuilderTest#testFilter is fixed
|
|
UIManager.put("TreeUI", DefaultTreeUI::class.java.name)
|
|
super.setUp()
|
|
}
|
|
|
|
protected val projectView: ProjectViewImpl
|
|
get() = ProjectView.getInstance(project) as ProjectViewImpl
|
|
|
|
protected val currentSettings: ProjectViewSettings
|
|
get() = ProjectViewSettings.Delegate(project, projectView.currentViewId)
|
|
|
|
protected val currentPane: AbstractProjectViewPane
|
|
get() = projectView.currentProjectViewPane
|
|
|
|
protected val currentTree: JTree
|
|
get() = currentPane.tree
|
|
|
|
protected fun createTreeTest() = TreeTestUtil(currentTree)
|
|
|
|
protected fun waitWhileBusy() = PlatformTestUtil.waitWhileBusy(currentTree)
|
|
|
|
protected fun selectProjectPane() = selectProjectViewPane(ProjectViewPane.ID, null)
|
|
|
|
protected fun selectPackagesPane() = selectProjectViewPane(PackageViewPane.ID, null)
|
|
|
|
protected fun selectProjectFilesPane() = selectScopeViewPane(ProjectFilesScope.INSTANCE)
|
|
|
|
protected fun selectProblemsPane() = selectScopeViewPane(ProblemsScope.INSTANCE)
|
|
|
|
protected fun selectScopeViewPane(scope: NamedScope) = selectProjectViewPane(ScopeViewPane.ID, scope.toString() + "; " + scope.javaClass)
|
|
|
|
private fun selectProjectViewPane(id: String, subId: String?) {
|
|
PlatformTestUtil.waitForCallback(projectView.changeViewCB(id, subId))
|
|
assertEquals(id, currentPane.id)
|
|
if (subId != null) assertEquals(subId, currentPane.subId)
|
|
waitWhileBusy()
|
|
}
|
|
}
|