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
|
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())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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"))
|
||||||
|
|
Loading…
Reference in New Issue