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 package com.muwire.gui
import com.muwire.core.Persona
import com.muwire.core.SplitPattern import com.muwire.core.SplitPattern
import griffon.core.artifact.GriffonController import griffon.core.artifact.GriffonController
import griffon.core.controller.ControllerAction import griffon.core.controller.ControllerAction
@ -65,7 +66,6 @@ class BrowseController {
model.pendingResults.clear() model.pendingResults.clear()
} }
for(UIResultBatchEvent event : copy) { for(UIResultBatchEvent event : copy) {
model.chatActionEnabled = event.results[0].chat
List<UIResultEvent> results = event.results.toList() List<UIResultEvent> results = event.results.toList()
model.results.addAll(results) model.results.addAll(results)
for (UIResultEvent result : results) for (UIResultEvent result : results)
@ -155,68 +155,24 @@ class BrowseController {
} }
@ControllerAction @ControllerAction
void viewComment() { void copyId() {
def selectedResults = view.selectedResults() CopyPasteSupport.copyToClipboard(model.host.toBase64())
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)
} }
@ControllerAction @ControllerAction
void viewCertificates() { void viewDetails() {
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() {
def selectedResults = view.selectedResults() def selectedResults = view.selectedResults()
if (selectedResults == null || selectedResults.size() != 1) if (selectedResults == null || selectedResults.size() != 1)
return return
def event = selectedResults[0] def event = selectedResults[0]
if (event.collections == null || event.collections.isEmpty()) Set<Persona> senders = new HashSet<>()
return senders.add(model.host)
UUID uuid = UUID.randomUUID() String mvcId = "resultdetails_" + model.host.getHumanReadableName() + "_" + Base64.encode(event.infohash.getRoot())
def params = [:] def params = [:]
params['fileName'] = event.name params.core = core
params['eventBus'] = mvcGroup.parentGroup.model.core.eventBus params.resultEvent = event
params['infoHashes'] = event.collections.collect() params.senders = senders
params['uuid'] = uuid mvcGroup.createMVCGroup("result-details-frame", mvcId, params)
params['host'] = event.sender
mvcGroup.parentGroup.createMVCGroup("collection-tab", uuid.toString(), params)
}
@ControllerAction
void copyId() {
CopyPasteSupport.copyToClipboard(model.host.toBase64())
} }
} }

View File

@ -24,10 +24,7 @@ class BrowseModel {
Persona host Persona host
@Observable BrowseStatus status @Observable BrowseStatus status
@Observable boolean downloadActionEnabled @Observable boolean downloadActionEnabled
@Observable boolean viewCommentActionEnabled @Observable boolean viewDetailsActionEnabled
@Observable boolean viewCollectionsActionEnabled
@Observable boolean viewCertificatesActionEnabled
@Observable boolean chatActionEnabled
@Observable int totalResults @Observable int totalResults
@Observable int resultCount @Observable int resultCount
@Observable boolean filterEnabled @Observable boolean filterEnabled

View File

@ -104,9 +104,7 @@ class BrowseView {
sequentialDownloadCheckbox = checkBox(enabled: bind {model.downloadActionEnabled}) sequentialDownloadCheckbox = checkBox(enabled: bind {model.downloadActionEnabled})
} }
panel(border: etchedBorder()) { panel(border: etchedBorder()) {
button(text: trans("VIEW_COMMENT"), enabled: bind { model.viewCommentActionEnabled }, viewCommentAction) button(text: trans("VIEW_DETAILS"), enabled: bind {model.viewDetailsActionEnabled}, viewDetailsAction)
button(text: trans("VIEW_CERTIFICATES"), enabled: bind { model.viewCertificatesActionEnabled }, viewCertificatesAction)
button(text: trans("VIEW_COLLECTIONS"), enabled: bind { model.viewCollectionsActionEnabled }, viewCollectionsAction)
} }
panel(border: etchedBorder()) { panel(border: etchedBorder()) {
def textField = new JTextField(15) def textField = new JTextField(15)
@ -136,9 +134,7 @@ class BrowseView {
resultsTree.addMouseListener(mouseListener) resultsTree.addMouseListener(mouseListener)
resultsTree.addTreeSelectionListener({ resultsTree.addTreeSelectionListener({
model.downloadActionEnabled = false model.downloadActionEnabled = false
model.viewCertificatesActionEnabled = false model.viewDetailsActionEnabled = false
model.viewCommentActionEnabled = false
model.viewCollectionsActionEnabled = false
TreePath[] selected = resultsTree.selectionModel.getSelectionPaths() TreePath[] selected = resultsTree.selectionModel.getSelectionPaths()
if (selected == null || selected.length == 0) { if (selected == null || selected.length == 0) {
return return
@ -147,9 +143,7 @@ class BrowseView {
model.downloadActionEnabled = true model.downloadActionEnabled = true
UIResultEvent result = resultsTree.singleResultSelected() UIResultEvent result = resultsTree.singleResultSelected()
if (result != null) { if (result != null) {
model.viewCommentActionEnabled = result.comment != null model.viewDetailsActionEnabled = true
model.viewCollectionsActionEnabled = !result.collections.isEmpty()
model.viewCertificatesActionEnabled = result.certificates > 0
} }
}) })
@ -173,9 +167,7 @@ class BrowseView {
int[] rows = resultsTable.getSelectedRows() int[] rows = resultsTable.getSelectedRows()
if (rows.length == 0) { if (rows.length == 0) {
model.downloadActionEnabled = false model.downloadActionEnabled = false
model.viewCommentActionEnabled = false model.viewDetailsActionEnabled = false
model.viewCertificatesActionEnabled = false
model.viewCollectionsActionEnabled = false
return return
} }
@ -187,13 +179,7 @@ class BrowseView {
boolean downloadActionEnabled = true boolean downloadActionEnabled = true
model.viewCertificatesActionEnabled = (rows.length == 1 && model.results[rows[0]].certificates > 0) model.viewDetailsActionEnabled = rows.length == 1
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
def mainFrameGroup = application.mvcGroupManager.getGroups()['MainFrame'] def mainFrameGroup = application.mvcGroupManager.getGroups()['MainFrame']
rows.each { rows.each {
@ -214,20 +200,10 @@ class BrowseView {
download.addActionListener({controller.download()}) download.addActionListener({controller.download()})
menu.add(download) menu.add(download)
} }
if (model.viewCommentActionEnabled) { if (model.viewDetailsActionEnabled) {
JMenuItem viewComment = new JMenuItem(trans("VIEW_COMMENT")) JMenuItem viewDetails = new JMenuItem(trans("VIEW_DETAILS"))
viewComment.addActionListener({controller.viewComment()}) viewDetails.addActionListener({controller.viewDetails()})
menu.add(viewComment) menu.add(viewDetails)
}
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)
} }
JMenuItem copyHash = new JMenuItem(trans("COPY_HASH_TO_CLIPBOARD")) JMenuItem copyHash = new JMenuItem(trans("COPY_HASH_TO_CLIPBOARD"))