From a5af75961c7514a22f4b7f265bfd2520c5a1ac96 Mon Sep 17 00:00:00 2001 From: Ben Kaufman Date: Fri, 8 Mar 2019 12:03:00 +0200 Subject: [PATCH 1/2] Add txId to proposal display --- .../main/dao/governance/ProposalDisplay.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java index 20105df8fd..c3db183305 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java @@ -127,6 +127,7 @@ public class ProposalDisplay { @Getter private int gridRow; private HyperlinkWithIcon linkHyperlinkWithIcon; + private HyperlinkWithIcon txHyperlinkWithIcon; private int gridRowStartIndex; private final List inputChangedListeners = new ArrayList<>(); @Getter @@ -219,6 +220,14 @@ public class ProposalDisplay { linkWithIconContainer.setVisible(false); linkWithIconContainer.setManaged(false); + if (!isMakeProposalScreen) { + Tuple3 uidTuple = addTopLabelHyperlinkWithIcon(gridPane, ++gridRow, + Res.get("dao.proposal.display.txId"), "", "", 0); + txHyperlinkWithIcon = uidTuple.second; + // TODO HyperlinkWithIcon does not scale automatically (button base, -> make anchorpane as base) + txHyperlinkWithIcon.prefWidthProperty().bind(nameTextField.widthProperty()); + } + int comboBoxValueTextFieldIndex = -1; switch (proposalType) { case COMPENSATION_REQUEST: @@ -477,6 +486,12 @@ public class ProposalDisplay { linkHyperlinkWithIcon.setOnAction(e -> GUIUtil.openWebPage(proposal.getLink())); } + if (txHyperlinkWithIcon != null) { + txHyperlinkWithIcon.setText(proposal.getTxId()); + txHyperlinkWithIcon.setOnAction(e -> + GUIUtil.openWebPage("https://explorer.bisq.network/testnet/tx.html?tx=" + proposal.getTxId())); + } + if (proposal instanceof CompensationProposal) { CompensationProposal compensationProposal = (CompensationProposal) proposal; checkNotNull(requestedBsqTextField, "requestedBsqTextField must not be null"); From 864fc55c25094132ed724d21cbf279f7681f2b68 Mon Sep 17 00:00:00 2001 From: Ben Kaufman Date: Fri, 8 Mar 2019 18:20:28 +0200 Subject: [PATCH 2/2] Use correct method to open bisq explorer --- .../bisq/desktop/main/dao/governance/ProposalDisplay.java | 7 +++++-- .../desktop/main/dao/governance/make/MakeProposalView.java | 2 +- .../main/dao/governance/proposals/ProposalsView.java | 2 +- .../desktop/main/dao/governance/result/VoteResultView.java | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java index c3db183305..60d3f78eeb 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/ProposalDisplay.java @@ -55,6 +55,7 @@ import bisq.core.dao.state.model.governance.RoleProposal; import bisq.core.dao.state.model.governance.Vote; import bisq.core.locale.CurrencyUtil; import bisq.core.locale.Res; +import bisq.core.user.Preferences; import bisq.core.util.BsqFormatter; import bisq.core.util.validation.InputValidator; import bisq.core.util.validation.UrlInputValidator; @@ -107,6 +108,7 @@ public class ProposalDisplay { @Nullable private final ChangeParamValidator changeParamValidator; private final Navigation navigation; + private final Preferences preferences; @Nullable private TextField proposalFeeTextField, comboBoxValueTextField, requiredBondForRoleTextField; @@ -143,12 +145,13 @@ public class ProposalDisplay { private VBox linkWithIconContainer, comboBoxValueContainer, myVoteBox, voteResultBox; public ProposalDisplay(GridPane gridPane, BsqFormatter bsqFormatter, DaoFacade daoFacade, - @Nullable ChangeParamValidator changeParamValidator, Navigation navigation) { + @Nullable ChangeParamValidator changeParamValidator, Navigation navigation, @Nullable Preferences preferences) { this.gridPane = gridPane; this.bsqFormatter = bsqFormatter; this.daoFacade = daoFacade; this.changeParamValidator = changeParamValidator; this.navigation = navigation; + this.preferences = preferences; // focusOutListener = observable -> inputChangedListeners.forEach(Runnable::run); @@ -489,7 +492,7 @@ public class ProposalDisplay { if (txHyperlinkWithIcon != null) { txHyperlinkWithIcon.setText(proposal.getTxId()); txHyperlinkWithIcon.setOnAction(e -> - GUIUtil.openWebPage("https://explorer.bisq.network/testnet/tx.html?tx=" + proposal.getTxId())); + GUIUtil.openTxInBsqBlockExplorer(proposal.getTxId(), preferences)); } if (proposal instanceof CompensationProposal) { diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java index 653af6bd9f..57058de86e 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/make/MakeProposalView.java @@ -432,7 +432,7 @@ public class MakeProposalView extends ActivatableView implements private void addProposalDisplay() { if (selectedProposalType != null) { - proposalDisplay = new ProposalDisplay(root, bsqFormatter, daoFacade, changeParamValidator, navigation); + proposalDisplay = new ProposalDisplay(root, bsqFormatter, daoFacade, changeParamValidator, navigation, null); proposalDisplay.createAllFields(Res.get("dao.proposal.create.new"), alwaysVisibleGridRowIndex, Layout.GROUP_DISTANCE, selectedProposalType, true); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java index b7c3cafb54..916efe7dc5 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/proposals/ProposalsView.java @@ -683,7 +683,7 @@ public class ProposalsView extends ActivatableView implements Bs private void createEmptyProposalDisplay() { proposalDisplay = new ProposalDisplay(proposalDisplayGridPane, bsqFormatter, daoFacade, - changeParamValidator, navigation); + changeParamValidator, navigation, preferences); proposalDisplayView = proposalDisplay.getView(); GridPane.setMargin(proposalDisplayView, new Insets(0, -10, 0, -10)); GridPane.setRowIndex(proposalDisplayView, ++gridRow); diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java index b58f8afa28..3be0071c81 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java @@ -445,7 +445,7 @@ public class VoteResultView extends ActivatableView implements D private ProposalDisplay createProposalDisplay(EvaluatedProposal evaluatedProposal, Ballot ballot) { Proposal proposal = evaluatedProposal.getProposal(); ProposalDisplay proposalDisplay = new ProposalDisplay(new GridPane(), bsqFormatter, - daoFacade, null, navigation); + daoFacade, null, navigation, preferences); ScrollPane proposalDisplayView = proposalDisplay.getView(); GridPane.setMargin(proposalDisplayView, new Insets(0, -10, -15, -10));