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

View File

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