in src/com/intellij/idea/plugin/hybris/project/wizard/SelectHybrisModulesToImportStep.kt [60:118]
override fun updateStep() {
context.setCoreStepModuleList()
super.updateStep()
selectionMode = ModuleDescriptorImportStatus.MANDATORY
for (index in 0 until fileChooser.elementCount) {
val yModuleDescriptor = fileChooser.getElementAt(index)
if (yModuleDescriptor.isPreselected()) {
fileChooser.setElementMarked(yModuleDescriptor, true)
yModuleDescriptor.importStatus = ModuleDescriptorImportStatus.MANDATORY
}
}
selectionMode = ModuleDescriptorImportStatus.UNUSED
val duplicateModules: MutableSet<String> = HashSet()
val uniqueModules: MutableSet<String> = HashSet()
context.list
?.forEach {
if (uniqueModules.contains(it.name)) {
duplicateModules.add(it.name)
} else {
uniqueModules.add(it.name)
}
}
// TODO: improve sorting
fileChooser.sort { o1: ModuleDescriptor, o2: ModuleDescriptor ->
val o1dup = duplicateModules.contains(o1.name)
val o2dup = duplicateModules.contains(o2.name)
if (o1dup xor o2dup) {
return@sort if (o1dup) -1 else 1
}
val o1custom = isCustomDescriptor(o1)
val o2custom = isCustomDescriptor(o2)
if (o1custom xor o2custom) {
return@sort if (o1custom) -1 else 1
}
// de-boost mandatory Platform extensions
val o1ext = isPlatformExtDescriptor(o1)
val o2ext = isPlatformExtDescriptor(o2)
if (o1ext xor o2ext) {
return@sort if (o2ext) -1 else 1
}
val o1selected = isMandatoryOrPreselected(o1)
val o2selected = isMandatoryOrPreselected(o2)
if (o1selected xor o2selected) {
return@sort if (o1selected) -1 else 1
}
o1.compareTo(o2)
}
//scroll to top
(fileChooser.component as? JBTable)
?.changeSelection(0, 0, false, false)
}