mirror of https://github.com/zlatinb/muwire
replace View X buttons in Browse tab with View Details frame
parent
758a725098
commit
38948034a1
|
@ -1,5 +1,6 @@
|
|||
package com.muwire.gui
|
||||
|
||||
import com.muwire.core.Persona
|
||||
import com.muwire.core.SplitPattern
|
||||
import griffon.core.artifact.GriffonController
|
||||
import griffon.core.controller.ControllerAction
|
||||
|
@ -65,7 +66,6 @@ class BrowseController {
|
|||
model.pendingResults.clear()
|
||||
}
|
||||
for(UIResultBatchEvent event : copy) {
|
||||
model.chatActionEnabled = event.results[0].chat
|
||||
List<UIResultEvent> results = event.results.toList()
|
||||
model.results.addAll(results)
|
||||
for (UIResultEvent result : results)
|
||||
|
@ -155,68 +155,24 @@ class BrowseController {
|
|||
}
|
||||
|
||||
@ControllerAction
|
||||
void viewComment() {
|
||||
def selectedResults = view.selectedResults()
|
||||
if (selectedResults == null || selectedResults.size() != 1)
|
||||
return
|
||||
def result = selectedResults[0]
|
||||
if (result.comment == null)
|
||||
return
|
||||
|
||||
String groupId = Base64.encode(result.infohash.getRoot())
|
||||
Map<String,Object> params = new HashMap<>()
|
||||
params['text'] = result.comment
|
||||
params['name'] = result.name
|
||||
|
||||
mvcGroup.createMVCGroup("show-comment", groupId, params)
|
||||
void copyId() {
|
||||
CopyPasteSupport.copyToClipboard(model.host.toBase64())
|
||||
}
|
||||
|
||||
@ControllerAction
|
||||
void viewCertificates() {
|
||||
def selectedResults = view.selectedResults()
|
||||
if (selectedResults == null || selectedResults.size() != 1)
|
||||
return
|
||||
def result = selectedResults[0]
|
||||
if (result.certificates <= 0)
|
||||
return
|
||||
|
||||
def params = [:]
|
||||
params['host'] = result.getSender()
|
||||
params['infoHash'] = result.getInfohash()
|
||||
params['name'] = result.getName()
|
||||
params['core'] = core
|
||||
mvcGroup.createMVCGroup("fetch-certificates", params)
|
||||
}
|
||||
|
||||
@ControllerAction
|
||||
void chat() {
|
||||
def mainFrameGroup = application.mvcGroupManager.getGroups()['MainFrame']
|
||||
|
||||
mainFrameGroup.controller.startChat(model.host)
|
||||
mainFrameGroup.view.showChatWindow.call()
|
||||
}
|
||||
|
||||
@ControllerAction
|
||||
void viewCollections() {
|
||||
void viewDetails() {
|
||||
def selectedResults = view.selectedResults()
|
||||
if (selectedResults == null || selectedResults.size() != 1)
|
||||
return
|
||||
def event = selectedResults[0]
|
||||
if (event.collections == null || event.collections.isEmpty())
|
||||
return
|
||||
Set<Persona> senders = new HashSet<>()
|
||||
senders.add(model.host)
|
||||
|
||||
UUID uuid = UUID.randomUUID()
|
||||
String mvcId = "resultdetails_" + model.host.getHumanReadableName() + "_" + Base64.encode(event.infohash.getRoot())
|
||||
def params = [:]
|
||||
params['fileName'] = event.name
|
||||
params['eventBus'] = mvcGroup.parentGroup.model.core.eventBus
|
||||
params['infoHashes'] = event.collections.collect()
|
||||
params['uuid'] = uuid
|
||||
params['host'] = event.sender
|
||||
mvcGroup.parentGroup.createMVCGroup("collection-tab", uuid.toString(), params)
|
||||
}
|
||||
|
||||
@ControllerAction
|
||||
void copyId() {
|
||||
CopyPasteSupport.copyToClipboard(model.host.toBase64())
|
||||
params.core = core
|
||||
params.resultEvent = event
|
||||
params.senders = senders
|
||||
mvcGroup.createMVCGroup("result-details-frame", mvcId, params)
|
||||
}
|
||||
}
|
|
@ -24,10 +24,7 @@ class BrowseModel {
|
|||
Persona host
|
||||
@Observable BrowseStatus status
|
||||
@Observable boolean downloadActionEnabled
|
||||
@Observable boolean viewCommentActionEnabled
|
||||
@Observable boolean viewCollectionsActionEnabled
|
||||
@Observable boolean viewCertificatesActionEnabled
|
||||
@Observable boolean chatActionEnabled
|
||||
@Observable boolean viewDetailsActionEnabled
|
||||
@Observable int totalResults
|
||||
@Observable int resultCount
|
||||
@Observable boolean filterEnabled
|
||||
|
|
|
@ -104,9 +104,7 @@ class BrowseView {
|
|||
sequentialDownloadCheckbox = checkBox(enabled: bind {model.downloadActionEnabled})
|
||||
}
|
||||
panel(border: etchedBorder()) {
|
||||
button(text: trans("VIEW_COMMENT"), enabled: bind { model.viewCommentActionEnabled }, viewCommentAction)
|
||||
button(text: trans("VIEW_CERTIFICATES"), enabled: bind { model.viewCertificatesActionEnabled }, viewCertificatesAction)
|
||||
button(text: trans("VIEW_COLLECTIONS"), enabled: bind { model.viewCollectionsActionEnabled }, viewCollectionsAction)
|
||||
button(text: trans("VIEW_DETAILS"), enabled: bind {model.viewDetailsActionEnabled}, viewDetailsAction)
|
||||
}
|
||||
panel(border: etchedBorder()) {
|
||||
def textField = new JTextField(15)
|
||||
|
@ -136,9 +134,7 @@ class BrowseView {
|
|||
resultsTree.addMouseListener(mouseListener)
|
||||
resultsTree.addTreeSelectionListener({
|
||||
model.downloadActionEnabled = false
|
||||
model.viewCertificatesActionEnabled = false
|
||||
model.viewCommentActionEnabled = false
|
||||
model.viewCollectionsActionEnabled = false
|
||||
model.viewDetailsActionEnabled = false
|
||||
TreePath[] selected = resultsTree.selectionModel.getSelectionPaths()
|
||||
if (selected == null || selected.length == 0) {
|
||||
return
|
||||
|
@ -147,9 +143,7 @@ class BrowseView {
|
|||
model.downloadActionEnabled = true
|
||||
UIResultEvent result = resultsTree.singleResultSelected()
|
||||
if (result != null) {
|
||||
model.viewCommentActionEnabled = result.comment != null
|
||||
model.viewCollectionsActionEnabled = !result.collections.isEmpty()
|
||||
model.viewCertificatesActionEnabled = result.certificates > 0
|
||||
model.viewDetailsActionEnabled = true
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -173,9 +167,7 @@ class BrowseView {
|
|||
int[] rows = resultsTable.getSelectedRows()
|
||||
if (rows.length == 0) {
|
||||
model.downloadActionEnabled = false
|
||||
model.viewCommentActionEnabled = false
|
||||
model.viewCertificatesActionEnabled = false
|
||||
model.viewCollectionsActionEnabled = false
|
||||
model.viewDetailsActionEnabled = false
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -187,13 +179,7 @@ class BrowseView {
|
|||
|
||||
boolean downloadActionEnabled = true
|
||||
|
||||
model.viewCertificatesActionEnabled = (rows.length == 1 && model.results[rows[0]].certificates > 0)
|
||||
model.viewCollectionsActionEnabled = rows.length == 1 && model.results[rows[0]].collections.size() > 0
|
||||
|
||||
if (rows.length == 1 && model.results[rows[0]].comment != null)
|
||||
model.viewCommentActionEnabled = true
|
||||
else
|
||||
model.viewCommentActionEnabled = false
|
||||
model.viewDetailsActionEnabled = rows.length == 1
|
||||
|
||||
def mainFrameGroup = application.mvcGroupManager.getGroups()['MainFrame']
|
||||
rows.each {
|
||||
|
@ -214,20 +200,10 @@ class BrowseView {
|
|||
download.addActionListener({controller.download()})
|
||||
menu.add(download)
|
||||
}
|
||||
if (model.viewCommentActionEnabled) {
|
||||
JMenuItem viewComment = new JMenuItem(trans("VIEW_COMMENT"))
|
||||
viewComment.addActionListener({controller.viewComment()})
|
||||
menu.add(viewComment)
|
||||
}
|
||||
if (model.viewCollectionsActionEnabled) {
|
||||
JMenuItem viewCollections = new JMenuItem(trans("VIEW_COLLECTIONS"))
|
||||
viewCollections.addActionListener({controller.viewCollections()})
|
||||
menu.add(viewCollections)
|
||||
}
|
||||
if (model.viewCertificatesActionEnabled) {
|
||||
JMenuItem viewCertificates = new JMenuItem(trans("VIEW_CERTIFICATES"))
|
||||
viewCertificates.addActionListener({controller.viewCertificates()})
|
||||
menu.add(viewCertificates)
|
||||
if (model.viewDetailsActionEnabled) {
|
||||
JMenuItem viewDetails = new JMenuItem(trans("VIEW_DETAILS"))
|
||||
viewDetails.addActionListener({controller.viewDetails()})
|
||||
menu.add(viewDetails)
|
||||
}
|
||||
|
||||
JMenuItem copyHash = new JMenuItem(trans("COPY_HASH_TO_CLIPBOARD"))
|
||||
|
|
Loading…
Reference in New Issue