mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 10:22:58 +08:00
chore: improve sync plugin
This commit is contained in:
@@ -8,9 +8,9 @@ import java.util.*
|
||||
abstract class AbstractI18n {
|
||||
private val log get() = getLogger()
|
||||
|
||||
private val substitutor by lazy { StringSubstitutor { key -> getString(key) } }
|
||||
protected val substitutor by lazy { StringSubstitutor { key -> getString(key) } }
|
||||
|
||||
fun getString(key: String, vararg args: Any): String {
|
||||
open fun getString(key: String, vararg args: Any): String {
|
||||
val text = getString(key)
|
||||
if (args.isNotEmpty()) {
|
||||
return MessageFormat.format(text, *args)
|
||||
@@ -19,7 +19,7 @@ abstract class AbstractI18n {
|
||||
}
|
||||
|
||||
|
||||
fun getString(key: String): String {
|
||||
open fun getString(key: String): String {
|
||||
try {
|
||||
return substitutor.replace(getBundle().getString(key))
|
||||
} catch (e: MissingResourceException) {
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
package app.termora
|
||||
|
||||
import app.termora.database.DatabaseManager
|
||||
|
||||
/**
|
||||
* 仅标记
|
||||
*/
|
||||
class DeleteDataManager private constructor() {
|
||||
companion object {
|
||||
fun getInstance(): DeleteDataManager {
|
||||
return ApplicationScope.forApplicationScope().getOrCreate(DeleteDataManager::class) { DeleteDataManager() }
|
||||
}
|
||||
}
|
||||
|
||||
private val data = mutableMapOf<String, DeletedData>()
|
||||
private val database get() = DatabaseManager.getInstance()
|
||||
|
||||
fun removeHost(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "Host", deleteDate))
|
||||
}
|
||||
|
||||
fun removeKeymap(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "Keymap", deleteDate))
|
||||
}
|
||||
|
||||
fun removeKeyPair(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "KeyPair", deleteDate))
|
||||
}
|
||||
|
||||
fun removeKeywordHighlight(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "KeywordHighlight", deleteDate))
|
||||
}
|
||||
|
||||
fun removeMacro(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "Macro", deleteDate))
|
||||
}
|
||||
|
||||
fun removeSnippet(id: String, deleteDate: Long = System.currentTimeMillis()) {
|
||||
addDeletedData(DeletedData(id, "Snippet", deleteDate))
|
||||
}
|
||||
|
||||
private fun addDeletedData(deletedData: DeletedData) {
|
||||
if (data.containsKey(deletedData.id)) return
|
||||
data[deletedData.id] = deletedData
|
||||
// TODO database.addDeletedData(deletedData)
|
||||
}
|
||||
|
||||
fun getDeletedData(): List<DeletedData> {
|
||||
if (data.isEmpty()) {
|
||||
// TODO data.putAll(database.getDeletedData().associateBy { it.id })
|
||||
}
|
||||
return data.values.sortedBy { it.deleteDate }
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package app.termora.account
|
||||
|
||||
import app.termora.*
|
||||
import app.termora.Application.ohMyJson
|
||||
import app.termora.database.OwnerType
|
||||
import app.termora.plugin.ExtensionManager
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -47,6 +48,10 @@ class AccountManager private constructor() : ApplicationRunnerExtension {
|
||||
fun getAccessToken() = account.accessToken
|
||||
fun getRefreshToken() = account.refreshToken
|
||||
fun getOwnerIds() = account.teams.map { it.id }.toMutableList().apply { add(getAccountId()) }.toSet()
|
||||
fun getOwners() =
|
||||
account.teams.map { AccountOwner(it.id, it.name, OwnerType.Team) }
|
||||
.toMutableList().apply { AccountOwner(getAccountId(), getEmail(), OwnerType.User) }
|
||||
.toSet()
|
||||
|
||||
fun isFreePlan(): Boolean {
|
||||
return isLocally() || getSubscription().plan == SubscriptionPlan.Free
|
||||
|
||||
@@ -252,7 +252,7 @@ class DatabaseManager private constructor() : Disposable {
|
||||
source
|
||||
)
|
||||
} else {
|
||||
save(data)
|
||||
save(data, source)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.termora.highlight
|
||||
|
||||
import app.termora.Application.ohMyJson
|
||||
import app.termora.ApplicationScope
|
||||
import app.termora.DeleteDataManager
|
||||
import app.termora.TerminalPanelFactory
|
||||
import app.termora.account.AccountOwner
|
||||
import app.termora.database.Data
|
||||
@@ -48,7 +47,6 @@ class KeywordHighlightManager private constructor() {
|
||||
fun removeKeywordHighlight(id: String) {
|
||||
database.delete(id, DataType.KeywordHighlight.name)
|
||||
TerminalPanelFactory.getInstance().repaintAll()
|
||||
DeleteDataManager.getInstance().removeKeywordHighlight(id)
|
||||
|
||||
if (log.isDebugEnabled) {
|
||||
log.debug("Keyword highlighter removed. {}", id)
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.termora.keymgr
|
||||
|
||||
import app.termora.Application.ohMyJson
|
||||
import app.termora.ApplicationScope
|
||||
import app.termora.DeleteDataManager
|
||||
import app.termora.account.AccountOwner
|
||||
import app.termora.database.Data
|
||||
import app.termora.database.DataType
|
||||
@@ -36,7 +35,6 @@ class KeyManager private constructor() {
|
||||
|
||||
fun removeOhKeyPair(id: String) {
|
||||
databaseManager.delete(id, DataType.KeyPair.name)
|
||||
DeleteDataManager.getInstance().removeKeyPair(id)
|
||||
}
|
||||
|
||||
fun getOhKeyPairs(): List<OhKeyPair> {
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.termora.macro
|
||||
|
||||
import app.termora.Application.ohMyJson
|
||||
import app.termora.ApplicationScope
|
||||
import app.termora.DeleteDataManager
|
||||
import app.termora.account.AccountManager
|
||||
import app.termora.database.Data
|
||||
import app.termora.database.DataType
|
||||
@@ -50,7 +49,6 @@ class MacroManager private constructor() {
|
||||
|
||||
fun removeMacro(id: String) {
|
||||
database.delete(id, DataType.Macro.name)
|
||||
DeleteDataManager.getInstance().removeMacro(id)
|
||||
|
||||
if (log.isDebugEnabled) {
|
||||
log.debug("Removed macro $id")
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.termora.snippet
|
||||
|
||||
import app.termora.Application.ohMyJson
|
||||
import app.termora.ApplicationScope
|
||||
import app.termora.DeleteDataManager
|
||||
import app.termora.account.AccountManager
|
||||
import app.termora.assertEventDispatchThread
|
||||
import app.termora.database.Data
|
||||
@@ -45,7 +44,6 @@ class SnippetManager private constructor() {
|
||||
|
||||
fun removeSnippet(id: String) {
|
||||
database.delete(id, DataType.Snippet.name)
|
||||
DeleteDataManager.getInstance().removeSnippet(id)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,6 @@ import kotlinx.serialization.Serializable
|
||||
data class Tag(
|
||||
val id: String,
|
||||
val text: String,
|
||||
val createDate: Long = System.currentTimeMillis(),
|
||||
val updateDate: Long = System.currentTimeMillis(),
|
||||
val createDate: Long,
|
||||
val updateDate: Long,
|
||||
)
|
||||
@@ -63,7 +63,14 @@ class TagPanel(accountOwner: AccountOwner) : JPanel(BorderLayout()), Disposable
|
||||
title = I18n.getString("termora.tag"),
|
||||
)
|
||||
if (text.isNullOrBlank().not()) {
|
||||
model.addElement(Tag(id = randomUUID(), text = text))
|
||||
model.addElement(
|
||||
Tag(
|
||||
id = randomUUID(),
|
||||
text = text,
|
||||
createDate = System.currentTimeMillis(),
|
||||
updateDate = System.currentTimeMillis(),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user