11package net.allape.xftp.component
22
3- import com.intellij.openapi.vfs.LocalFileSystem
3+ import com.intellij.icons.AllIcons
4+ import com.intellij.openapi.fileTypes.FileTypeManager
5+ import com.intellij.openapi.util.io.FileUtil
46import com.intellij.ui.DarculaColors
57import com.intellij.ui.JBColor
68import com.intellij.ui.table.JBTable
@@ -11,7 +13,6 @@ import net.allape.util.LinuxHelper
1113import java.awt.Component
1214import java.awt.event.FocusEvent
1315import java.awt.event.FocusListener
14- import java.io.File
1516import java.math.BigInteger
1617import java.util.*
1718import javax.swing.Icon
@@ -101,13 +102,25 @@ class FileTableModel(
101102 override fun getValueAt (rowIndex : Int , columnIndex : Int ): Any? {
102103 try {
103104 val model = data[rowIndex]
105+
104106 var icon = IconUtil .getEmptyIcon(false )
105- if (model.local) {
106- val virtualFile = LocalFileSystem .getInstance().findFileByIoFile(File (model.path))
107- if (virtualFile != null ) {
108- icon = IconUtil .computeBaseFileIcon(virtualFile)
107+ if (model.directory) {
108+ icon = AllIcons .Nodes .Folder
109+ } else {
110+ // 获取文件后缀
111+ FileUtil .getExtension(model.path, " " ).takeIf { it.isNotEmpty() }?.let {
112+ // 根据后缀读取文件图标
113+ FileTypeManager .getInstance().getFileTypeByExtension(it.toString()).icon?.let { i ->
114+ icon = i
115+ }
109116 }
110117 }
118+ // if (model.local) {
119+ // val virtualFile = LocalFileSystem.getInstance().findFileByIoFile(File(model.path))
120+ // if (virtualFile != null) {
121+ // icon = IconUtil.computeBaseFileIcon(virtualFile)
122+ // }
123+ // }
111124 when (columnIndex) {
112125 0 -> return icon
113126 1 -> return model.name
0 commit comments