compact display of incoming searches, thanks Aegon
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.muwire.gui
|
package com.muwire.gui
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
|
import java.util.Calendar
|
||||||
|
import java.util.UUID
|
||||||
|
|
||||||
import javax.annotation.Nonnull
|
import javax.annotation.Nonnull
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -360,10 +362,31 @@ class MainFrameModel {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
runInsideUIAsync {
|
runInsideUIAsync {
|
||||||
searches.addFirst(new IncomingSearch(search : search, replyTo : e.replyTo, originator : e.originator))
|
JTable table = builder.getVariable("searches-table")
|
||||||
|
|
||||||
|
Boolean searchFound = false
|
||||||
|
Iterator searchIter = searches.iterator()
|
||||||
|
while ( searchIter.hasNext() ) {
|
||||||
|
IncomingSearch searchEle = searchIter.next()
|
||||||
|
if ( searchEle.search == search
|
||||||
|
&& searchEle.originator == e.originator
|
||||||
|
&& searchEle.uuid == e.searchEvent.getUuid() ) {
|
||||||
|
searchIter.remove()
|
||||||
|
table.model.fireTableDataChanged()
|
||||||
|
searchFound = true
|
||||||
|
searchEle.count++
|
||||||
|
searchEle.timestamp = Calendar.getInstance()
|
||||||
|
searches.addFirst(searchEle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!searchFound) {
|
||||||
|
searches.addFirst(new IncomingSearch(search, e.replyTo, e.originator, e.searchEvent.getUuid()))
|
||||||
|
}
|
||||||
|
|
||||||
while(searches.size() > 200)
|
while(searches.size() > 200)
|
||||||
searches.removeLast()
|
searches.removeLast()
|
||||||
JTable table = builder.getVariable("searches-table")
|
|
||||||
table.model.fireTableDataChanged()
|
table.model.fireTableDataChanged()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -372,6 +395,18 @@ class MainFrameModel {
|
|||||||
String search
|
String search
|
||||||
Destination replyTo
|
Destination replyTo
|
||||||
Persona originator
|
Persona originator
|
||||||
|
long count
|
||||||
|
UUID uuid
|
||||||
|
Calendar timestamp
|
||||||
|
|
||||||
|
IncomingSearch( String search, Destination replyTo, Persona originator, UUID uuid ) {
|
||||||
|
this.search = search
|
||||||
|
this.replyTo = replyTo
|
||||||
|
this.originator = originator
|
||||||
|
this.uuid = uuid
|
||||||
|
this.count = 1
|
||||||
|
this.timestamp = Calendar.getInstance()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void onUpdateAvailableEvent(UpdateAvailableEvent e) {
|
void onUpdateAvailableEvent(UpdateAvailableEvent e) {
|
||||||
|
@@ -265,6 +265,14 @@ class MainFrameView {
|
|||||||
return it.replyTo.toBase32()
|
return it.replyTo.toBase32()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
closureColumn(header : "Count", type : String, read : {
|
||||||
|
it.count.toString()
|
||||||
|
})
|
||||||
|
closureColumn(header : "Timestamp", type : String, read : {
|
||||||
|
String.format("%02d", it.timestamp.get(Calendar.HOUR_OF_DAY)) + ":" +
|
||||||
|
String.format("%02d", it.timestamp.get(Calendar.MINUTE)) + ":" +
|
||||||
|
String.format("%02d", it.timestamp.get(Calendar.SECOND))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user