@@ -6,12 +6,11 @@ import com.dengzii.plugin.template.tools.ui.PopMenuUtils
66import com.dengzii.plugin.template.tools.ui.onRightMouseButtonClicked
77import com.dengzii.plugin.template.utils.Logger
88import com.intellij.icons.AllIcons
9+ import com.intellij.openapi.fileTypes.FileTypeManager
910import com.intellij.packageDependencies.ui.TreeModel
10- import com.intellij.testFramework.createProjectAndUseInLoadComponentStateMode
1111import com.intellij.ui.ColoredTreeCellRenderer
1212import com.intellij.ui.components.JBScrollPane
1313import com.intellij.ui.treeStructure.Tree
14- import com.intellij.util.IconUtil
1514import java.awt.BorderLayout
1615import java.awt.event.*
1716import java.util.*
@@ -28,7 +27,6 @@ class PreviewPanel : JPanel() {
2827 private var fileTree: Tree = Tree ()
2928
3029 private lateinit var module: Module
31- private val fileIconMap: MutableMap <String , Icon > = HashMap ()
3230 private var replacePlaceholder = true
3331 private var onTreeUpdateListener: (() -> Unit )? = null
3432
@@ -38,19 +36,13 @@ class PreviewPanel : JPanel() {
3836 if (value is DefaultMutableTreeNode ) {
3937 val node = value.userObject
4038 if (node is FileTreeNode ) {
41- icon = IconUtil .getAddClassIcon( )
39+ icon = getIconByFileName(node.name )
4240 this .append(if (replacePlaceholder) node.getRealName() else node.name)
43- if (node.isDir) {
44- icon = AllIcons .Nodes .Package
41+ icon = if (node.isDir) {
42+ AllIcons .Nodes .Package
4543 } else {
46- var suffix = " "
47- if (node.name.contains(" ." )) {
48- suffix = node.name.substring(node.name.lastIndexOf(" ." ))
49- }
50- icon = fileIconMap.getOrDefault(suffix, AllIcons .FileTypes .Text )
44+ getIconByFileName(node.name)
5145 }
52- } else {
53- icon = AllIcons .FileTypes .Unknown
5446 }
5547 }
5648 }
@@ -96,16 +88,15 @@ class PreviewPanel : JPanel() {
9688 onTreeUpdateListener = listener
9789 }
9890
91+ private fun getIconByFileName (fileName : String ): Icon {
92+ return FileTypeManager .getInstance().getFileTypeByExtension(fileName.split(" ." ).last()).icon
93+ ? : AllIcons .FileTypes .Text
94+ }
95+
9996 /* *
10097 * init Tree icon, node title, mouse listener
10198 */
10299 private fun initPanel () {
103- fileIconMap[" .java" ] = AllIcons .Nodes .Class
104- fileIconMap[" .kt" ] = AllIcons .Nodes .Class
105- fileIconMap[" .xml" ] = AllIcons .FileTypes .Xml
106- fileIconMap[" .gradle" ] = AllIcons .FileTypes .Config
107- fileIconMap[" .gitignore" ] = AllIcons .FileTypes .Config
108- fileIconMap[" .pro" ] = AllIcons .FileTypes .Config
109100 fileTree.onRightMouseButtonClicked { e ->
110101 val row = fileTree.getRowForLocation(e.x, e.y)
111102 if (row != - 1 ) {
0 commit comments