Move DLC/Event loading operations to Pane (#3567)

* Move DLC/Event loading operations to Pane

* Change labeling to Accept Offer / Build Offer

* Cleanup comment
This commit is contained in:
user411 2021-08-19 11:16:22 -06:00 committed by GitHub
parent d2a7bc02b6
commit 5567d2214f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 48 deletions

View file

@ -66,14 +66,13 @@
-fx-border-width: 1px; -fx-border-width: 1px;
} }
/* Accordion TitledPane heading content */ /* Accept / Build Offer Pane */
.small { .load-label {
-fx-font-size: 0.8em; -fx-padding: 0 10 0 0;
} }
.load-textfield {
/* Accordion TitledPane heading textfield */ -fx-pref-width: 130;
.title-textfield { -fx-prompt-text-fill: #b0b0b0;
-fx-pref-width: 90;
} }
/* Adjust SplitPane divider visibility and padding */ /* Adjust SplitPane divider visibility and padding */

View file

@ -25,12 +25,12 @@ import org.bitcoins.gui.dlc.dialog.{
SignDLCDialog, SignDLCDialog,
ViewDLCDialog ViewDLCDialog
} }
import org.bitcoins.gui.util.GUIUtil
import scalafx.beans.property.StringProperty import scalafx.beans.property.StringProperty
import scalafx.geometry._ import scalafx.geometry._
import scalafx.scene.Parent import scalafx.scene.Parent
import scalafx.scene.control.{ import scalafx.scene.control.{
ContextMenu, ContextMenu,
Label,
MenuItem, MenuItem,
TableColumn, TableColumn,
TableView, TableView,
@ -39,7 +39,6 @@ import scalafx.scene.control.{
import scalafx.scene.layout._ import scalafx.scene.layout._
import java.io.File import java.io.File
import java.nio.file.Files
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Date import java.util.Date
import scala.util.{Failure, Success} import scala.util.{Failure, Success}
@ -48,9 +47,13 @@ class ContractGUI(glassPane: VBox) {
private[gui] lazy val model = new ContractGUIModel() private[gui] lazy val model = new ContractGUIModel()
private lazy val addEventLabel = new Label("Build Offer") {
styleClass += "load-label"
}
private lazy val addEventTF = new TextField { private lazy val addEventTF = new TextField {
styleClass += "title-textfield" styleClass += "load-textfield"
promptText = "New Event Hex" promptText = "Paste Hex"
onKeyTyped = _ => { onKeyTyped = _ => {
val event = model.addEvent(this.text.value.trim) val event = model.addEvent(this.text.value.trim)
event match { event match {
@ -70,14 +73,13 @@ class ContractGUI(glassPane: VBox) {
addEventTF.clear() addEventTF.clear()
} }
lazy val addEventHBox = new HBox { private lazy val addContractLabel = new Label("Accept Offer") {
styleClass += "small" styleClass += "load-label"
children = Seq(addEventTF)
} }
private lazy val addContractTF = new TextField { private lazy val addContractTF = new TextField {
styleClass += "title-textfield" styleClass += "load-textfield"
promptText = "Contract Hex" promptText = "Paste Hex"
onKeyTyped = _ => { onKeyTyped = _ => {
val validAddition = onContractAdded(text.value.trim, None) val validAddition = onContractAdded(text.value.trim, None)
if (validAddition) clearContractTF() // Clear on valid data if (validAddition) clearContractTF() // Clear on valid data
@ -89,15 +91,15 @@ class ContractGUI(glassPane: VBox) {
addContractTF.clear() addContractTF.clear()
} }
private lazy val fileChooserButton = GUIUtil.getFileChooserButton(file => { lazy val loadPane = new GridPane {
val hex = Files.readAllLines(file.toPath).get(0) styleClass += "load-pane"
val validAddition = onContractAdded(hex, Some(file)) padding = Insets(10, 0, 10, 11)
if (validAddition) clearContractTF() // Clear on valid data hgap = 5
}) add(addContractLabel, 0, 0)
add(addContractTF, 1, 0)
lazy val addContractHBox = new HBox { add(new Region { prefWidth = 57 }, 2, 0)
styleClass += "small" add(addEventLabel, 3, 0)
children = Seq(fileChooserButton, addContractTF) add(addEventTF, 4, 0)
} }
private lazy val eventIdCol = new TableColumn[ private lazy val eventIdCol = new TableColumn[

View file

@ -135,24 +135,6 @@ abstract class WalletGUI extends Logging {
children = Vector(walletGrid, buttonBox) children = Vector(walletGrid, buttonBox)
} }
private lazy val eventsLabel = new Label("Events")
private lazy val eventsTitleHbox = new HBox {
alignment = Pos.Center
children = Seq(eventsLabel, GUIUtil.getHSpacer(), contractGUI.addEventHBox)
}
private lazy val contractLabel = new Label("Contracts")
private lazy val contractsTitleHbox = new HBox {
alignment = Pos.Center
children =
Seq(contractLabel, GUIUtil.getHSpacer(), contractGUI.addContractHBox)
}
// Magic indent so text doesn't write passed edge of TitledPane
private val TITLEPANE_RIGHT_GUTTER = 35
private lazy val sidebarAccordian = new VBox { private lazy val sidebarAccordian = new VBox {
padding = Insets(4) padding = Insets(4)
@ -162,15 +144,14 @@ abstract class WalletGUI extends Logging {
} }
val eventUI = new TitledPane { val eventUI = new TitledPane {
graphic = eventsTitleHbox
content = contractGUI.eventPane content = contractGUI.eventPane
text = "Events"
expanded = false expanded = false
} }
eventsTitleHbox.minWidth <== eventUI.width - TITLEPANE_RIGHT_GUTTER
val contractUI = new TitledPane { val contractUI = new TitledPane {
graphic = contractsTitleHbox
content = dlcPane.tableView content = dlcPane.tableView
text = "Contracts"
dlcPane.tableView.onMouseClicked = _ => { dlcPane.tableView.onMouseClicked = _ => {
val i = dlcPane.tableView.getSelectionModel.getSelectedItem val i = dlcPane.tableView.getSelectionModel.getSelectedItem
if (i != null) { if (i != null) {
@ -178,12 +159,12 @@ abstract class WalletGUI extends Logging {
} }
} }
} }
contractsTitleHbox.minWidth <== contractUI.width - TITLEPANE_RIGHT_GUTTER
children = Vector( children = Vector(
contractGUI.loadPane,
walletUI, walletUI,
eventUI,
contractUI, contractUI,
eventUI,
GUIUtil.getVSpacer(), GUIUtil.getVSpacer(),
stateDetails stateDetails
) )