package org.ripple.power.ui; import java.awt.Dimension; import java.awt.Font; import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.math.BigDecimal; import javax.swing.ImageIcon; import javax.swing.JPanel; import org.ripple.power.config.LSystem; import org.ripple.power.helper.HelperDialog; import org.ripple.power.i18n.LangConfig; import org.ripple.power.ui.graphics.LImage; import org.ripple.power.ui.view.RPToast; import org.ripple.power.ui.view.WaitDialog; import org.ripple.power.ui.view.RPToast.Style; import org.ripple.power.utils.GraphicsUtils; import org.ripple.power.wallet.WalletItem; public class RPSelectMoneyDialog extends JPanel implements ActionListener { /** * */ private static final long serialVersionUID = 1L; private static RPSelectMoneyDialog lock = null; private RPDialogTool tool; public static RPSelectMoneyDialog showDialog(String text, Window parent, WalletItem item, boolean show) { if (show) { synchronized (RPSelectMoneyDialog.class) { if (lock == null) { return (lock = new RPSelectMoneyDialog(text, parent, item)); } else { if (lock != null) { lock.closeDialog(); lock = new RPSelectMoneyDialog(text, parent, item); } return lock; } } } return null; } public static RPSelectMoneyDialog showDialog(String text, Window parent, WalletItem item) { return showDialog(text, parent, item, true); } public RPDialogTool get() { return tool; } public void closeDialog() { synchronized (WaitDialog.class) { tool.close(); lock = null; } } private RPCButton _exitButton; private RPCButton _sendFlagButton; private RPCButton _sendIOUButton; private RPCButton _sendMemoButton; private RPCButton _sendXRPButton; private WalletItem _item; private final static ImageIcon iconXRP = new ImageIcon(new LImage( "icons/wallet.png").scaledInstance(48, 48).getBufferedImage()); private final static ImageIcon iconIOU = new ImageIcon(new LImage( "icons/bank.png").scaledInstance(48, 48).getBufferedImage()); private final static ImageIcon iconMemo = new ImageIcon(new LImage( "icons/credit.png").scaledInstance(48, 48).getBufferedImage()); private final static ImageIcon iconFlag = new ImageIcon(new LImage( "icons/safe.png").scaledInstance(48, 48).getBufferedImage()); private final static ImageIcon iconExit = new ImageIcon(new LImage( "icons/arrowright.png").scaledInstance(48, 48).getBufferedImage()); public RPSelectMoneyDialog(String text, Window parent, WalletItem item) { Dimension dim = new Dimension(399, 390); setPreferredSize(dim); setSize(dim); this._item = item; _sendXRPButton = new RPCButton(iconXRP); _sendIOUButton = new RPCButton(iconIOU); _sendMemoButton = new RPCButton(iconMemo); _sendFlagButton = new RPCButton(iconFlag); _exitButton = new RPCButton(iconExit); setLayout(null); Font font = GraphicsUtils.getFont(LangConfig.getFontName(), 1, 20); _sendXRPButton.setText(LangConfig.get(this, "send_xrp", "Send XRP")); _sendXRPButton.setFont(font); _sendXRPButton.setActionCommand("xrp"); add(_sendXRPButton); _sendXRPButton.setBounds(30, 20, 338, 55); _sendXRPButton.addActionListener(this); _exitButton.setText(UIMessage.exit); _exitButton.setFont(font); _exitButton.setActionCommand("exit"); add(_exitButton); _exitButton.setBounds(30, 300, 338, 55); _exitButton.addActionListener(this); _sendIOUButton.setText(LangConfig.get(this, "send_iou", "Send IOU")); _sendIOUButton.setFont(font); _sendIOUButton.setActionCommand("iou"); add(_sendIOUButton); _sendIOUButton.setBounds(30, 90, 338, 55); _sendIOUButton.addActionListener(this); _sendMemoButton.setText(LangConfig.get(this, "send_memo", "Memo Send/Receive")); _sendMemoButton.setFont(font); _sendMemoButton.setActionCommand("memo"); add(_sendMemoButton); _sendMemoButton.setBounds(30, 160, 338, 55); _sendMemoButton.addActionListener(this); _sendFlagButton.setText(LangConfig.get(this, "send_flag", "Send Flag")); _sendFlagButton.setFont(font); _sendFlagButton.setActionCommand("flag"); add(_sendFlagButton); _sendFlagButton.setBounds(30, 230, 338, 55); _sendFlagButton.addActionListener(this); setBackground(UIConfig.dialogbackground); this.tool = RPDialogTool.show(parent, text, this, -1, -1, false, LSystem.MINUTE); HelperDialog .setSystemHelperMessage("Send XRP / IOU to the specified Ripple address or Ripple account name . "); } @Override public void actionPerformed(ActionEvent ae) { if (_item == null) { return; } String eve = ae.getActionCommand(); closeDialog(); if ("xrp".equalsIgnoreCase(eve)) { BigDecimal number = new BigDecimal(_item.getAmount()); if (number.compareTo(BigDecimal.ZERO) < 1) { UIRes.showWarningMessage(this, LangConfig.get(MainPanel.class, "txfails", "Transaction fails"), LangConfig.get( MainPanel.class, "stop", "Sorry, currently the address XRP not send XRP")); } else { RPToast.makeText(LSystem.applicationMain, "Send XRP.", Style.SUCCESS).display(); RPSendXRPDialog.showDialog( _item.getPublicKey() + " " + LangConfig.get(MainPanel.class, "send_xrp", "Send XRP"), LSystem.applicationMain, _item); } } else if ("iou".equalsIgnoreCase(eve)) { RPToast.makeText(LSystem.applicationMain, "Send IOU.", Style.SUCCESS).display(); RPSendIOUDialog .showDialog( _item.getPublicKey() + " " + LangConfig.get(MainPanel.class, "send_iou", "Send IOU"), LSystem.applicationMain, _item); } else if ("memo".equalsIgnoreCase(eve)) { RPToast.makeText(LSystem.applicationMain, "Memo Send/Receive.", Style.SUCCESS).display(); RPRippledMemoDialog.showDialog( LangConfig.get(MainPanel.class, "send_memo", "Memo Send/Receive") + " " + _item.getPublicKey(), LSystem.applicationMain, _item); } else if ("flag".equalsIgnoreCase(eve)) { RPToast.makeText(LSystem.applicationMain, "Send Flags.", Style.SUCCESS).display(); RPSendFlagsDialog.showDialog(_item.getPublicKey() + " Send Flags", LSystem.applicationMain, _item); } } }