diff --git a/convex-gui/src/main/java/convex/gui/components/BalanceLabel.java b/convex-gui/src/main/java/convex/gui/components/BalanceLabel.java index bd1041338..6b1c3ef4a 100644 --- a/convex-gui/src/main/java/convex/gui/components/BalanceLabel.java +++ b/convex-gui/src/main/java/convex/gui/components/BalanceLabel.java @@ -1,6 +1,8 @@ package convex.gui.components; import java.awt.Color; +import java.awt.Dimension; +import java.awt.FontMetrics; import java.math.BigInteger; import javax.swing.JMenuItem; @@ -64,6 +66,15 @@ public void setDecimals(int decimals) { public void setBalanceColour(Color c) { this.balanceColour=c; } + + @Override + public Dimension getPreferredSize() { + Dimension d=super.getPreferredSize(); + FontMetrics font=getFontMetrics(getFont()); + int pw=font.charWidth('0')*(15+decimals); + if (d.width { TokenInfo temp=token1; @@ -113,13 +111,13 @@ public void changedUpdate(DocumentEvent e) {} swapPanel.add(new JLabel()); // spacer swapPanel.add(switchButton,"center,span"); swapPanel.add(new JLabel("To:")); - swapPanel.add(new TokenButton(token2),"wrap,grow"); + swapPanel.add(new TokenButton(token2)); - // Receive anount line - swapPanel.add(new JLabel("You receive:")); + // Receive amount line receiveLabel = new BalanceLabel(); receiveLabel.setFont(Toolkit.BIG_FONT); receiveLabel.setDecimals(token2.getDecimals()); + receiveLabel.setToolTipText("Amount you will receive when swap occurs"); swapPanel.add(receiveLabel); swapPanel.validate(); diff --git a/convex-gui/src/main/java/convex/gui/wallet/TokenComponent.java b/convex-gui/src/main/java/convex/gui/wallet/TokenComponent.java index 20964edfc..cd6a82922 100644 --- a/convex-gui/src/main/java/convex/gui/wallet/TokenComponent.java +++ b/convex-gui/src/main/java/convex/gui/wallet/TokenComponent.java @@ -26,7 +26,7 @@ public TokenComponent(Convex convex, TokenInfo token) { this.convex=convex; this.token=token; - this.setLayout(new MigLayout("","["+(Toolkit.ICON_SIZE+100)+"][400][300]push")); + this.setLayout(new MigLayout("","["+(Toolkit.ICON_SIZE+100)+"][400]")); this.setBorder(Toolkit.createEmptyBorder(20)); tokenButton=new TokenButton(token); @@ -38,8 +38,6 @@ public TokenComponent(Convex convex, TokenInfo token) { balanceLabel.setToolTipText("Account balance for "+token.getSymbol()); add(balanceLabel,"align right"); - - // Action buttons JPanel actions=new JPanel(); actions.add(ActionButton.build(0xe88e,e->{ diff --git a/convex-gui/src/main/java/convex/gui/wallet/TransferPanel.java b/convex-gui/src/main/java/convex/gui/wallet/TransferPanel.java index 01b8a316b..0a41f0890 100644 --- a/convex-gui/src/main/java/convex/gui/wallet/TransferPanel.java +++ b/convex-gui/src/main/java/convex/gui/wallet/TransferPanel.java @@ -31,6 +31,7 @@ public class TransferPanel extends AbstractGUI { protected BalanceLabel balanceLabel; private DecimalAmountField amountField; private AddressCombo addressCombo; + private Address address; private static ComboModel
model= new ComboModel<>(); @@ -47,7 +48,7 @@ public TransferPanel(Convex convex, TokenInfo token) { this("Token Transfer for account "+convex.getAddress()); this.convex=convex; this.token=token; - Address address=convex.getAddress(); + address=convex.getAddress(); if (address==null) { throw new IllegalStateException("Must be a valid address to transfer from"); } @@ -64,7 +65,7 @@ public TransferPanel(Convex convex, TokenInfo token) { ActionPanel actionPanel=new ActionPanel(); actionPanel.add(new ActionButton("Transfer!",0xe933,e->{ try { - Result done = executeTrade(); + Result done = executeTransfer(); if (done==null) { return; } else if (done.isError()) { @@ -83,28 +84,29 @@ public TransferPanel(Convex convex, TokenInfo token) { } protected void addTransferComponents(JPanel panel) { - panel.setLayout(new MigLayout("fill,wrap 3","[150][grow]")); panel.removeAll(); + panel.setLayout(new MigLayout("fill,wrap 3","[150][grow]")); - panel.add(new JLabel("Token:")); - panel.add(new TokenButton(token),"span"); + panel.add(new JLabel("Amount to transfer: ")); + panel.add(new TokenButton(token)); + amountField=new DecimalAmountField(token.getDecimals()); + amountField.setFont(Toolkit.BIG_FONT); + panel.add(amountField,"span"); - panel.add(new JLabel("Balance:")); + panel.add(new JLabel("Balance:"),"span 2"); balanceLabel=new BalanceLabel(); balanceLabel.setDecimals(token.getDecimals()); balanceLabel.setBalance(token.getBalance(convex).join()); + balanceLabel.setToolTipText("Current balance available in account "+address); panel.add(balanceLabel,"span"); - panel.add(new JLabel("Destination:")); + panel.add(new JLabel("Destination account: "),"span 2"); addressCombo=new AddressCombo(model); addressCombo.setFont(Toolkit.BIG_FONT); + addressCombo.setToolTipText("Destination account that will receive asset after transfer"); panel.add(addressCombo,"span"); - panel.add(new JLabel("Amount:")); - amountField=new DecimalAmountField(token.getDecimals()); - amountField.setFont(Toolkit.BIG_FONT); - panel.add(amountField,"span"); amountField.setToolTipText("Input amount of "+token.getSymbol()+" to transfer to the destination account"); panel.validate(); @@ -112,7 +114,7 @@ protected void addTransferComponents(JPanel panel) { } - protected Result executeTrade() throws InterruptedException { + protected Result executeTransfer() throws InterruptedException { AInteger amount=amountField.getAmount(); if (amount==null) { JOptionPane.showMessageDialog(this, "Please specify a valid amount to transfer");