package gui.transaction; import javax.swing.JFrame; import qora.transaction.ArbitraryTransaction; import qora.transaction.BuyNameTransaction; import qora.transaction.CancelOrderTransaction; import qora.transaction.CancelSellNameTransaction; import qora.transaction.CreateOrderTransaction; import qora.transaction.CreatePollTransaction; import qora.transaction.GenesisTransaction; import qora.transaction.IssueAssetTransaction; import qora.transaction.MultiPaymentTransaction; import qora.transaction.PaymentTransaction; import qora.transaction.RegisterNameTransaction; import qora.transaction.SellNameTransaction; import qora.transaction.Transaction; import qora.transaction.TransferAssetTransaction; import qora.transaction.UpdateNameTransaction; import qora.transaction.VoteOnPollTransaction; public class TransactionDetailsFactory { private static TransactionDetailsFactory instance; public static TransactionDetailsFactory getInstance() { if(instance == null) { instance = new TransactionDetailsFactory(); } return instance; } public JFrame createTransactionDetail(Transaction transaction) { switch(transaction.getType()) { case Transaction.GENESIS_TRANSACTION: GenesisTransaction genesis = (GenesisTransaction) transaction; return new GenesisDetailsFrame(genesis); case Transaction.PAYMENT_TRANSACTION: PaymentTransaction payment = (PaymentTransaction) transaction; return new PaymentDetailsFrame(payment); case Transaction.REGISTER_NAME_TRANSACTION: RegisterNameTransaction nameRegistration = (RegisterNameTransaction) transaction; return new RegisterNameDetailsFrame(nameRegistration); case Transaction.UPDATE_NAME_TRANSACTION: UpdateNameTransaction nameUpdate = (UpdateNameTransaction) transaction; return new UpdateNameDetailsFrame(nameUpdate); case Transaction.SELL_NAME_TRANSACTION: SellNameTransaction nameSale = (SellNameTransaction) transaction; return new SellNameDetailsFrame(nameSale); case Transaction.CANCEL_SELL_NAME_TRANSACTION: CancelSellNameTransaction cancelNameSale = (CancelSellNameTransaction) transaction; return new CancelSellNameDetailsFrame(cancelNameSale); case Transaction.BUY_NAME_TRANSACTION: BuyNameTransaction namePurchase = (BuyNameTransaction) transaction; return new BuyNameDetailsFrame(namePurchase); case Transaction.CREATE_POLL_TRANSACTION: CreatePollTransaction pollCreation = (CreatePollTransaction) transaction; return new CreatePollDetailsFrame(pollCreation); case Transaction.VOTE_ON_POLL_TRANSACTION: VoteOnPollTransaction pollVote = (VoteOnPollTransaction) transaction; return new VoteOnPollDetailsFrame(pollVote); case Transaction.ARBITRARY_TRANSACTION: ArbitraryTransaction arbitraryTransaction = (ArbitraryTransaction) transaction; return new ArbitraryTransactionDetailsFrame(arbitraryTransaction); case Transaction.ISSUE_ASSET_TRANSACTION: IssueAssetTransaction issueAssetTransaction = (IssueAssetTransaction) transaction; return new IssueAssetDetailsFrame(issueAssetTransaction); case Transaction.TRANSFER_ASSET_TRANSACTION: TransferAssetTransaction transferAssetTransaction = (TransferAssetTransaction) transaction; return new TransferAssetDetailsFrame(transferAssetTransaction); case Transaction.CREATE_ORDER_TRANSACTION: CreateOrderTransaction createOrderTransaction = (CreateOrderTransaction) transaction; return new CreateOrderDetailsFrame(createOrderTransaction); case Transaction.CANCEL_ORDER_TRANSACTION: CancelOrderTransaction cancelOrderTransaction = (CancelOrderTransaction) transaction; return new CancelOrderDetailsFrame(cancelOrderTransaction); case Transaction.MULTI_PAYMENT_TRANSACTION: MultiPaymentTransaction MultiPaymentTransaction = (MultiPaymentTransaction) transaction; return new MultiPaymentDetailsFrame(MultiPaymentTransaction); } return null; } }