replace View X buttons in Browse tab with View Details frame

auto-update
Zlatin Balevsky 2021-12-25 18:12:15 +00:00
parent 758a725098
commit 38948034a1
No known key found for this signature in database
GPG Key ID: A72832072D525E41
3 changed files with 21 additions and 92 deletions

View File

@ -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)
}
}

View File

@ -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

View File

@ -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"))