From 65e96eacc27f8371151e30941d9acc3a1640057d Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Sun, 1 Nov 2020 15:46:36 +0000 Subject: [PATCH] add button for downloading full collection --- .../muwire/gui/CollectionTabController.groovy | 5 +++ gui/griffon-app/i18n/messages.properties | 1 + .../com/muwire/gui/CollectionTabModel.groovy | 1 + .../com/muwire/gui/CollectionTabView.groovy | 31 ++++++++++--------- 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/gui/griffon-app/controllers/com/muwire/gui/CollectionTabController.groovy b/gui/griffon-app/controllers/com/muwire/gui/CollectionTabController.groovy index fb9eedc0..20e87dcc 100644 --- a/gui/griffon-app/controllers/com/muwire/gui/CollectionTabController.groovy +++ b/gui/griffon-app/controllers/com/muwire/gui/CollectionTabController.groovy @@ -15,6 +15,11 @@ class CollectionTabController { @MVCMember @Nonnull CollectionTabView view + @ControllerAction + void downloadCollection() { + + } + @ControllerAction void download() { diff --git a/gui/griffon-app/i18n/messages.properties b/gui/griffon-app/i18n/messages.properties index acf87880..d400f059 100644 --- a/gui/griffon-app/i18n/messages.properties +++ b/gui/griffon-app/i18n/messages.properties @@ -546,3 +546,4 @@ DELETE=Delete ## Collection tab COLLECTION_SELECT=Select a collection to view it's description DESCRIPTION=Description +COLLECTION_DOWNLOAD=Download Full Collection diff --git a/gui/griffon-app/models/com/muwire/gui/CollectionTabModel.groovy b/gui/griffon-app/models/com/muwire/gui/CollectionTabModel.groovy index ff366238..726d3437 100644 --- a/gui/griffon-app/models/com/muwire/gui/CollectionTabModel.groovy +++ b/gui/griffon-app/models/com/muwire/gui/CollectionTabModel.groovy @@ -45,6 +45,7 @@ class CollectionTabModel { @Observable int totalCollections @Observable boolean viewCommentButtonEnabled @Observable boolean downloadItemButtonEnabled + @Observable boolean downloadCollectionButtonEnabled void mvcGroupInit(Map args) { root = new DefaultMutableTreeNode() diff --git a/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy b/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy index 35474473..66f27ea8 100644 --- a/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy +++ b/gui/griffon-app/views/com/muwire/gui/CollectionTabView.groovy @@ -46,24 +46,24 @@ class CollectionTabView { panel { borderLayout() panel(constraints : BorderLayout.NORTH) { - borderLayout() - panel(constraints : BorderLayout.NORTH) { - label(text : trans("STATUS") + ":") - label(text : bind {trans(model.status.name())}) - } - scrollPane(constraints : BorderLayout.CENTER, border : etchedBorder()) { - collectionsTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) { - tableModel(list : model.collections) { - closureColumn(header: trans("NAME"), preferredWidth: 200, type : String, read : {it.name}) - closureColumn(header: trans("AUTHOR"), preferredWidth: 200, type : String, read : {it.author.getHumanReadableName()}) - closureColumn(header: trans("COLLECTION_TOTAL_FILES"), preferredWidth: 20, type: Integer, read : {it.numFiles()}) - closureColumn(header: trans("COLLECTION_TOTAL_SIZE"), preferredWidth: 20, type: Long, read : {it.totalSize()}) - closureColumn(header: trans("COMMENT"), preferredWidth: 20, type: Boolean, read: {it.comment != ""}) - closureColumn(header: trans("CREATED"), preferredWidth: 50, type: Long, read: {it.timestamp}) - } + label(text : trans("STATUS") + ":") + label(text : bind {trans(model.status.name())}) + } + scrollPane(constraints : BorderLayout.CENTER, border : etchedBorder()) { + collectionsTable = table(autoCreateRowSorter : true, rowHeight : rowHeight) { + tableModel(list : model.collections) { + closureColumn(header: trans("NAME"), preferredWidth: 200, type : String, read : {it.name}) + closureColumn(header: trans("AUTHOR"), preferredWidth: 200, type : String, read : {it.author.getHumanReadableName()}) + closureColumn(header: trans("COLLECTION_TOTAL_FILES"), preferredWidth: 20, type: Integer, read : {it.numFiles()}) + closureColumn(header: trans("COLLECTION_TOTAL_SIZE"), preferredWidth: 20, type: Long, read : {it.totalSize()}) + closureColumn(header: trans("COMMENT"), preferredWidth: 20, type: Boolean, read: {it.comment != ""}) + closureColumn(header: trans("CREATED"), preferredWidth: 50, type: Long, read: {it.timestamp}) } } } + panel(constraints : BorderLayout.SOUTH) { + button(text : trans("COLLECTION_DOWNLOAD"), enabled : bind{model.downloadCollectionButtonEnabled}, downloadCollectionAction) + } } panel { borderLayout() @@ -161,6 +161,7 @@ class CollectionTabView { int row = selectedCollection() if (row < 0) return + model.downloadCollectionButtonEnabled = true FileCollection selected = model.collections.get(row) model.comment = selected.comment