From fcec30d70ae5c781e67d526720be063358c42dfd Mon Sep 17 00:00:00 2001 From: hstyi Date: Wed, 24 Sep 2025 09:16:04 +0800 Subject: [PATCH] chore: editor shows tooltip --- plugins/editor/build.gradle.kts | 2 +- .../app/termora/plugins/editor/EditorPanel.kt | 19 +++++++++++++++---- .../main/resources/i18n/messages.properties | 6 +++++- .../resources/i18n/messages_ru_RU.properties | 7 ++++++- .../resources/i18n/messages_zh_CN.properties | 5 +++++ .../resources/i18n/messages_zh_TW.properties | 7 ++++++- .../editor/src/main/resources/icons/save.svg | 4 ++++ .../src/main/resources/icons/save_dark.svg | 4 ++++ 8 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 plugins/editor/src/main/resources/icons/save.svg create mode 100644 plugins/editor/src/main/resources/icons/save_dark.svg diff --git a/plugins/editor/build.gradle.kts b/plugins/editor/build.gradle.kts index 6d983df..1ba9e4c 100644 --- a/plugins/editor/build.gradle.kts +++ b/plugins/editor/build.gradle.kts @@ -4,7 +4,7 @@ plugins { -project.version = "0.0.7" +project.version = "0.0.8" dependencies { diff --git a/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt b/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt index cda8b00..9a201a1 100644 --- a/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt +++ b/plugins/editor/src/main/kotlin/app/termora/plugins/editor/EditorPanel.kt @@ -1,9 +1,6 @@ package app.termora.plugins.editor -import app.termora.DocumentAdaptor -import app.termora.DynamicColor -import app.termora.EnableManager -import app.termora.Icons +import app.termora.* import app.termora.database.DatabaseManager import com.formdev.flatlaf.FlatLaf import com.formdev.flatlaf.extras.components.FlatTextField @@ -39,6 +36,10 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B companion object { private val log = LoggerFactory.getLogger(EditorPanel::class.java) + private val saveIcon = DynamicIcon( + "icons/save.svg", "icons/save_dark.svg", + loader = EditorPlugin::class.java.classLoader + ) } private var text = file.readText(Charsets.UTF_8) @@ -54,6 +55,7 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B private val prevBtn = JButton(Icons.up) private val context = SearchContext() private val softWrapBtn = JToggleButton(Icons.softWrap) + private val saveBtn = JButton(saveIcon) private val scrollUpBtn = JButton(Icons.scrollUp) private val scrollEndBtn = JButton(Icons.scrollDown) private val prettyBtn = JButton(Icons.reformatCode) @@ -141,11 +143,18 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B ) toolbar.orientation = VERTICAL + toolbar.add(saveBtn) toolbar.add(scrollUpBtn) toolbar.add(prettyBtn) toolbar.add(softWrapBtn) toolbar.add(scrollEndBtn) + saveBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.save") + scrollUpBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.first-line") + scrollEndBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.last-line") + softWrapBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.soft-wrap") + prettyBtn.toolTipText = EditorI18n.getString("termora.plugins.editor.format") + val viewPanel = JPanel(BorderLayout()) viewPanel.add(scrollPane, BorderLayout.CENTER) viewPanel.add(toolbar, BorderLayout.EAST) @@ -211,6 +220,8 @@ class EditorPanel(private val window: JFrame, private val file: File) : JPanel(B } }) + saveBtn.addActionListener(textArea.actionMap.get("Save")) + textArea.actionMap.put("Format", object : AbstractAction() { override fun actionPerformed(e: ActionEvent) { format() diff --git a/plugins/editor/src/main/resources/i18n/messages.properties b/plugins/editor/src/main/resources/i18n/messages.properties index 283e6ff..f187dfa 100644 --- a/plugins/editor/src/main/resources/i18n/messages.properties +++ b/plugins/editor/src/main/resources/i18n/messages.properties @@ -1,2 +1,6 @@ termora.plugins.editor.not-save=The file has not been saved. Are you sure you want to exit? - +termora.plugins.editor.save=Save +termora.plugins.editor.first-line=Jump to first line +termora.plugins.editor.last-line=Jump to last line +termora.plugins.editor.soft-wrap=Soft-wrap +termora.plugins.editor.format=Format diff --git a/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties b/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties index ca83b53..ea1eb49 100644 --- a/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties +++ b/plugins/editor/src/main/resources/i18n/messages_ru_RU.properties @@ -1 +1,6 @@ -termora.plugins.editor.not-save=Файл не сохранён. Вы уверены, что хотите выйти? \ No newline at end of file +termora.plugins.editor.not-save=Файл не сохранён. Вы уверены, что хотите выйти? +termora.plugins.editor.save=Сохранить +termora.plugins.editor.first-line=Перейти на первую строку +termora.plugins.editor.last-line=Перейти на последнюю строку +termora.plugins.editor.soft-wrap=Мягкий перенос +termora.plugins.editor.format=Формат diff --git a/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties b/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties index 35765e4..dc0d980 100644 --- a/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties +++ b/plugins/editor/src/main/resources/i18n/messages_zh_CN.properties @@ -1 +1,6 @@ termora.plugins.editor.not-save=文件尚未保存,你确定要退出吗? +termora.plugins.editor.save=保存 +termora.plugins.editor.first-line=跳转到第一行 +termora.plugins.editor.last-line=跳转到最后一行 +termora.plugins.editor.soft-wrap=自动换行 +termora.plugins.editor.format=格式化 diff --git a/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties b/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties index 2f53881..b8822b3 100644 --- a/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties +++ b/plugins/editor/src/main/resources/i18n/messages_zh_TW.properties @@ -1 +1,6 @@ -termora.plugins.editor.not-save=檔案尚未儲存,你確定要退出嗎? \ No newline at end of file +termora.plugins.editor.not-save=檔案尚未儲存,你確定要退出嗎? +termora.plugins.editor.save=儲存 +termora.plugins.editor.first-line=跳到第一行 +termora.plugins.editor.last-line=跳到最後一行 +termora.plugins.editor.soft-wrap=自動換行 +termora.plugins.editor.format=格式化 diff --git a/plugins/editor/src/main/resources/icons/save.svg b/plugins/editor/src/main/resources/icons/save.svg new file mode 100644 index 0000000..28089cd --- /dev/null +++ b/plugins/editor/src/main/resources/icons/save.svg @@ -0,0 +1,4 @@ + + + + diff --git a/plugins/editor/src/main/resources/icons/save_dark.svg b/plugins/editor/src/main/resources/icons/save_dark.svg new file mode 100644 index 0000000..2372e3e --- /dev/null +++ b/plugins/editor/src/main/resources/icons/save_dark.svg @@ -0,0 +1,4 @@ + + + +