mirror of https://github.com/zlatinb/muwire
show down arrow on results that are currently downloading
parent
7cc7027364
commit
7d7d062152
|
@ -2,6 +2,7 @@ package com.muwire.gui
|
||||||
|
|
||||||
import com.muwire.core.Persona
|
import com.muwire.core.Persona
|
||||||
import com.muwire.core.SplitPattern
|
import com.muwire.core.SplitPattern
|
||||||
|
import com.muwire.core.download.DownloadStartedEvent
|
||||||
import griffon.core.artifact.GriffonController
|
import griffon.core.artifact.GriffonController
|
||||||
import griffon.core.controller.ControllerAction
|
import griffon.core.controller.ControllerAction
|
||||||
import griffon.inject.MVCMember
|
import griffon.inject.MVCMember
|
||||||
|
@ -36,6 +37,7 @@ class BrowseController {
|
||||||
void register() {
|
void register() {
|
||||||
core.eventBus.register(BrowseStatusEvent.class, this)
|
core.eventBus.register(BrowseStatusEvent.class, this)
|
||||||
core.eventBus.register(UIResultBatchEvent.class, this)
|
core.eventBus.register(UIResultBatchEvent.class, this)
|
||||||
|
core.eventBus.register(DownloadStartedEvent.class, this)
|
||||||
model.uuid = UUID.randomUUID()
|
model.uuid = UUID.randomUUID()
|
||||||
timer.start()
|
timer.start()
|
||||||
core.eventBus.publish(new UIBrowseEvent(host : model.host, uuid: model.uuid))
|
core.eventBus.publish(new UIBrowseEvent(host : model.host, uuid: model.uuid))
|
||||||
|
@ -45,6 +47,13 @@ class BrowseController {
|
||||||
timer.stop()
|
timer.stop()
|
||||||
core.eventBus.unregister(BrowseStatusEvent.class, this)
|
core.eventBus.unregister(BrowseStatusEvent.class, this)
|
||||||
core.eventBus.unregister(UIResultBatchEvent.class, this)
|
core.eventBus.unregister(UIResultBatchEvent.class, this)
|
||||||
|
core.eventBus.unregister(DownloadStartedEvent.class, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
void onDownloadStartedEvent(DownloadStartedEvent event) {
|
||||||
|
runInsideUIAsync {
|
||||||
|
view.updateUIs()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void onBrowseStatusEvent(BrowseStatusEvent e) {
|
void onBrowseStatusEvent(BrowseStatusEvent e) {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.muwire.gui
|
||||||
|
|
||||||
import com.muwire.core.InfoHash
|
import com.muwire.core.InfoHash
|
||||||
import com.muwire.core.SplitPattern
|
import com.muwire.core.SplitPattern
|
||||||
|
import com.muwire.core.download.DownloadStartedEvent
|
||||||
import griffon.core.GriffonApplication
|
import griffon.core.GriffonApplication
|
||||||
import griffon.core.artifact.GriffonController
|
import griffon.core.artifact.GriffonController
|
||||||
import griffon.core.controller.ControllerAction
|
import griffon.core.controller.ControllerAction
|
||||||
|
@ -39,6 +40,20 @@ class SearchTabController {
|
||||||
|
|
||||||
Core core
|
Core core
|
||||||
|
|
||||||
|
void mvcGroupInit(Map<String,String> args) {
|
||||||
|
core.eventBus.register(DownloadStartedEvent.class, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
void mvcGroupDestroy() {
|
||||||
|
core.eventBus.unregister(DownloadStartedEvent.class, this)
|
||||||
|
}
|
||||||
|
|
||||||
|
void onDownloadStartedEvent(DownloadStartedEvent event) {
|
||||||
|
runInsideUIAsync {
|
||||||
|
view.updateUIs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ControllerAction
|
@ControllerAction
|
||||||
void download() {
|
void download() {
|
||||||
def results = view.selectedResults()
|
def results = view.selectedResults()
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.muwire.gui
|
||||||
import griffon.core.artifact.GriffonView
|
import griffon.core.artifact.GriffonView
|
||||||
|
|
||||||
import javax.swing.JPanel
|
import javax.swing.JPanel
|
||||||
|
import javax.swing.JTable
|
||||||
import javax.swing.JTextField
|
import javax.swing.JTextField
|
||||||
import javax.swing.JTree
|
import javax.swing.JTree
|
||||||
import javax.swing.tree.TreePath
|
import javax.swing.tree.TreePath
|
||||||
|
@ -42,8 +43,8 @@ class BrowseView {
|
||||||
|
|
||||||
ResultTree resultsTree
|
ResultTree resultsTree
|
||||||
def treeExpansions = new TreeExpansions()
|
def treeExpansions = new TreeExpansions()
|
||||||
|
|
||||||
def resultsTable
|
JTable resultsTable
|
||||||
def lastSortEvent
|
def lastSortEvent
|
||||||
|
|
||||||
def sequentialDownloadCheckbox
|
def sequentialDownloadCheckbox
|
||||||
|
@ -136,7 +137,7 @@ class BrowseView {
|
||||||
}
|
}
|
||||||
|
|
||||||
// results tree
|
// results tree
|
||||||
resultsTree.setSharedPredicate(controller.core.fileManager::isShared)
|
resultsTree.setSharedPredicate(controller.core.fileManager::isShared, controller.core.downloadManager::isDownloading)
|
||||||
resultsTree.addTreeExpansionListener(treeExpansions)
|
resultsTree.addTreeExpansionListener(treeExpansions)
|
||||||
resultsTree.addMouseListener(mouseListener)
|
resultsTree.addMouseListener(mouseListener)
|
||||||
resultsTree.addTreeSelectionListener({
|
resultsTree.addTreeSelectionListener({
|
||||||
|
@ -162,7 +163,9 @@ class BrowseView {
|
||||||
resultsTable.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
resultsTable.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
||||||
|
|
||||||
resultsTable.setDefaultRenderer(UIResultEvent.class,
|
resultsTable.setDefaultRenderer(UIResultEvent.class,
|
||||||
new ResultNameTableCellRenderer(controller.core.fileManager::isShared, true))
|
new ResultNameTableCellRenderer(controller.core.fileManager::isShared,
|
||||||
|
controller.core.downloadManager::isDownloading,
|
||||||
|
true))
|
||||||
|
|
||||||
resultsTable.rowSorter.addRowSorterListener({evt -> lastSortEvent = evt})
|
resultsTable.rowSorter.addRowSorterListener({evt -> lastSortEvent = evt})
|
||||||
resultsTable.rowSorter.setSortsOnUpdates(true)
|
resultsTable.rowSorter.setSortsOnUpdates(true)
|
||||||
|
@ -312,6 +315,11 @@ class BrowseView {
|
||||||
tree.setSelectionPaths(selectedPaths)
|
tree.setSelectionPaths(selectedPaths)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateUIs() {
|
||||||
|
resultsTable.updateUI()
|
||||||
|
resultsTree.updateUI()
|
||||||
|
}
|
||||||
|
|
||||||
void expandUnconditionally() {
|
void expandUnconditionally() {
|
||||||
JTree tree = builder.getVariable("results-tree")
|
JTree tree = builder.getVariable("results-tree")
|
||||||
TreeUtil.expand(tree)
|
TreeUtil.expand(tree)
|
||||||
|
|
|
@ -296,7 +296,7 @@ class SearchTabView {
|
||||||
}
|
}
|
||||||
|
|
||||||
// results tree
|
// results tree
|
||||||
resultTree.setSharedPredicate(model.core.fileManager::isShared)
|
resultTree.setSharedPredicate(model.core.fileManager::isShared, model.core.downloadManager::isDownloading)
|
||||||
resultTree.addMouseListener(resultsMouseListener)
|
resultTree.addMouseListener(resultsMouseListener)
|
||||||
resultTree.addTreeSelectionListener {
|
resultTree.addTreeSelectionListener {
|
||||||
model.downloadActionEnabled = false
|
model.downloadActionEnabled = false
|
||||||
|
@ -317,7 +317,9 @@ class SearchTabView {
|
||||||
centerRenderer.setHorizontalAlignment(JLabel.CENTER)
|
centerRenderer.setHorizontalAlignment(JLabel.CENTER)
|
||||||
resultsTable.setDefaultRenderer(Integer.class,centerRenderer)
|
resultsTable.setDefaultRenderer(Integer.class,centerRenderer)
|
||||||
resultsTable.setDefaultRenderer(UIResultEvent.class,
|
resultsTable.setDefaultRenderer(UIResultEvent.class,
|
||||||
new ResultNameTableCellRenderer(model.core.fileManager::isShared, false))
|
new ResultNameTableCellRenderer(model.core.fileManager::isShared,
|
||||||
|
model.core.downloadManager::isDownloading,
|
||||||
|
false))
|
||||||
|
|
||||||
resultsTable.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
resultsTable.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
||||||
|
|
||||||
|
@ -395,7 +397,9 @@ class SearchTabView {
|
||||||
// results table 2
|
// results table 2
|
||||||
resultsTable2.setDefaultRenderer(Integer.class,centerRenderer)
|
resultsTable2.setDefaultRenderer(Integer.class,centerRenderer)
|
||||||
resultsTable2.setDefaultRenderer(UIResultEvent.class,
|
resultsTable2.setDefaultRenderer(UIResultEvent.class,
|
||||||
new ResultNameTableCellRenderer(model.core.fileManager::isShared, false))
|
new ResultNameTableCellRenderer(model.core.fileManager::isShared,
|
||||||
|
model.core.downloadManager::isDownloading,
|
||||||
|
false))
|
||||||
resultsTable2.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
resultsTable2.columnModel.getColumn(1).setCellRenderer(new SizeRenderer())
|
||||||
resultsTable2.rowSorter.addRowSorterListener({evt -> lastResults2SortEvent = evt})
|
resultsTable2.rowSorter.addRowSorterListener({evt -> lastResults2SortEvent = evt})
|
||||||
resultsTable2.rowSorter.setSortsOnUpdates(true)
|
resultsTable2.rowSorter.setSortsOnUpdates(true)
|
||||||
|
@ -687,6 +691,12 @@ class SearchTabView {
|
||||||
table.selectionModel.addSelectionInterval(row, row)
|
table.selectionModel.addSelectionInterval(row, row)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateUIs() {
|
||||||
|
JTable table = builder.getVariable("results-table")
|
||||||
|
table.updateUI()
|
||||||
|
resultTree.updateUI()
|
||||||
|
}
|
||||||
|
|
||||||
private class FocusListener {
|
private class FocusListener {
|
||||||
void onFocus(boolean focus) {
|
void onFocus(boolean focus) {
|
||||||
|
|
Loading…
Reference in New Issue