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); } }