[gui-test] project view fix for generators

This commit is contained in:
Sergey Karashevich
2017-07-01 18:43:10 +03:00
parent 765f3dd938
commit df56485908
3 changed files with 12 additions and 3 deletions
@@ -339,7 +339,8 @@ class IdeFrameGenerator : GlobalContextCodeGenerator<JFrame>() {
class ProjectViewGenerator : LocalContextCodeGenerator<JPanel>() {
override fun priority() = 2
override fun priority() = 0
override fun isLastContext() = true
override fun acceptor(): (Component) -> Boolean = { component -> component.javaClass.name.endsWith("ProjectViewImpl\$MyPanel") }
override fun generate(cmp: JPanel) = "projectView {"
@@ -347,6 +348,8 @@ class ProjectViewGenerator : LocalContextCodeGenerator<JPanel>() {
class ToolWindowGenerator : LocalContextCodeGenerator<Component>() {
override fun priority() = 1
private fun Component.containsLocationOnScreen(locationOnScreen: Point): Boolean {
val rectangle = this.bounds
rectangle.location = this.locationOnScreen
@@ -386,7 +389,7 @@ class ToolWindowGenerator : LocalContextCodeGenerator<Component>() {
class ToolWindowContextGenerator : LocalContextCodeGenerator<Component>() {
override fun priority() = 1
override fun priority() = 2
private fun Component.containsLocationOnScreen(locationOnScreen: Point): Boolean {
val rectangle = this.bounds
@@ -38,6 +38,9 @@ abstract class LocalContextCodeGenerator<C : Component> : ContextCodeGenerator<C
if (myAcceptor(curCmp)) return curCmp else return null
}
// to stop adding more contexts than its in -> ProjectView
open fun isLastContext(): Boolean = false
abstract fun acceptor(): (Component) -> Boolean
override fun accept(cmp: Component) = (findComponentInHierarchy(cmp) != null)
@@ -88,7 +88,10 @@ private class ContextTree(val writeFun: (String) -> Unit) {
}
fun addContexts(localContextList: List<Context>) {
localContextList.forEach { addContext(it) }
for(context in localContextList) {
addContext(context)
if (context.originalGenerator is LocalContextCodeGenerator && context.originalGenerator.isLastContext()) break
}
}
private fun Context.inContextTree(): Boolean =