mirror of https://github.com/zlatinb/muwire
hook up trust and distrust buttons
parent
5be97d0404
commit
35cabc47ad
|
@ -232,7 +232,10 @@ class MainFrameController {
|
||||||
return
|
return
|
||||||
Map<String,Object> env = new HashMap<>()
|
Map<String,Object> env = new HashMap<>()
|
||||||
env["trustList"] = list
|
env["trustList"] = list
|
||||||
|
env["trustService"] = core.trustService
|
||||||
|
env["eventBus"] = core.eventBus
|
||||||
mvcGroup.createMVCGroup("trust-list", env)
|
mvcGroup.createMVCGroup("trust-list", env)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ControllerAction
|
@ControllerAction
|
||||||
|
|
|
@ -6,8 +6,53 @@ import griffon.inject.MVCMember
|
||||||
import griffon.metadata.ArtifactProviderFor
|
import griffon.metadata.ArtifactProviderFor
|
||||||
import javax.annotation.Nonnull
|
import javax.annotation.Nonnull
|
||||||
|
|
||||||
|
import com.muwire.core.EventBus
|
||||||
|
import com.muwire.core.Persona
|
||||||
|
import com.muwire.core.trust.TrustEvent
|
||||||
|
import com.muwire.core.trust.TrustLevel
|
||||||
|
|
||||||
@ArtifactProviderFor(GriffonController)
|
@ArtifactProviderFor(GriffonController)
|
||||||
class TrustListController {
|
class TrustListController {
|
||||||
@MVCMember @Nonnull
|
@MVCMember @Nonnull
|
||||||
TrustListModel model
|
TrustListModel model
|
||||||
|
@MVCMember @Nonnull
|
||||||
|
TrustListView view
|
||||||
|
|
||||||
|
EventBus eventBus
|
||||||
|
|
||||||
|
@ControllerAction
|
||||||
|
void trustFromTrusted() {
|
||||||
|
int selectedRow = view.getSelectedRow("trusted-table")
|
||||||
|
if (selectedRow < 0)
|
||||||
|
return
|
||||||
|
Persona p = model.trusted[selectedRow]
|
||||||
|
eventBus.publish(new TrustEvent(persona : p, level : TrustLevel.TRUSTED))
|
||||||
|
}
|
||||||
|
|
||||||
|
@ControllerAction
|
||||||
|
void trustFromDistrusted() {
|
||||||
|
int selectedRow = view.getSelectedRow("distrusted-table")
|
||||||
|
if (selectedRow < 0)
|
||||||
|
return
|
||||||
|
Persona p = model.distrusted[selectedRow]
|
||||||
|
eventBus.publish(new TrustEvent(persona : p, level : TrustLevel.TRUSTED))
|
||||||
|
}
|
||||||
|
|
||||||
|
@ControllerAction
|
||||||
|
void distrustFromTrusted() {
|
||||||
|
int selectedRow = view.getSelectedRow("trusted-table")
|
||||||
|
if (selectedRow < 0)
|
||||||
|
return
|
||||||
|
Persona p = model.trusted[selectedRow]
|
||||||
|
eventBus.publish(new TrustEvent(persona : p, level : TrustLevel.DISTRUSTED))
|
||||||
|
}
|
||||||
|
|
||||||
|
@ControllerAction
|
||||||
|
void distrustFromDistrusted() {
|
||||||
|
int selectedRow = view.getSelectedRow("distrusted-table")
|
||||||
|
if (selectedRow < 0)
|
||||||
|
return
|
||||||
|
Persona p = model.distrusted[selectedRow]
|
||||||
|
eventBus.publish(new TrustEvent(persona : p, level : TrustLevel.DISTRUSTED))
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muwire.gui
|
package com.muwire.gui
|
||||||
|
|
||||||
import com.muwire.core.trust.RemoteTrustList
|
import com.muwire.core.trust.RemoteTrustList
|
||||||
|
import com.muwire.core.trust.TrustService
|
||||||
|
|
||||||
import griffon.core.artifact.GriffonModel
|
import griffon.core.artifact.GriffonModel
|
||||||
import griffon.transform.Observable
|
import griffon.transform.Observable
|
||||||
|
@ -9,4 +10,13 @@ import griffon.metadata.ArtifactProviderFor
|
||||||
@ArtifactProviderFor(GriffonModel)
|
@ArtifactProviderFor(GriffonModel)
|
||||||
class TrustListModel {
|
class TrustListModel {
|
||||||
RemoteTrustList trustList
|
RemoteTrustList trustList
|
||||||
|
TrustService trustService
|
||||||
|
|
||||||
|
def trusted
|
||||||
|
def distrusted
|
||||||
|
|
||||||
|
void mvcGroupInit(Map<String,String> args) {
|
||||||
|
trusted = new ArrayList<>(trustList.good)
|
||||||
|
distrusted = new ArrayList<>(trustList.bad)
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@ import griffon.inject.MVCMember
|
||||||
import griffon.metadata.ArtifactProviderFor
|
import griffon.metadata.ArtifactProviderFor
|
||||||
|
|
||||||
import javax.swing.JDialog
|
import javax.swing.JDialog
|
||||||
|
import javax.swing.ListSelectionModel
|
||||||
import javax.swing.SwingConstants
|
import javax.swing.SwingConstants
|
||||||
|
|
||||||
import java.awt.BorderLayout
|
import java.awt.BorderLayout
|
||||||
|
@ -22,19 +23,73 @@ class TrustListView {
|
||||||
|
|
||||||
def dialog
|
def dialog
|
||||||
def mainFrame
|
def mainFrame
|
||||||
def panel
|
def mainPanel
|
||||||
|
|
||||||
|
def sortEvents = [:]
|
||||||
|
|
||||||
void initUI() {
|
void initUI() {
|
||||||
mainFrame = application.windowManager.findWindow("main-frame")
|
mainFrame = application.windowManager.findWindow("main-frame")
|
||||||
dialog = new JDialog(mainFrame, model.trustList.persona.getHumanReadableName(), true)
|
dialog = new JDialog(mainFrame, model.trustList.persona.getHumanReadableName(), true)
|
||||||
panel = builder.panel {
|
mainPanel = builder.panel {
|
||||||
borderLayout()
|
borderLayout()
|
||||||
label(text : "Last updated "+ model.trustList.timestamp, constraints : BorderLayout.CENTER)
|
panel(constraints : BorderLayout.NORTH) {
|
||||||
|
borderLayout()
|
||||||
|
panel (constraints : BorderLayout.NORTH) {
|
||||||
|
label(text: "Trust List of "+model.trustList.persona.getHumanReadableName())
|
||||||
|
}
|
||||||
|
panel (constraints: BorderLayout.SOUTH) {
|
||||||
|
label(text : "Last updated "+ new Date(model.trustList.timestamp))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panel(constraints : BorderLayout.CENTER) {
|
||||||
|
gridLayout(rows : 1, cols : 2)
|
||||||
|
panel {
|
||||||
|
borderLayout()
|
||||||
|
scrollPane (constraints : BorderLayout.CENTER){
|
||||||
|
table(id : "trusted-table", autoCreateRowSorter : true) {
|
||||||
|
tableModel(list : model.trusted) {
|
||||||
|
closureColumn(header: "Trusted Users", type : String, read : {it.getHumanReadableName()})
|
||||||
|
closureColumn(header: "Your Trust", type : String, read : {model.trustService.getLevel(it.destination).toString()})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panel (constraints : BorderLayout.SOUTH) {
|
||||||
|
gridBagLayout()
|
||||||
|
button(text : "Trust", constraints : gbc(gridx : 0, gridy : 0), trustFromTrustedAction)
|
||||||
|
button(text : "Distrust", constraints : gbc(gridx : 1, gridy : 0), distrustFromTrustedAction)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panel {
|
||||||
|
borderLayout()
|
||||||
|
scrollPane (constraints : BorderLayout.CENTER ){
|
||||||
|
table(id : "distrusted-table", autoCreateRowSorter : true) {
|
||||||
|
tableModel(list : model.distrusted) {
|
||||||
|
closureColumn(header: "Distrusted Users", type : String, read : {it.getHumanReadableName()})
|
||||||
|
closureColumn(header: "Your Trust", type : String, read : {model.trustService.getLevel(it.destination).toString()})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
panel(constraints : BorderLayout.SOUTH) {
|
||||||
|
gridBagLayout()
|
||||||
|
button(text : "Trust", constraints : gbc(gridx : 0, gridy : 0), trustFromDistrustedAction)
|
||||||
|
button(text : "Distrust", constraints : gbc(gridx : 1, gridy : 0), distrustFromDistrustedAction)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mvcGroupInit(Map<String,String> args) {
|
void mvcGroupInit(Map<String,String> args) {
|
||||||
dialog.getContentPane().add(panel)
|
|
||||||
|
def trustedTable = builder.getVariable("trusted-table")
|
||||||
|
trustedTable.rowSorter.addRowSorterListener({evt -> sortEvents["trusted-table"] = evt})
|
||||||
|
trustedTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
|
||||||
|
|
||||||
|
def distrustedTable = builder.getVariable("distrusted-table")
|
||||||
|
distrustedTable.rowSorter.addRowSorterListener({evt -> sortEvents["distrusted-table"] = evt})
|
||||||
|
distrustedTable.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION)
|
||||||
|
|
||||||
|
dialog.getContentPane().add(mainPanel)
|
||||||
dialog.pack()
|
dialog.pack()
|
||||||
dialog.setLocationRelativeTo(mainFrame)
|
dialog.setLocationRelativeTo(mainFrame)
|
||||||
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)
|
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)
|
||||||
|
@ -45,4 +100,14 @@ class TrustListView {
|
||||||
})
|
})
|
||||||
dialog.show()
|
dialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getSelectedRow(String tableName) {
|
||||||
|
def table = builder.getVariable(tableName)
|
||||||
|
int selectedRow = table.getSelectedRow()
|
||||||
|
if (selectedRow < 0)
|
||||||
|
return -1
|
||||||
|
if (sortEvents.get(tableName) != null)
|
||||||
|
selectedRow = table.rowSorter.convertRowIndexToModel(selectedRow)
|
||||||
|
selectedRow
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue