package org.ripple.power.ui;
import java.awt.Dimension;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import org.ripple.power.config.LSystem;
import org.ripple.power.helper.HelperWindow;
import org.ripple.power.txns.Updateable;
import org.ripple.power.ui.view.ABaseDialog;
import org.ripple.power.ui.view.RPLabel;
import org.ripple.power.ui.view.RPList;
import org.ripple.power.ui.view.log.ErrorLog;
import org.ripple.power.utils.SwingUtils;
import org.ripple.power.wallet.WalletCache;
import org.ripple.power.wallet.WalletItem;
public class RPSelectWalletDialog extends ABaseDialog {
/**
*
*/
private static final long serialVersionUID = 1L;
private RPCButton _btnSelect;
private RPLabel _label;
private RPList _walletList;
private javax.swing.JScrollPane _panel;
private Updateable call;
public static void showDialog(String text, Window parent, Updateable call) {
try {
RPSelectWalletDialog dialog = new RPSelectWalletDialog(text,
parent, call);
dialog.pack();
dialog.setLocationRelativeTo(parent);
dialog.setVisible(true);
} catch (Exception exc) {
ErrorLog.get().logException("RPSelectWalletDialog Exception", exc);
}
}
public RPSelectWalletDialog(String text, Window parent, Updateable call) {
super(parent, text, ModalityType.DOCUMENT_MODAL);
this.addWindowListener(HelperWindow.get());
this.setIconImage(UIRes.getIcon());
this.setResizable(false);
Dimension dim = new Dimension(360, 420);
this.setPreferredSize(dim);
this.setSize(dim);
this.call = call;
this.initComponents();
}
private void initComponents() {
_panel = new javax.swing.JScrollPane();
_walletList = new RPList();
_label = new RPLabel();
_btnSelect = new RPCButton();
getContentPane().setLayout(null);
_panel.setViewportView(_walletList);
getContentPane().add(_panel);
_panel.setBounds(10, 39, 335, 293);
_label.setFont(UIRes.getFont()); // NOI18N
_label.setText("Select Wallet");
getContentPane().add(_label);
_label.setBounds(10, 10, 116, 23);
_btnSelect.setText(UIMessage.ok);
_btnSelect.setFont(UIRes.getFont());
_btnSelect.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (call != null) {
if (_walletList.getSelectedIndex() != -1) {
SwingUtils.close(RPSelectWalletDialog.this);
call.action(WalletCache.get().findItem(
(String) _walletList.getSelectedValue()));
}
}
}
});
getContentPane().add(_btnSelect);
_btnSelect.setBounds(235, 342, 110, 35);
getContentPane().setBackground(UIConfig.dialogbackground);
Updateable update = new Updateable() {
@Override
public void action(Object o) {
final ArrayList<WalletItem> items = WalletCache.get().all();
_walletList
.setModel(new javax.swing.AbstractListModel<Object>() {
private static final long serialVersionUID = 1L;
public int getSize() {
return items.size();
}
public Object getElementAt(int i) {
return items.get(i).getPublicKey();
}
});
}
};
LSystem.postThread(update);
pack();
}
public void closeDialog(){
SwingUtils.close(this);
}
}