diff --git a/app/gui/src/main/scala/org/bitcoins/gui/dlc/DLCPane.scala b/app/gui/src/main/scala/org/bitcoins/gui/dlc/DLCPane.scala index e2e1fb3c977c..a337f925d09b 100644 --- a/app/gui/src/main/scala/org/bitcoins/gui/dlc/DLCPane.scala +++ b/app/gui/src/main/scala/org/bitcoins/gui/dlc/DLCPane.scala @@ -5,6 +5,14 @@ import org.bitcoins.gui.TaskRunner import scalafx.geometry.{Insets, Pos} import scalafx.scene.control._ import scalafx.scene.layout._ +import scalafx.stage.FileChooser +import scalafx.stage.FileChooser.ExtensionFilter + +import java.awt.Toolkit.getDefaultToolkit +import java.awt.datatransfer.StringSelection +import java.io.File +import java.nio.file.Files +import scala.util.Properties class DLCPane(glassPane: VBox) { @@ -103,10 +111,38 @@ class DLCPane(glassPane: VBox) { spacing = 10 } + val exportResultButton: Button = new Button("Export Result") { + onAction = _ => { + val txtExtensionFilter = new ExtensionFilter("Text Files", "*.txt") + val allExtensionFilter = new ExtensionFilter("All Files", "*") + val fileChooser = new FileChooser() { + extensionFilters.addAll(txtExtensionFilter, allExtensionFilter) + selectedExtensionFilter = txtExtensionFilter + initialDirectory = new File(Properties.userHome) + } + val chosenFile = fileChooser.showSaveDialog(null) + Files.write(chosenFile.toPath, resultTextArea.text.value.getBytes) + () + } + } + + val copyResultButton: Button = new Button("Copy Result") { + onAction = _ => { + val clipboard = getDefaultToolkit.getSystemClipboard + val sel = new StringSelection(resultTextArea.text.value) + clipboard.setContents(sel, sel) + } + } + + val resultButtonHBox: HBox = new HBox() { + spacing = 10 + children = Vector(exportResultButton, copyResultButton) + } + private val tableView = new DLCTableView(model).tableView private val textAreasAndTableViewVBox = new VBox { - children = Seq(textAreaHBox, tableView) + children = Seq(textAreaHBox, resultButtonHBox, tableView) spacing = 10 }