Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
M
Mirai
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
Mirai
Commits
01623afc
Commit
01623afc
authored
Feb 21, 2020
by
Him188
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
00fd47f1
170418b5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
101 additions
and
5 deletions
+101
-5
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt
...onsole/graphical/controller/MiraiGraphicalUIController.kt
+17
-0
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt
...in/net/mamoe/mirai/console/graphical/model/PluginModel.kt
+19
-0
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/JFoenixAdaptor.kt
.../net/mamoe/mirai/console/graphical/util/JFoenixAdaptor.kt
+4
-0
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt
...lin/net/mamoe/mirai/console/graphical/view/PluginsView.kt
+22
-0
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PrimaryView.kt
...lin/net/mamoe/mirai/console/graphical/view/PrimaryView.kt
+16
-5
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/SettingsView.kt
...in/net/mamoe/mirai/console/graphical/view/SettingsView.kt
+23
-0
No files found.
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalUIController.kt
View file @
01623afc
package
net.mamoe.mirai.console.graphical.controller
package
net.mamoe.mirai.console.graphical.controller
import
javafx.application.Platform
import
javafx.application.Platform
import
javafx.collections.ObservableList
import
javafx.stage.Modality
import
javafx.stage.Modality
import
kotlinx.io.core.IoBuffer
import
kotlinx.io.core.IoBuffer
import
net.mamoe.mirai.Bot
import
net.mamoe.mirai.Bot
...
@@ -8,6 +9,7 @@ import net.mamoe.mirai.console.MiraiConsole
...
@@ -8,6 +9,7 @@ import net.mamoe.mirai.console.MiraiConsole
import
net.mamoe.mirai.console.MiraiConsoleUI
import
net.mamoe.mirai.console.MiraiConsoleUI
import
net.mamoe.mirai.console.graphical.model.BotModel
import
net.mamoe.mirai.console.graphical.model.BotModel
import
net.mamoe.mirai.console.graphical.model.ConsoleInfo
import
net.mamoe.mirai.console.graphical.model.ConsoleInfo
import
net.mamoe.mirai.console.graphical.model.PluginModel
import
net.mamoe.mirai.console.graphical.model.VerificationCodeModel
import
net.mamoe.mirai.console.graphical.model.VerificationCodeModel
import
net.mamoe.mirai.console.graphical.view.VerificationCodeFragment
import
net.mamoe.mirai.console.graphical.view.VerificationCodeFragment
import
net.mamoe.mirai.utils.LoginSolver
import
net.mamoe.mirai.utils.LoginSolver
...
@@ -21,13 +23,21 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
...
@@ -21,13 +23,21 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
private
val
loginSolver
=
GraphicalLoginSolver
()
private
val
loginSolver
=
GraphicalLoginSolver
()
private
val
cache
=
mutableMapOf
<
Long
,
BotModel
>()
private
val
cache
=
mutableMapOf
<
Long
,
BotModel
>()
val
mainLog
=
observableListOf
<
String
>()
val
mainLog
=
observableListOf
<
String
>()
val
botList
=
observableListOf
<
BotModel
>()
val
botList
=
observableListOf
<
BotModel
>()
val
pluginList
:
ObservableList
<
PluginModel
>
by
lazy
(
::
getPluginsFromConsole
)
val
consoleConfig
:
Map
<
String
,
Any
>
by
lazy
(
::
getConfigFromConsole
)
val
consoleInfo
=
ConsoleInfo
()
val
consoleInfo
=
ConsoleInfo
()
suspend
fun
login
(
qq
:
String
,
psd
:
String
)
{
suspend
fun
login
(
qq
:
String
,
psd
:
String
)
{
MiraiConsole
.
CommandListener
.
commandChannel
.
send
(
"/login $qq $psd"
)
MiraiConsole
.
CommandListener
.
commandChannel
.
send
(
"/login $qq $psd"
)
}
}
suspend
fun
sendCommand
(
command
:
String
)
=
MiraiConsole
.
CommandListener
.
commandChannel
.
send
(
command
)
override
fun
pushLog
(
identity
:
Long
,
message
:
String
)
=
Platform
.
runLater
{
override
fun
pushLog
(
identity
:
Long
,
message
:
String
)
=
Platform
.
runLater
{
when
(
identity
)
{
when
(
identity
)
{
0L
->
mainLog
.
add
(
message
)
0L
->
mainLog
.
add
(
message
)
...
@@ -68,6 +78,13 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
...
@@ -68,6 +78,13 @@ class MiraiGraphicalUIController : Controller(), MiraiConsoleUI {
}
}
override
fun
createLoginSolver
():
LoginSolver
=
loginSolver
override
fun
createLoginSolver
():
LoginSolver
=
loginSolver
private
fun
getPluginsFromConsole
():
ObservableList
<
PluginModel
>
{
// TODO
return
observableListOf
<
PluginModel
>()
}
private
fun
getConfigFromConsole
()
=
MiraiConsole
.
MiraiProperties
.
config
.
asMap
()
}
}
class
GraphicalLoginSolver
:
LoginSolver
()
{
class
GraphicalLoginSolver
:
LoginSolver
()
{
...
...
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt
0 → 100644
View file @
01623afc
package
net.mamoe.mirai.console.graphical.model
import
com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject
import
javafx.beans.property.SimpleBooleanProperty
import
javafx.beans.property.SimpleStringProperty
import
tornadofx.getValue
import
tornadofx.setValue
class
PluginModel
:
RecursiveTreeObject
<
PluginModel
>()
{
val
nameProperty
=
SimpleStringProperty
(
this
,
"nameProperty"
)
val
name
by
nameProperty
val
descriptionProperty
=
SimpleStringProperty
(
this
,
"descriptionProperty"
)
val
description
by
descriptionProperty
val
enabledProperty
=
SimpleBooleanProperty
(
this
,
"enabledProperty"
)
var
enabled
by
enabledProperty
}
\ No newline at end of file
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/JFoenixAdaptor.kt
View file @
01623afc
package
net.mamoe.mirai.console.graphical.util
package
net.mamoe.mirai.console.graphical.util
import
com.jfoenix.controls.*
import
com.jfoenix.controls.*
import
com.jfoenix.controls.datamodels.treetable.RecursiveTreeObject
import
javafx.beans.value.ObservableValue
import
javafx.beans.value.ObservableValue
import
javafx.collections.ObservableList
import
javafx.collections.ObservableList
import
javafx.event.EventTarget
import
javafx.event.EventTarget
...
@@ -42,3 +43,6 @@ internal fun <T> EventTarget.jfxListView(values: ObservableList<T>? = null, op:
...
@@ -42,3 +43,6 @@ internal fun <T> EventTarget.jfxListView(values: ObservableList<T>? = null, op:
else
it
.
items
=
values
else
it
.
items
=
values
}
}
}
}
fun
<
T
:
RecursiveTreeObject
<
T
>
?
>
EventTarget
.
jfxTreeTableView
(
items
:
ObservableList
<
T
>?
=
null
,
op
:
JFXTreeTableView
<
T
>.()
->
Unit
=
{})
=
JFXTreeTableView
<
T
>(
RecursiveTreeItem
(
items
,
RecursiveTreeObject
<
T
>
::
getChildren
)).
attachTo
(
this
,
op
)
\ No newline at end of file
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt
0 → 100644
View file @
01623afc
package
net.mamoe.mirai.console.graphical.view
import
com.jfoenix.controls.JFXTreeTableColumn
import
net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import
net.mamoe.mirai.console.graphical.model.PluginModel
import
net.mamoe.mirai.console.graphical.util.jfxTreeTableView
import
tornadofx.View
class
PluginsView
:
View
()
{
private
val
controller
=
find
<
MiraiGraphicalUIController
>()
val
plugins
=
controller
.
pluginList
override
val
root
=
jfxTreeTableView
(
plugins
)
{
columns
.
addAll
(
JFXTreeTableColumn
<
PluginModel
,
String
>(
"插件名"
).
apply
{
},
JFXTreeTableColumn
<
PluginModel
,
String
>(
"版本"
).
apply
{
},
JFXTreeTableColumn
<
PluginModel
,
String
>(
"作者"
).
apply
{
},
JFXTreeTableColumn
<
PluginModel
,
String
>(
"介绍"
).
apply
{
}
)
}
}
\ No newline at end of file
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PrimaryView.kt
View file @
01623afc
...
@@ -5,6 +5,8 @@ import javafx.collections.ObservableList
...
@@ -5,6 +5,8 @@ import javafx.collections.ObservableList
import
javafx.scene.control.Tab
import
javafx.scene.control.Tab
import
javafx.scene.control.TabPane
import
javafx.scene.control.TabPane
import
javafx.scene.image.Image
import
javafx.scene.image.Image
import
javafx.scene.input.KeyCode
import
kotlinx.coroutines.runBlocking
import
net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import
net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import
net.mamoe.mirai.console.graphical.model.BotModel
import
net.mamoe.mirai.console.graphical.model.BotModel
import
net.mamoe.mirai.console.graphical.util.jfxListView
import
net.mamoe.mirai.console.graphical.util.jfxListView
...
@@ -52,17 +54,26 @@ class PrimaryView : View() {
...
@@ -52,17 +54,26 @@ class PrimaryView : View() {
}
}
}
}
}
}
// command input
textfield
{
setOnKeyPressed
{
if
(
it
.
code
==
KeyCode
.
ENTER
)
{
runAsync
{
runBlocking
{
controller
.
sendCommand
(
text
)
}
}.
ui
{
text
=
""
}
}
}
}
}
}
center
=
jfxTabPane
{
center
=
jfxTabPane
{
tab
(
"Login"
)
{
tab
(
"Login"
).
content
=
find
<
LoginView
>().
root
this
+=
find
<
LoginView
>().
root
}
tab
(
"Plugin
"
)
tab
(
"Plugin
s"
).
content
=
find
<
PluginsView
>().
root
tab
(
"Settings"
)
tab
(
"Settings"
)
.
content
=
find
<
SettingsView
>().
root
logTab
(
"Main"
,
controller
.
mainLog
)
logTab
(
"Main"
,
controller
.
mainLog
)
}
}
...
...
mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/SettingsView.kt
0 → 100644
View file @
01623afc
package
net.mamoe.mirai.console.graphical.view
import
net.mamoe.mirai.console.graphical.controller.MiraiGraphicalUIController
import
net.mamoe.mirai.console.graphical.util.jfxTextfield
import
tornadofx.View
import
tornadofx.field
import
tornadofx.fieldset
import
tornadofx.form
class
SettingsView
:
View
()
{
private
val
controller
=
find
<
MiraiGraphicalUIController
>()
override
val
root
=
form
{
controller
.
consoleConfig
.
forEach
{
fieldset
{
field
(
it
.
key
)
{
jfxTextfield
(
it
.
value
.
toString
())
{
isEditable
=
false
}
}
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment