From 49f51a9f5f65a64e12fabd13e7612a22b6dfa4ea Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Mon, 4 Nov 2019 19:39:04 +0000 Subject: [PATCH] view certificates from browse host --- .../com/muwire/gui/BrowseController.groovy | 15 +++++++++++++++ .../models/com/muwire/gui/BrowseModel.groovy | 1 + .../views/com/muwire/gui/BrowseView.groovy | 11 +++++++++++ 3 files changed, 27 insertions(+) diff --git a/gui/griffon-app/controllers/com/muwire/gui/BrowseController.groovy b/gui/griffon-app/controllers/com/muwire/gui/BrowseController.groovy index e9a851f8..d6053c66 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/BrowseController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/BrowseController.groovy @@ -96,4 +96,19 @@ class BrowseController { mvcGroup.createMVCGroup("show-comment", groupId, params) } + + @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['result'] = result + params['eventBus'] = eventBus + mvcGroup.createMVCGroup("fetch-certificates", params) + } } \ No newline at end of file diff --git a/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy b/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy index 93933798..2c9502f9 100644 --- a/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/BrowseModel.groovy @@ -14,6 +14,7 @@ class BrowseModel { @Observable BrowseStatus status @Observable boolean downloadActionEnabled @Observable boolean viewCommentActionEnabled + @Observable boolean viewCertificatesActionEnabled @Observable int totalResults @Observable int resultCount diff --git a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy index 50deab16..ab70ef4d 100644 --- a/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/BrowseView.groovy @@ -58,12 +58,14 @@ class BrowseView { closureColumn(header: "Name", preferredWidth: 350, type: String, read : {row -> row.name.replace('<','_')}) closureColumn(header: "Size", preferredWidth: 20, type: Long, read : {row -> row.size}) closureColumn(header: "Comments", preferredWidth: 20, type: Boolean, read : {row -> row.comment != null}) + closureColumn(header: "Certificates", preferredWidth: 20, type: Integer, read : {row -> row.certificates}) } } } panel (constraints : BorderLayout.SOUTH) { button(text : "Download", enabled : bind {model.downloadActionEnabled}, downloadAction) button(text : "View Comment", enabled : bind{model.viewCommentActionEnabled}, viewCommentAction) + button(text : "View Certificates", enabled : bind{model.viewCertificatesActionEnabled}, viewCertificatesAction) button(text : "Dismiss", dismissAction) } } @@ -85,6 +87,7 @@ class BrowseView { if (rows.length == 0) { model.downloadActionEnabled = false model.viewCommentActionEnabled = false + model.viewCertificatesActionEnabled = false return } @@ -95,6 +98,9 @@ class BrowseView { } boolean downloadActionEnabled = true + + model.viewCertificatesActionEnabled = (rows.length == 1 && model.results[rows[0]].certificates > 0) + if (rows.length == 1 && model.results[rows[0]].comment != null) model.viewCommentActionEnabled = true else @@ -130,6 +136,11 @@ class BrowseView { viewComment.addActionListener({controller.viewComment()}) menu.add(viewComment) } + if (model.viewCertificatesActionEnabled) { + JMenuItem viewCertificates = new JMenuItem("View Certificates") + viewCertificates.addActionListener({controller.viewCertificates()}) + menu.add(viewCertificates) + } JMenuItem copyHash = new JMenuItem("Copy Hash To Clipboard") copyHash.addActionListener({