From 705db1806d2e4f622cc383dc91a86cce3481037d Mon Sep 17 00:00:00 2001 From: Baratynskiy Date: Fri, 2 Dec 2016 11:10:32 +0300 Subject: [PATCH] Issue #101 fixed --- .../kotlin/installer/KotlinInstaller.kt | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/jetbrains/kotlin/installer/KotlinInstaller.kt b/src/main/java/org/jetbrains/kotlin/installer/KotlinInstaller.kt index 71b1502995be..b0b481c1621e 100644 --- a/src/main/java/org/jetbrains/kotlin/installer/KotlinInstaller.kt +++ b/src/main/java/org/jetbrains/kotlin/installer/KotlinInstaller.kt @@ -42,23 +42,40 @@ class KotlinInstaller : Yenta() { ProjectUtils.checkKtHome() WindowManager.getDefault().registry.addPropertyChangeListener listener@{ if (it.propertyName.equals("opened")) { - if (KotlinUpdater.updated) return@listener - - val newHashSet = it.newValue as HashSet - val oldHashSet = it.oldValue as HashSet - newHashSet.filter {!oldHashSet.contains(it)} - .forEach { - val dataObject = it.lookup.lookup(DataObject::class.java) ?: return@forEach - val currentFile = dataObject.primaryFile - if (currentFile != null && currentFile.mimeType.equals("text/x-kt")) { - KotlinUpdater.checkUpdates() - val project = ProjectUtils.getKotlinProjectForFileObject(currentFile) - if (KotlinProjectHelper.INSTANCE.checkProject(project)) MavenHelper.configure(project) - } - } + checkProjectConfiguration(it) + checkUpdates(it) } } } } + private fun checkProjectConfiguration(changeEvent: PropertyChangeEvent) { + val newHashSet = changeEvent.newValue as HashSet + val oldHashSet = changeEvent.oldValue as HashSet + newHashSet.filter {!oldHashSet.contains(it)} + .forEach { + val dataObject = it.lookup.lookup(DataObject::class.java) ?: return@forEach + val currentFile = dataObject.primaryFile + if (currentFile != null && currentFile.mimeType.equals("text/x-kt")) { + val project = ProjectUtils.getKotlinProjectForFileObject(currentFile) + if (KotlinProjectHelper.INSTANCE.checkProject(project)) MavenHelper.configure(project) + } + } + } + + private fun checkUpdates(changeEvent: PropertyChangeEvent) { + if (KotlinUpdater.updated) return + + val newHashSet = changeEvent.newValue as HashSet + val oldHashSet = changeEvent.oldValue as HashSet + newHashSet.filter {!oldHashSet.contains(it)} + .forEach { + val dataObject = it.lookup.lookup(DataObject::class.java) ?: return@forEach + val currentFile = dataObject.primaryFile + if (currentFile != null && currentFile.mimeType.equals("text/x-kt")) { + KotlinUpdater.checkUpdates() + } + } + } + } \ No newline at end of file