package gui.transaction;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Toolkit;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import qora.crypto.Base58;
import qora.transaction.IssueAssetTransaction;
@SuppressWarnings("serial")
public class IssueAssetDetailsFrame extends JFrame
{
public IssueAssetDetailsFrame(IssueAssetTransaction assetIssue)
{
super("Qora - Transaction Details");
//ICON
List<Image> icons = new ArrayList<Image>();
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon16.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon32.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon64.png"));
icons.add(Toolkit.getDefaultToolkit().getImage("images/icons/icon128.png"));
this.setIconImages(icons);
//CLOSE
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//LAYOUT
this.setLayout(new GridBagLayout());
//PADDING
((JComponent) this.getContentPane()).setBorder(new EmptyBorder(5, 5, 5, 5));
//LABEL GBC
GridBagConstraints labelGBC = new GridBagConstraints();
labelGBC.insets = new Insets(0, 5, 5, 0);
labelGBC.fill = GridBagConstraints.HORIZONTAL;
labelGBC.anchor = GridBagConstraints.NORTHWEST;
labelGBC.weightx = 0;
labelGBC.gridx = 0;
//DETAIL GBC
GridBagConstraints detailGBC = new GridBagConstraints();
detailGBC.insets = new Insets(0, 5, 5, 0);
detailGBC.fill = GridBagConstraints.HORIZONTAL;
detailGBC.anchor = GridBagConstraints.NORTHWEST;
detailGBC.weightx = 1;
detailGBC.gridwidth = 2;
detailGBC.gridx = 1;
//LABEL TYPE
labelGBC.gridy = 0;
JLabel typeLabel = new JLabel("Type:");
this.add(typeLabel, labelGBC);
//TYPE
detailGBC.gridy = 0;
JLabel type = new JLabel("Issue Asset Transaction");
this.add(type, detailGBC);
//LABEL SIGNATURE
labelGBC.gridy = 1;
JLabel signatureLabel = new JLabel("Signature:");
this.add(signatureLabel, labelGBC);
//SIGNATURE
detailGBC.gridy = 1;
JTextField signature = new JTextField(Base58.encode(assetIssue.getSignature()));
signature.setEditable(false);
this.add(signature, detailGBC);
//LABEL REFERENCE
labelGBC.gridy = 2;
JLabel referenceLabel = new JLabel("Reference:");
this.add(referenceLabel, labelGBC);
//REFERENCE
detailGBC.gridy = 2;
JTextField reference = new JTextField(Base58.encode(assetIssue.getReference()));
reference.setEditable(false);
this.add(reference, detailGBC);
//LABEL TIMESTAMP
labelGBC.gridy = 3;
JLabel timestampLabel = new JLabel("Timestamp:");
this.add(timestampLabel, labelGBC);
//TIMESTAMP
detailGBC.gridy = 3;
Date date = new Date(assetIssue.getTimestamp());
DateFormat format = DateFormat.getDateTimeInstance();
JLabel timestamp = new JLabel(format.format(date));
this.add(timestamp, detailGBC);
//LABEL CREATOR
labelGBC.gridy = 4;
JLabel creatorLabel = new JLabel("Creator:");
this.add(creatorLabel, labelGBC);
//CREATOR
detailGBC.gridy = 4;
JTextField creator = new JTextField(assetIssue.getCreator().getAddress());
creator.setEditable(false);
this.add(creator, detailGBC);
//LABEL OWNER
labelGBC.gridy = 5;
JLabel ownerLabel = new JLabel("Owner:");
this.add(ownerLabel, labelGBC);
//OWNER
detailGBC.gridy = 5;
JTextField owner = new JTextField(assetIssue.getAsset().getOwner().getAddress());
owner.setEditable(false);
this.add(owner, detailGBC);
//LABEL NAME
labelGBC.gridy = 6;
JLabel nameLabel = new JLabel("Name:");
this.add(nameLabel, labelGBC);
//NAME
detailGBC.gridy = 6;
JTextField name = new JTextField(assetIssue.getAsset().getName());
name.setEditable(false);
this.add(name, detailGBC);
//LABEL DESCRIPTION
labelGBC.gridy = 7;
JLabel descriptionLabel = new JLabel("Description:");
this.add(descriptionLabel, labelGBC);
//DESCRIPTION
detailGBC.gridy = 7;
JTextArea txtAreaDescription = new JTextArea(assetIssue.getAsset().getDescription());
txtAreaDescription.setRows(4);
txtAreaDescription.setBorder(name.getBorder());
txtAreaDescription.setEditable(false);
this.add(txtAreaDescription, detailGBC);
//LABEL QUANTITY
labelGBC.gridy = 8;
JLabel quantityLabel = new JLabel("Quantity:");
this.add(quantityLabel, labelGBC);
//QUANTITY
detailGBC.gridy = 8;
JTextField quantity = new JTextField(assetIssue.getAsset().getQuantity().toString());
quantity.setEditable(false);
this.add(quantity, detailGBC);
//LABEL DIVISIBLE
labelGBC.gridy = 9;
JLabel divisibleLabel = new JLabel("Divisible:");
this.add(divisibleLabel, labelGBC);
//QUANTITY
detailGBC.gridy = 9;
JCheckBox divisible = new JCheckBox();
divisible.setSelected(assetIssue.getAsset().isDivisible());
divisible.setEnabled(false);
this.add(divisible, detailGBC);
//LABEL FEE
labelGBC.gridy = 10;
JLabel feeLabel = new JLabel("Fee:");
this.add(feeLabel, labelGBC);
//FEE
detailGBC.gridy = 10;
JTextField fee = new JTextField(assetIssue.getFee().toPlainString());
fee.setEditable(false);
this.add(fee, detailGBC);
//LABEL CONFIRMATIONS
labelGBC.gridy = 11;
JLabel confirmationsLabel = new JLabel("Confirmations:");
this.add(confirmationsLabel, labelGBC);
//CONFIRMATIONS
detailGBC.gridy = 11;
JLabel confirmations = new JLabel(String.valueOf(assetIssue.getConfirmations()));
this.add(confirmations, detailGBC);
//PACK
this.pack();
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
}