proper date sorting

pull/24/head
Zlatin Balevsky 2019-11-08 08:17:34 +00:00
parent f95e9450f3
commit 800dd1cbba
3 changed files with 41 additions and 13 deletions

View File

@ -65,10 +65,7 @@ class CertificateControlView {
closureColumn(header : "File Name", type : String, read : {it.name.name})
closureColumn(header : "Hash", type : String, read : {Base64.encode(it.infoHash.getRoot())})
closureColumn(header : "Comment", preferredWidth : 20, type : Boolean, read : {it.comment != null})
closureColumn(header : "Timestamp", type : String, read : {
def date = new Date(it.timestamp)
date.toString()
})
closureColumn(header : "Timestamp", type : Long, read : { it.timestamp })
}
}
}
@ -113,6 +110,8 @@ class CertificateControlView {
}
})
certsTable.setDefaultRenderer(Long.class, new DateRenderer())
dialog.getContentPane().add(panel)
dialog.pack()
dialog.setLocationRelativeTo(mainFrame)

View File

@ -34,6 +34,7 @@ class SharedFileView {
def dialog
def panel
def searchersPanel
def searchersTable
def downloadersPanel
def certificatesTable
def certificatesPanel
@ -48,14 +49,11 @@ class SharedFileView {
searchersPanel = builder.panel {
borderLayout()
scrollPane(constraints : BorderLayout.CENTER) {
table(autoCreateRowSorter : true, rowHeight : rowHeight) {
searchersTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) {
tableModel(list : model.searchers) {
closureColumn(header : "Searcher", type : String, read : {it.searcher?.getHumanReadableName()})
closureColumn(header : "Query", type : String, read : {it.query})
closureColumn(header : "Timestamp", type : String, read : {
Date d = new Date(it.timestamp)
d.toString()
})
closureColumn(header : "Timestamp", type : Long, read : {it.timestamp})
}
}
}
@ -80,10 +78,7 @@ class SharedFileView {
closureColumn(header : "Issuer", type:String, read : {it.issuer.getHumanReadableName()})
closureColumn(header : "File Name", type : String, read : {it.name.name})
closureColumn(header : "Comment", type : Boolean, read : {it.comment != null})
closureColumn(header : "Timestamp", type : String, read : {
Date d = new Date(it.timestamp)
d.toString()
})
closureColumn(header : "Timestamp", type : Long, read : {it.timestamp})
}
}
}
@ -114,6 +109,11 @@ class SharedFileView {
}
})
certificatesTable.setDefaultRenderer(Long.class, new DateRenderer())
searchersTable.setDefaultRenderer(Long.class, new DateRenderer())
def tabbedPane = new JTabbedPane()
tabbedPane.addTab("Search Hits", searchersPanel)
tabbedPane.addTab("Downloaders", downloadersPanel)

View File

@ -0,0 +1,29 @@
package com.muwire.gui
import javax.swing.JComponent
import javax.swing.JLabel
import javax.swing.JTable
import javax.swing.table.DefaultTableCellRenderer
import net.i2p.data.DataHelper
class DateRenderer extends DefaultTableCellRenderer {
DateRenderer(){
setHorizontalAlignment(JLabel.CENTER)
}
JComponent getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Long l = (Long) value
String formatted = DataHelper.formatTime(l)
setText(formatted)
if (isSelected) {
setForeground(table.getSelectionForeground())
setBackground(table.getSelectionBackground())
} else {
setForeground(table.getForeground())
setBackground(table.getBackground())
}
this
}
}