From 2fd8f451074a8c2dd43360796c3dd6e9045f3701 Mon Sep 17 00:00:00 2001 From: Zlatin Balevsky Date: Thu, 31 Oct 2019 21:22:50 +0000 Subject: [PATCH] update text in cli --- .../muwire/clilanterna/MainWindowView.groovy | 14 +++++--- .../muwire/clilanterna/UpdateTextView.groovy | 34 +++++++++++++++++++ 2 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 cli-lanterna/src/main/groovy/com/muwire/clilanterna/UpdateTextView.groovy diff --git a/cli-lanterna/src/main/groovy/com/muwire/clilanterna/MainWindowView.groovy b/cli-lanterna/src/main/groovy/com/muwire/clilanterna/MainWindowView.groovy index 38a65675..7b363b5e 100644 --- a/cli-lanterna/src/main/groovy/com/muwire/clilanterna/MainWindowView.groovy +++ b/cli-lanterna/src/main/groovy/com/muwire/clilanterna/MainWindowView.groovy @@ -217,8 +217,11 @@ class MainWindowView extends BasicWindow { textGUI.getGUIThread().invokeLater { String label = "$e.version is available with hash $e.infoHash" updateStatus.setText(label) - String message = "Version $e.version is available from $e.signer, search for $e.infoHash" - MessageDialog.showMessageDialog(textGUI, "Update Available", message, MessageDialogButton.OK) + String message = "Version $e.version is available, with hash $e.infoHash . Show details?" + def button = MessageDialog.showMessageDialog(textGUI, "Update Available", message, MessageDialogButton.Yes, MessageDialogButton.No) + if (button == MessageDialogButton.No) + return + textGUI.addWindowAndWait(new UpdateTextView(e.text, sizeForTables())) } } @@ -226,8 +229,11 @@ class MainWindowView extends BasicWindow { textGUI.getGUIThread().invokeLater { String label = "$e.version downloaded" updateStatus.setText(label) - String message = "Version $e.version from $e.signer has been downloaded. You can update now." - MessageDialog.showMessageDialog(textGUI, "Update Available", message, MessageDialogButton.OK) + String message = "MuWire version $e.version has been downloaded. Show details?." + def button = MessageDialog.showMessageDialog(textGUI, "Update Available", message, MessageDialogButton.Yes, MessageDialogButton.No) + if (button == MessageDialogButton.No) + return + textGUI.addWindowAndWait(new UpdateTextView(e.text, sizeForTables())) } } diff --git a/cli-lanterna/src/main/groovy/com/muwire/clilanterna/UpdateTextView.groovy b/cli-lanterna/src/main/groovy/com/muwire/clilanterna/UpdateTextView.groovy new file mode 100644 index 00000000..66a1c7cc --- /dev/null +++ b/cli-lanterna/src/main/groovy/com/muwire/clilanterna/UpdateTextView.groovy @@ -0,0 +1,34 @@ +package com.muwire.clilanterna + +import com.googlecode.lanterna.TerminalSize +import com.googlecode.lanterna.gui2.BasicWindow +import com.googlecode.lanterna.gui2.Button +import com.googlecode.lanterna.gui2.GridLayout +import com.googlecode.lanterna.gui2.GridLayout.Alignment +import com.googlecode.lanterna.gui2.LayoutData +import com.googlecode.lanterna.gui2.Panel +import com.googlecode.lanterna.gui2.TextBox +import com.googlecode.lanterna.gui2.Window + +class UpdateTextView extends BasicWindow { + private final TextBox textBox + private final LayoutData layoutData = GridLayout.createLayoutData(Alignment.CENTER, Alignment.CENTER) + + UpdateTextView(String text, TerminalSize terminalSize) { + super("Update Details") + + setHints([Window.Hint.CENTERED]) + + Panel contentPanel = new Panel() + contentPanel.setLayoutManager(new GridLayout(1)) + + TerminalSize boxSize = new TerminalSize((terminalSize.getColumns() / 2).toInteger(), (terminalSize.getRows() / 2).toInteger()) + textBox = new TextBox(boxSize, text, TextBox.Style.MULTI_LINE) + contentPanel.addComponent(textBox, layoutData) + + Button closeButton = new Button("Close", {close()}) + contentPanel.addComponent(closeButton, layoutData) + + setComponent(contentPanel) + } +}