Icons for trust status from blob2k

dbus-notify
Zlatin Balevsky 2022-06-06 13:43:14 +01:00
parent ed785915a8
commit b5eb48624f
No known key found for this signature in database
GPG Key ID: A72832072D525E41
13 changed files with 91 additions and 26 deletions

View File

@ -524,7 +524,7 @@ NEGATIVE_TREE=Negative Tree
## Fetch certificates dialog
ISSUER=Issuer
TRUST_STATUS=Trust Status
TRUST_STATUS=Status
ISSUED=Issued
IMPORT=Import
CERTIFICATES_IMPORTED=Certificates imported.

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

View File

@ -1,5 +1,6 @@
package com.muwire.gui
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.profile.PersonaOrProfile
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
import com.muwire.gui.profile.PersonaOrProfileComparator
@ -86,9 +87,9 @@ class ChatRoomView {
scrollPane {
membersTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list : model.members) {
closureColumn(header : trans("NAME"), preferredWidth: 100, type: PersonaOrProfile, read : {it})
closureColumn(header : trans("TRUST_STATUS"), preferredWidth: 30, type : String,
read : {trans(model.core.trustService.getLevel(it.getPersona().destination).name())})
closureColumn(header : trans("NAME"), preferredWidth: 150, type: PersonaOrProfile, read : {it})
closureColumn(header : trans("TRUST_STATUS"), preferredWidth: 10, type : TrustLevel,
read : {model.core.trustService.getLevel(it.getPersona().destination)})
}
}
}
@ -134,6 +135,7 @@ class ChatRoomView {
if (membersTable != null) {
membersTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
membersTable.setDefaultRenderer(PersonaOrProfile.class, new PersonaOrProfileCellRenderer(application.context.get("ui-settings")))
membersTable.rowSorter.setComparator(0, new PersonaOrProfileComparator())
membersTable.rowSorter.addRowSorterListener({evt -> lastMembersTableSortEvent = evt})

View File

@ -1,6 +1,7 @@
package com.muwire.gui
import com.muwire.core.Persona
import com.muwire.core.trust.TrustLevel
import griffon.core.GriffonApplication
import griffon.core.artifact.GriffonView
@ -60,7 +61,7 @@ class FetchCertificatesView {
certsTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list : model.certificates) {
closureColumn(header : trans("ISSUER"), preferredWidth : 200, type : Persona, read : {it.issuer})
closureColumn(header : trans("TRUST_STATUS"), preferredWidth: 50, type : String, read : {trans(controller.core.trustService.getLevel(it.issuer.destination).name())})
closureColumn(header : trans("TRUST_STATUS"), preferredWidth: 10, type : TrustLevel, read : {controller.core.trustService.getLevel(it.issuer.destination)})
closureColumn(header : trans("NAME"), preferredWidth : 200, type: String, read : {HTMLSanitizer.sanitize(it.name.name.toString())})
closureColumn(header : trans("ISSUED"), preferredWidth : 100, type : String, read : {
def date = new Date(it.timestamp)
@ -76,7 +77,8 @@ class FetchCertificatesView {
button(text : trans("CLOSE"), dismissAction)
}
}
certsTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
certsTable.setDefaultRenderer(Persona.class, new PersonaCellRenderer(application.context.get("ui-settings")))
certsTable.rowSorter.setComparator(0, new PersonaComparator())
certsTable.rowSorter.addRowSorterListener({evt -> lastSortEvent = evt})

View File

@ -655,8 +655,8 @@ class MainFrameView {
tableModel(list: model.contacts) {
closureColumn(header: trans("CONTACTS"), preferredWidth: 250, type: PersonaOrProfile, read: { it })
closureColumn(header: trans("REASON"), preferredWidth: 450, type: String, read: { it.getReason() })
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 60, type: String, read: { PersonaOrProfile row ->
trans(model.core.trustService.getLevel(row.getPersona().destination).name())
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 60, type: TrustLevel, read: { PersonaOrProfile row ->
model.core.trustService.getLevel(row.getPersona().destination)
})
}
}
@ -894,6 +894,8 @@ class MainFrameView {
def popRenderer = new PersonaOrProfileCellRenderer(application.context.get("ui-settings"))
def popComparator = new PersonaOrProfileComparator()
def trustRenderer = new TrustCellRenderer()
// downloads table
def downloadsTable = builder.getVariable("downloads-table")
@ -1325,6 +1327,7 @@ class MainFrameView {
// contacts table
JTable contactsTable = builder.getVariable("contacts-table")
contactsTable.setDefaultRenderer(TrustLevel.class, trustRenderer)
contactsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer)
contactsTable.rowSorter.setComparator(0, popComparator)
contactsTable.rowSorter.addRowSorterListener({ evt -> lastContactsSortEvent = evt })

View File

@ -1,6 +1,7 @@
package com.muwire.gui
import com.muwire.core.SharedFile
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.SearchTabModel.SenderBucket
import com.muwire.gui.profile.PersonaOrProfile
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
@ -104,15 +105,15 @@ class SearchTabView {
scrollPane (constraints : BorderLayout.CENTER) {
sendersTable = table(id : "senders-table", autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list : model.senders) {
closureColumn(header : trans("SENDER"), preferredWidth : 500, type: PersonaOrProfile, read : { SenderBucket row -> row})
closureColumn(header : trans("SENDER"), preferredWidth : 600, type: PersonaOrProfile, read : { SenderBucket row -> row})
closureColumn(header : trans("RESULTS"), preferredWidth : 20, type: Integer, read : {SenderBucket row -> row.results.size()})
closureColumn(header : trans("BROWSE"), preferredWidth : 20, type: Boolean, read : {SenderBucket row -> row.results[0].browse})
closureColumn(header : trans("COLLECTIONS"), preferredWidth : 20, type: Boolean, read : {SenderBucket row -> row.results[0].browseCollections})
closureColumn(header : trans("FEED"), preferredWidth : 20, type : Boolean, read : {SenderBucket row -> row.results[0].feed})
closureColumn(header : trans("MESSAGES"), preferredWidth : 20, type : Boolean, read : {SenderBucket row -> row.results[0].messages})
closureColumn(header : trans("CHAT"), preferredWidth : 20, type : Boolean, read : {SenderBucket row -> row.results[0].chat})
closureColumn(header : trans("TRUST_NOUN"), preferredWidth : 50, type: String, read : { SenderBucket row ->
trans(model.core.trustService.getLevel(row.sender.destination).name())
closureColumn(header : trans("TRUST_STATUS"), preferredWidth : 10, type: TrustLevel, read : { SenderBucket row ->
model.core.trustService.getLevel(row.sender.destination)
})
}
}
@ -405,6 +406,7 @@ class SearchTabView {
def popRenderer = new PersonaOrProfileCellRenderer(application.context.get("ui-settings"))
def popComparator = new PersonaOrProfileComparator()
sendersTable.addMouseListener(sendersMouseListener)
sendersTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
sendersTable.setDefaultRenderer(Integer.class, centerRenderer)
sendersTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer)
sendersTable.rowSorter.setComparator(0, popComparator)

View File

@ -1,6 +1,7 @@
package com.muwire.gui
import com.muwire.core.Persona
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.profile.PersonaOrProfile
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
import com.muwire.gui.profile.PersonaOrProfileComparator
@ -63,14 +64,12 @@ class TrustListView {
scrollPane (constraints : BorderLayout.CENTER){
contactsTable = table(id : "contacts-table", autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list : model.contacts) {
closureColumn(header: trans("CONTACTS"), preferredWidth: 200, type : PersonaOrProfile, read : {it})
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 20, type: String, read: {
trans(it.level.name())
})
closureColumn(header: trans("REASON"), preferredWidth: 200, type : String, read : {it.reason})
closureColumn(header: trans("YOUR_TRUST"), preferredWidth: 20, type : String, read : {
closureColumn(header: trans("CONTACTS"), preferredWidth: 250, type : PersonaOrProfile, read : {it})
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 10, type: TrustLevel, read: {it.level})
closureColumn(header: trans("REASON"), preferredWidth: 250, type : String, read : {it.reason})
closureColumn(header: trans("YOUR_TRUST"), preferredWidth: 10, type : TrustLevel, read : {
Persona p = it.persona
trans(model.trustService.getLevel(p.destination).name())
model.trustService.getLevel(p.destination)
})
}
}
@ -90,6 +89,7 @@ class TrustListView {
def popRenderer = new PersonaOrProfileCellRenderer(application.context.get("ui-settings"))
def popComparator = new PersonaOrProfileComparator()
contactsTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
contactsTable.setDefaultRenderer(PersonaOrProfile.class, popRenderer)
contactsTable.rowSorter.setComparator(0, popComparator)
contactsTable.rowSorter.setSortsOnUpdates(true)

View File

@ -2,10 +2,12 @@ package com.muwire.gui.resultdetails
import com.muwire.core.Persona
import com.muwire.core.filecert.Certificate
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.DateRenderer
import com.muwire.gui.HTMLSanitizer
import com.muwire.gui.PersonaCellRenderer
import com.muwire.gui.PersonaComparator
import com.muwire.gui.TrustCellRenderer
import griffon.core.GriffonApplication
import griffon.core.artifact.GriffonView
import griffon.inject.MVCMember
@ -52,8 +54,8 @@ class CertificateTabView {
tableModel(list: model.certificates) {
closureColumn(header: trans("ISSUER"), preferredWidth: 150, type: Persona,
read:{it.issuer})
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 30, type:String,
read:{trans(model.core.trustService.getLevel(it.issuer.destination).name())})
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 10, type: TrustLevel,
read:{model.core.trustService.getLevel(it.issuer.destination)})
closureColumn(header: trans("NAME"), preferredWidth: 450,
read: { Certificate c -> HTMLSanitizer.sanitize(c.name.name) })
closureColumn(header: trans("ISSUED"), preferredWidth: 50, type: Long,
@ -72,6 +74,7 @@ class CertificateTabView {
}
void mvcGroupInit(Map<String,String> args) {
certsTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
certsTable.setDefaultRenderer(Persona.class, new PersonaCellRenderer(application.context.get("ui-settings")))
certsTable.setDefaultRenderer(Long.class, new DateRenderer())
certsTable.rowSorter.setComparator(0, new PersonaComparator())

View File

@ -1,5 +1,7 @@
package com.muwire.gui.resultdetails
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.TrustCellRenderer
import com.muwire.gui.profile.PersonaOrProfile
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
import com.muwire.gui.profile.PersonaOrProfileComparator
@ -86,10 +88,10 @@ class ResultDetailsFrameView {
scrollPane {
table(id: "senders-table", autoCreateRowSorter: true, rowHeight: rowHeight) {
tableModel(list: model.senders.toList()) {
closureColumn(header: trans("SENDER"), type: PersonaOrProfile, read: { it })
closureColumn(header: trans("TRUST_NOUN"), read: { PersonaOrProfile pop ->
closureColumn(header: trans("SENDER"), preferredWidth: 700, type: PersonaOrProfile, read: { it })
closureColumn(header: trans("TRUST_STATUS"), preferredWidth:10, type: TrustLevel, read: { PersonaOrProfile pop ->
Destination destination = pop.getPersona().destination
trans(model.core.trustService.getLevel(destination).name())
model.core.trustService.getLevel(destination)
})
}
}
@ -122,6 +124,7 @@ class ResultDetailsFrameView {
void mvcGroupInit(Map<String, String> args) {
if (model.senders.size() > 1) {
JTable sendersTable = builder.getVariable("senders-table")
sendersTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
sendersTable.setDefaultRenderer(PersonaOrProfile.class,
new PersonaOrProfileCellRenderer(application.context.get("ui-settings")))
sendersTable.rowSorter.setComparator(0, new PersonaOrProfileComparator())

View File

@ -1,7 +1,9 @@
package com.muwire.gui.resultdetails
import com.muwire.core.search.UIResultEvent
import com.muwire.core.trust.TrustLevel
import com.muwire.gui.HTMLSanitizer
import com.muwire.gui.TrustCellRenderer
import com.muwire.gui.profile.PersonaOrProfile
import com.muwire.gui.profile.PersonaOrProfileCellRenderer
import com.muwire.gui.profile.PersonaOrProfileComparator
@ -71,10 +73,10 @@ class ResultDetailsTabsView {
sendersTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list: model.results) {
closureColumn(header: trans("SENDER"), preferredWidth: 150, type: PersonaOrProfile, read : {it})
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 30, type:String, read : { ResultPOP row ->
trans(model.core.trustService.getLevel(row.getPersona().destination).name())
closureColumn(header: trans("TRUST_STATUS"), preferredWidth: 10, type: TrustLevel, read : { ResultPOP row ->
model.core.trustService.getLevel(row.getPersona().destination)
})
closureColumn(header: trans("NAME"), preferredWidth: 650, type: String, read : { ResultPOP row ->
closureColumn(header: trans("NAME"), preferredWidth: 700, type: String, read : { ResultPOP row ->
HTMLSanitizer.sanitize(row.getEvent().getFullPath())
})
closureColumn(header: trans("COMMENTS"), preferredWidth: 20, type: Boolean, read : { ResultPOP row ->
@ -183,6 +185,7 @@ class ResultDetailsTabsView {
void mvcGroupInit(Map<String,String> args) {
// all senders table
sendersTable.setDefaultRenderer(TrustLevel.class, new TrustCellRenderer())
sendersTable.setDefaultRenderer(PersonaOrProfile.class,
new PersonaOrProfileCellRenderer(application.context.get("ui-settings")))
sendersTable.rowSorter.setComparator(0, new PersonaOrProfileComparator())

View File

@ -0,0 +1,47 @@
package com.muwire.gui
import com.muwire.core.trust.TrustLevel
import static com.muwire.gui.Translator.trans
import javax.swing.Icon
import javax.swing.ImageIcon
import javax.swing.JTable
import javax.swing.table.DefaultTableCellRenderer
import java.awt.Component
class TrustCellRenderer extends DefaultTableCellRenderer {
private final Icon trusted, neutral, distrusted
TrustCellRenderer() {
trusted = new ImageIcon(getClass().getClassLoader().getResource("trusted.png"))
neutral = new ImageIcon(getClass().getClassLoader().getResource("neutral.png"))
distrusted = new ImageIcon(getClass().getClassLoader().getResource("distrusted.png"))
}
@Override
Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column)
TrustLevel level = (TrustLevel) value
switch(value) {
case TrustLevel.TRUSTED: setIcon(trusted); break;
case TrustLevel.NEUTRAL: setIcon(neutral); break;
case TrustLevel.DISTRUSTED: setIcon(distrusted); break;
}
setText("")
setToolTipText(trans(level.name()))
if (isSelected) {
setForeground(table.getSelectionForeground())
setBackground(table.getSelectionBackground())
} else {
setForeground(table.getForeground())
setBackground(table.getBackground())
}
this
}
}