diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTabView.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTabView.kt index aa83a6769f..231db1b994 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTabView.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTabView.kt @@ -66,12 +66,14 @@ class NodeTabView : Fragment() { hbox { styleClass.addAll("node-panel") + vboxConstraints { vGrow = Priority.ALWAYS } fieldset("CorDapps") { hboxConstraints { hGrow = Priority.ALWAYS } styleClass.addAll("cordapps-panel") listview(cordapps) { + vboxConstraints { vGrow = Priority.ALWAYS } setOnKeyPressed { key -> if ((key.code == KeyCode.DELETE) && !selectionModel.isEmpty) { cordapps.remove(selectionModel.selectedItem) @@ -85,6 +87,7 @@ class NodeTabView : Fragment() { styleClass.addAll("services-panel") listview(availableServices.observable()) { + vboxConstraints { vGrow = Priority.ALWAYS } selectionModel.selectionMode = MULTIPLE model.item.extraServices.set(selectionModel.selectedItems) } @@ -198,7 +201,7 @@ class NodeTabView : Fragment() { value = CityDatabase["London"] - // TODO: Find a way to make the popup the same width as when not auto-completing. + // TODO: Upgrade to TornadoFX 1.7.3 to fix an issue where the combobox dropdown isn't wide enough. isEditable = true makeAutocompletable() } diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTerminalView.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTerminalView.kt index bdf98cddb2..4bb090be94 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTerminalView.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/views/NodeTerminalView.kt @@ -7,7 +7,10 @@ import javafx.application.Platform import javafx.embed.swing.SwingNode import javafx.scene.control.Button import javafx.scene.control.Label +import javafx.scene.image.ImageView +import javafx.scene.layout.StackPane import javafx.scene.layout.VBox +import javafx.util.Duration import net.corda.client.rpc.notUsed import net.corda.demobench.explorer.ExplorerController import net.corda.demobench.model.NodeConfig @@ -18,7 +21,8 @@ import net.corda.demobench.rpc.NodeRPC import net.corda.demobench.ui.PropertyLabel import net.corda.demobench.web.DBViewer import net.corda.demobench.web.WebServerController -import tornadofx.Fragment +import tornadofx.* +import java.awt.Color import java.awt.Dimension import java.util.logging.Level import javax.swing.SwingUtilities @@ -45,6 +49,7 @@ class NodeTerminalView : Fragment() { private val viewer = DBViewer() private var rpc: NodeRPC? = null private var pty: R3Pty? = null + private lateinit var logo: ImageView fun open(config: NodeConfig, onExit: () -> Unit) { nodeName.text = config.legalName @@ -55,7 +60,11 @@ class NodeTerminalView : Fragment() { swingTerminal.requestFocus() } - root.children.add(swingTerminal) + logo = ImageView(resources["corda-logo-square-trans.png"]) + logo.opacity = 0.0 + swingTerminal.styleClass += "terminal-widget" + val stack = StackPane(logo, swingTerminal) + root.children.add(stack) root.isVisible = true SwingUtilities.invokeLater({ @@ -144,6 +153,7 @@ class NodeTerminalView : Fragment() { ) Platform.runLater { + logo.opacityProperty().animate(1.0, Duration.seconds(2.5)) states.value = fetchAndDrop(statesInVault).size.toString() transactions.value = fetchAndDrop(verifiedTx).size.toString() balance.value = if (cashBalances.isNullOrEmpty()) "0" else cashBalances @@ -177,6 +187,5 @@ class NodeTerminalView : Fragment() { class TerminalSettingsProvider : DefaultSettingsProvider() { override fun getDefaultStyle() = TextStyle(TerminalColor.WHITE, TerminalColor.rgb(50, 50, 50)) override fun emulateX11CopyPaste() = true - } } diff --git a/tools/demobench/src/main/resources/net/corda/demobench/style.css b/tools/demobench/src/main/resources/net/corda/demobench/style.css index 38c7bad175..6b87beaa46 100644 --- a/tools/demobench/src/main/resources/net/corda/demobench/style.css +++ b/tools/demobench/src/main/resources/net/corda/demobench/style.css @@ -38,6 +38,10 @@ -fx-background-color: #323232; } +.terminal-widget { + -fx-opacity: 0.85; +} + .node-panel { -fx-spacing: 1em; -fx-background-color: white; diff --git a/tools/demobench/src/main/resources/net/corda/demobench/views/DemoBenchView.fxml b/tools/demobench/src/main/resources/net/corda/demobench/views/DemoBenchView.fxml index 98fb3d1e48..195b1f91cc 100644 --- a/tools/demobench/src/main/resources/net/corda/demobench/views/DemoBenchView.fxml +++ b/tools/demobench/src/main/resources/net/corda/demobench/views/DemoBenchView.fxml @@ -19,9 +19,9 @@ </Menu> </MenuBar> <StackPane styleClass="root-pane" VBox.vgrow="ALWAYS"> - <TabPane fx:id="nodeTabPane" minHeight="444.0" minWidth="800.0" prefHeight="613.0" prefWidth="1231.0" tabClosingPolicy="UNAVAILABLE" tabMinHeight="30.0" /> + <TabPane fx:id="nodeTabPane" minHeight="600.0" minWidth="800.0" prefHeight="800.0" prefWidth="1231.0" tabClosingPolicy="UNAVAILABLE" tabMinHeight="30.0" /> <ImageView fitHeight="40.0" preserveRatio="true" StackPane.alignment="TOP_LEFT"> - <Image url="@cordalogo-full-trans.png"/> + <Image url="@corda-logo-full-trans.png"/> <StackPane.margin> <Insets left="20" top="15.0"/> </StackPane.margin> diff --git a/tools/demobench/src/main/resources/net/corda/demobench/views/cordalogo-full-trans.png b/tools/demobench/src/main/resources/net/corda/demobench/views/corda-logo-full-trans.png similarity index 100% rename from tools/demobench/src/main/resources/net/corda/demobench/views/cordalogo-full-trans.png rename to tools/demobench/src/main/resources/net/corda/demobench/views/corda-logo-full-trans.png diff --git a/tools/demobench/src/main/resources/net/corda/demobench/views/corda-logo-square-trans.png b/tools/demobench/src/main/resources/net/corda/demobench/views/corda-logo-square-trans.png new file mode 100644 index 0000000000..4a9f57c233 Binary files /dev/null and b/tools/demobench/src/main/resources/net/corda/demobench/views/corda-logo-square-trans.png differ